A Generative Approach to Aspect-Oriented Programming

Aspect-Oriented Software Development (AOSD) offers new insights and tools for the modular development of systems with cross-cutting features. Current tool support for AOSD is provided mainly in the form of code-level constructs. This paper presents a way to express cross-cutting features as logical invariants and to use generative techniques to produce the kind of code that is usually written manually in AOSD. In order to state invariants that express cross-cutting features, we often need to reify certain extra-computational values such as history or the runtime call stack. The generative approach is illustrated by a variety of examples.

[1]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[2]  Harold Ossher,et al.  Using multidimensional separation of concerns to (re)shape evolving software , 2001, CACM.

[3]  Walter F. Tichy,et al.  Proceedings 25th International Conference on Software Engineering , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[4]  Robert Paige,et al.  Finite Differencing of Computable Expressions , 1982, TOPL.

[5]  Douglas R. Smith,et al.  Synthesis of Planning and Scheduling Software , 1996 .

[6]  Gregor Kiczales,et al.  A semantics for advice and dynamic join points in aspect-oriented programming , 2001, TOPL.

[7]  Úlfar Erlingsson,et al.  SASI enforcement of security policies: a retrospective , 1999, NSPW '99.

[8]  Robert Paige,et al.  Programming with Invariants , 1986, IEEE Software.

[9]  Tzilla Elrad,et al.  Aspect-oriented programming: Introduction , 2001, CACM.

[10]  Douglas R. Smith,et al.  Synthesis of efficient constraint-satisfaction programs , 2001, The Knowledge Engineering Review.

[11]  Masaaki Mizuno,et al.  Invariant-based specification, synthesis, and verification of synchronization in concurrent programs , 2002, ICSE '02.

[12]  Douglas R. Smith,et al.  KIDS: A Semiautomatic Program Development System , 1990, IEEE Trans. Software Eng..

[13]  Torben Æ. Mogensen,et al.  Tractable Constraints in Finite Semilattices , 1996, Sci. Comput. Program..

[14]  Rodney J. Douglas KIDS: A Semi-Automatic Program Development System , 1990 .

[15]  Jørgen Lindskov Knudsen ECOOP 2001 — Object-Oriented Programming , 2001, Lecture Notes in Computer Science.

[16]  Karl J. Lieberherr,et al.  Aspect-oriented programming with adaptive methods , 2001, CACM.