Composition, reuse and interaction analysis of stateful aspects

Aspect-Oriented Programming promises separation of concerns at the implementation level. However, aspects are not always orrthogonal and aspect interaction is a fundamental problem. In this paper, we extend previous work on a generic framework for the formal definition and interaction analysis of stateful aspects. We propose three important extensions which enhance expressivity while preserving static analyzability of interactions. First, we provide support for variables in aspects in order to share information between different execution points. This allows the definition of more precise aspects and to avoid detection of spurious conflicts. Second, we introduce generic composition operators for aspects. This enables us to provide expressive support for the resolution of conflicts among interacting aspects. Finally, we offer a means to define applicability conditions for aspects. This makes interaction analysis more precise and paves the way for reuse of aspects by making explicit requirements on contexts in which aspects must be used.

[1]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[2]  Kris De Volder Aspect-Oriented Logic Meta Programming , 1998, ECOOP Workshops.

[3]  Olivier Motelet,et al.  A Formal Definition of Crosscuts , 2001, Reflection.

[4]  Ralf Lämmel,et al.  Semantics of Method Call Interception , 2000 .

[5]  Mitchell Wand A Semantics for Advice and Dynamic Join Points in Aspect-Oriented Programming , 2001, SAIG.

[6]  James H. Andrews,et al.  Process-Algebraic Foundations of Aspect-Oriented Programming , 2001, Reflection.

[7]  Shmuel Katz,et al.  Superimpositions and Aspect-oriented Programming , 2003, Comput. J..

[8]  Robert J. Walker,et al.  Joinpoints as Ordered Events: Towards Applying Implicit Context to Aspect-Orientation , 2001 .

[9]  Oege de Moor,et al.  Static analysis of aspects , 2003, AOSD '03.

[10]  Alan Robinson,et al.  Computational Logic - Essays in Honor of Alan Robinson , 1991, Computational Logic - Essays in Honor of Alan Robinson.

[11]  Thomas Colcombet,et al.  Enforcing trace properties by program transformation , 2000, POPL '00.

[12]  Rémi Douence,et al.  Trace-Based Aspects , 2004 .

[13]  Robert E. Filman,et al.  Realizing Aspects by Transforming for Events , 2002 .

[14]  Shriram Krishnamurthi,et al.  Pointcuts and advice in higher-order languages , 2003, AOSD '03.

[15]  Hubert Comon,et al.  Disunification: A Survey. , 1991 .

[16]  Jörg Kienzle,et al.  On Composition and Reuse of Aspects , 2003 .

[17]  Amy P. Felty,et al.  Feature specification and automated conflict detection , 2003, TSEM.

[18]  Theo D'Hondt,et al.  Aspect-Orientated Logic Meta Programming , 1999, Reflection.

[19]  Rémi Douence,et al.  A Framework for the Detection and Resolution of Aspect Interactions , 2002, GPCE.

[20]  David Walker,et al.  A theory of aspects , 2003, ICFP '03.

[21]  Siobhán Clarke,et al.  Advanced Separation of Concerns , 2001, ECOOP Workshops.

[22]  Radha Jagadeesan,et al.  A Calculus of Untyped Aspect-Oriented Programs , 2003, ECOOP.