Separation of Concerns with Procedures, Annotations, Advice and Pointcuts

There are numerous mechanisms for separation of concerns at the source code level. Three mechanisms that are the focus of recent attention – metadata annotations, pointcuts and advice – can be modeled together with good old-fashioned procedures as providing different kinds of bindings: procedure calls bind program points to operations, annotations bind attributes to program points; pointcuts bind sets of points to various descriptions of those sets; named pointcuts bind attributes to sets of points; and advice bind the implementation of an operation to sets of points. This model clarifies how the mechanisms work together to separate concerns, and yields guidelines to help developers use the mechanisms in practice.

[1]  Paul Dourish,et al.  Beyond AOP: Toward naturalistic programming : OOPSLA Onward! Track , 2003 .

[2]  Gregor Kiczales,et al.  Discussing aspects of AOP , 2001, CACM.

[3]  G. Kiczales,et al.  Aspect-oriented programming and modular reasoning , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[4]  Hidehiko Masuhara,et al.  Modeling Crosscutting in Aspect-Oriented Mechanisms , 2003, ECOOP.

[5]  Hridesh Rajan,et al.  Eos: instance-level aspects for integrated system design , 2003, ESEC/FSE-11.

[6]  Robert J. Walker,et al.  Implementing protocols via declarative event patterns , 2004, SIGSOFT '04/FSE-12.

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

[8]  Thomas E. Cheatham,et al.  The introduction of definitional facilities into higher level programming languages , 1966, AFIPS '66 (Fall).

[9]  Ralf Lämmel,et al.  What does aspect-oriented programming mean to Cobol? , 2005, AOSD '05.

[10]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[11]  Mehmet Aksit,et al.  Principles and Design Rationale of Composition Filters , 2004 .

[12]  Kim B. Clark,et al.  Design Rules: The Power of Modularity Volume 1 , 1999 .

[13]  Kim B. Clark,et al.  Design Rules: The Power of Modularity , 2000 .

[14]  William G. Griswold,et al.  The structure and value of modularity in software design , 2001, ESEC/FSE-9.

[15]  Martin C. Rinard,et al.  A classification system and analysis for aspect-oriented programs , 2004, SIGSOFT '04/FSE-12.

[16]  Mira Mezini,et al.  Expressive Pointcuts for Increased Modularity , 2005, ECOOP.

[17]  Gregor Kiczales,et al.  Using aspectC to improve the modularity of path-specific customization in operating system code , 2001, ESEC/FSE-9.

[18]  Sushil Krishna Bajracharya,et al.  An analysis of modularity in aspect oriented design , 2005, AOSD '05.

[19]  Kathi Fisler,et al.  Verifying aspect advice modularly , 2004, SIGSOFT '04/FSE-12.

[20]  Robert Hirschfeld,et al.  AspectS - Aspect-Oriented Programming with Squeak , 2002, NetObjectDays.

[21]  Wolfgang Schröder-Preikschat,et al.  AspectC++: an aspect-oriented extension to the C++ programming language , 2002 .

[22]  Ivar Jacobson,et al.  Aspect-Oriented Software Development with Use Cases (Addison-Wesley Object Technology Series) , 2004 .

[23]  W. Teitelman PILOT: A STEP TOWARDS MAN-COMPUTER SYMBIOSIS , 1966 .

[24]  Gail C. Murphy,et al.  Explicit programming , 2002, AOSD '02.

[25]  Thomas Ledoux,et al.  Aspect-Oriented Software Development , 2003 .

[26]  Joseph D. Gradecki,et al.  Mastering AspectJ: Aspect-Oriented Programming in Java , 2003 .

[27]  Paul Dourish,et al.  Beyond AOP: toward naturalistic programming , 2003, SIGP.

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

[29]  Ramnivas Laddad,et al.  Aspectj in Action: Practical Aspect-Oriented Programming , 2003 .

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

[31]  Hidehiko Masuhara,et al.  Dataflow Pointcut in Aspect-Oriented Programming , 2003, APLAS.

[32]  Ivar Jacobson,et al.  Aspect-oriented software development with use cases , 2005, Addison Wesley object technology series.