Aspect Categories and Classes of Temporal Properties

  • Shmuel Katz
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3880)

Abstract

Generic categories of aspects are described, and their potential value is explained. For some categories, broad classes of syntactically identifiable temporal properties, such as safety, liveness, or existence properties, are guaranteed to hold for a system with any aspect of the category woven into it, if the property was true in the system without the aspect. Thus classes of properties preserved by the aspect are defined. Moreover, relatively simple verification techniques are shown to hold for some classes of temporal properties over systems augmented with some other categories of aspects. Verification of new properties added by the aspects is also considered. Each category is defined in terms of the semantic transformation it makes to the state graphs of underlying systems. A generic procedure to identify syntactically when an aspect belongs to a category is described and related to existing code analysis systems that use static code analysis and dataflow techniques. The definitions of categories, identification procedures, and lemmas about property classes provide the needed foundations that justify and motivate automatic code analysis modules to identify aspect categories. The categories enable simpler proofs of correctness than would otherwise be possible, and exploiting their characteristics can aid in software development.

Keywords

Aspect specification spectative regulative invasive aspect categories dataflow analysis aspect verification 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Balzarott, D., Monga, M.: Using program slicing to analyze aspect-oriented composition. In: Foundations of Aspect Languages (FOAL) Workshop (2004)Google Scholar
  2. 2.
    Balzarotti, D., D’Ursi, A.C., Cavallaro, L., Monga, M.: Slicing AspectJ woven code. In: Foundations of Aspect Languages (FOAL) Workshop Associated with AOSD (2005)Google Scholar
  3. 3.
    Bruns, G., Jagadeesan, R., Jeffrey, A., Riely, J.: μabc: A minimal aspect calculus. In: Gardner, P., Yoshida, N. (eds.) CONCUR 2004. LNCS, vol. 3170, pp. 209–224. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  4. 4.
    Clarke, E.M., Emerson, E.A.: Design and synthesis of synchronization skeletons using branching-time temporal logic. In: Kozen, D. (ed.) Logic of Programs 1981. LNCS, vol. 131, pp. 52–71. Springer, Heidelberg (1982)CrossRefGoogle Scholar
  5. 5.
    Clarke, E.M., Grumberg, O., Peled, D.: Model Checking. MIT Press, Cambridge (1999)Google Scholar
  6. 6.
    Clifton, C., Leavens, G.: Observers and assistants: a proposal for modular aspect-oriented reasoning (also, modified as Spectators and assistants: enabling modular aspect-oriented reasoning). In: Foundations of Aspect languages (FOAL) Workshop 2002, Iowa State TR02-10 (2002)Google Scholar
  7. 7.
    Dams, D., Gerth, R., Grumberg, O.: Abstract interpretation of reactive systems. ACM Transactions on Programming Languages and Systems 19(2), 253–291 (1997)CrossRefGoogle Scholar
  8. 8.
    Dantas, D., Walker, D.: Harmless advice. In: POPL: 33rd ACM Symposium on Principles of Programming Languages (2006)Google Scholar
  9. 9.
    Devereux, B.: Compositional reasoning about aspects using alternating-time logic. In: Foundations of Aspect Languages (FOAL) Workshop Associated with AOSD (2003)Google Scholar
  10. 10.
    Douence, R., Fradet, P., Sudholt, M.: Trace-based aspects. In: Aksit, M., Clarke, S., Elrad, T., Filman, R. (eds.) Aspect-Oriented Software Development. Addison-Wesley, Reading (2004)Google Scholar
  11. 11.
    Filman, R.E., Friedman, D.P.: Aspect-oriented programming is quantification and obliviousness. In: OOPSLA 2000: Workshop on Advanced separation of Concerns (2000)Google Scholar
  12. 12.
    Filman, R.E.: What is AOP Revisited. In: Workshop on Advanced Separation of Concerns, 15th ECOOP (2001)Google Scholar
  13. 13.
    Griswald, W., Sullivan, K., Song, Y., Shonle, M., Tewari, N., Cai, Y., Rajan, H.: Modular software design with crosscutting interfaces. IEEE Software 23, 51–60 (2006)CrossRefGoogle Scholar
  14. 14.
    Hatcliff, J., Dwyer, M.B.: Using the Bandera Tool Set to Model-Check Properties of Concurrent Java Software. In: Larsen, K.G., Nielsen, M. (eds.) CONCUR 2001. LNCS, vol. 2154, pp. 39–58. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  15. 15.
    Jagadeesan, R., Jeffrey, A., Riely, J.: A calculus of untyped aspect-oriented programs. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, pp. 54–73. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  16. 16.
    Katz, S., Sihman, M.: Aspect Validation Using Model Checking. In: Dershowitz, N. (ed.) Verification: Theory and Practice. LNCS, vol. 2772, pp. 373–394. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  17. 17.
    Katz, S.: Diagnosis of harmful aspects using regression verification. In: Foundations of Aspect Languages (FOAL) Workshop Associated with AOSD 2004 (2004)Google Scholar
  18. 18.
    Kiczales, G., et al.: An overview of AspectJ. In: 16th ECOOP (2001)Google Scholar
  19. 19.
    Kiczales, G., Mezini, M.: Aspect-oriented programming and modular reasoning. In: Intl. Conference on Software Engineering (ICSE), pp. 49–58 (2005)Google Scholar
  20. 20.
    Krishnamurthi, S., Fisler, K., Greenberg, M.: Verifying aspect advice modularly. In: Foundations of Software Engineering (FSE) Conference pp.137–146 (2004)Google Scholar
  21. 21.
    Lamport, L.: What good is temporal logic? In: IFIP 9th World Congress, pp. 657–668 (1983)Google Scholar
  22. 22.
    Manna, Z., Pnueli, A.: The temporal logic of reactive and concurrent systems—specification. Springer, Heidelberg (1991)MATHGoogle Scholar
  23. 23.
    Nagy, I., Bergmans, L., Aksit, M.: Declarative aspect composition. In: SE Properties of Languages and Aspect Technologies (SPLAT) Workshop of AOSD 2004 (2004)Google Scholar
  24. 24.
    Ossher, H., Tarr, P.: Multi-dimensional separation of concerns and the Hyperspace approach. In: Aksit, M. (ed.) Software Architectures and Component Technology. Kluwer Academic, Dordrecht (2001)Google Scholar
  25. 25.
    Rinard, M., Salcianu, A., Bugrara, S.: A classification system and analysis for aspect-oriented programs. In: Foundations of Software Engineering (FSE) Conference (2004)Google Scholar
  26. 26.
    Sereni, D., de Moor, O.: Static analysis of aspects. In: Aspect-Oriented Software Development (AOSD), pp. 30–39 (2003)Google Scholar
  27. 27.
    Sihman, M., Katz, S.: Superimposition and aspect-oriented programming. The Computer Journal 46, 529–541 (2003)CrossRefMATHGoogle Scholar
  28. 28.
    Sipma, H.B.: A formal model for cross-cutting modular transition systems. In: Foundations of Aspect Languages (FOAL) Workshop associated with AOSD (2003)Google Scholar
  29. 29.
    Storzer, M., Krinke, J.: Interference analysis for AspectJ. In: Foundations of Aspect Languages (FOAL) Workshop (2003)Google Scholar
  30. 30.
    Sullivan, K., Griswold, W.G., Song, Y., Cai, Y., Shonle, M., Tewari, N., Rajan, H.: Information hiding interfaces for aspect-oriented design. In: European Software Engineering Conference/Foundations of Software Engineering (ESEC/FSE), pp. 166–175 (2005)Google Scholar
  31. 31.
    Walker, D., Zdancewic, S., Ligatti, J.: A theory of aspects. In: ICFP 2003, pp. 127–139. ACM, New York (2003)Google Scholar
  32. 32.
    Wand, M., Kiczales, G., Dutchyn, C.: A semantics for advice and dynamic join points in aspect-oriented programming. Transactions on Programming Languages and Systems (TOPLAS) 26(5), 890–910 (2004)CrossRefGoogle Scholar
  33. 33.
    Zhao, J.: Slicing aspect-oriented software. In: IEEE International Workshop on Programming Comprehension, pp. 251–260 (2002)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Shmuel Katz
    • 1
  1. 1.Computer ScienceThe TechnionHaifaIsrael

Personalised recommendations