Aspect Weaving : Using the Base Language ' s Introspective Facilities to Determine Join Points

Aspect-oriented programming languages provide their own join point description language or mechanism for specifying join points during the execution of a program where additional code needs to be executed. However, until now such join point description languages are far from being mature and do not even match those examples which are considered to be typical for aspect-oriented programming. Aspect-oriented programming techniques built upon a base language that already provides some reflective capabilities can already benefit from these features to determine join points. In this paper we demonstrate the weaknesses of current aspect-oriented languages using an implementation of the Observer design pattern as an example. Furthermore, we show how a join point specification based on the reflective capabilities of Smalltalk and its combination with the aspect-oriented programming system AspectS solves such deficiencies.

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

[2]  Gregor Kiczales,et al.  Design pattern implementation in Java and aspectJ , 2002, OOPSLA '02.

[3]  Stefan Hanenberg,et al.  Parametric introductions , 2003, AOSD '03.

[4]  Pattie Maes,et al.  Concepts and experiments in computational reflection , 1987, OOPSLA '87.

[5]  Siobhán Clarke,et al.  Towards a standard design language for AOSD , 2002, AOSD '02.

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

[7]  Connecting Aspects in AspectJ : Strategies vs . Patterns , 2002 .

[8]  John Maloney,et al.  Back to the Future The Story of Squeak, A Practical Smalltalk Written in Itself , 1997 .

[9]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[10]  Stefan Hanenberg,et al.  A UML-based aspect-oriented design notation for AspectJ , 2002, AOSD '02.

[11]  Jean-Marc Jézéquel,et al.  A toolkit for weaving aspect oriented UML designs , 2002, AOSD '02.

[12]  Gustavo Alonso,et al.  Dynamic weaving for aspect-oriented programming , 2002, AOSD '02.

[13]  Robert Hirschfeld,et al.  Advice Activation in AspectS , 2002 .

[14]  Martin E. Nordberg Aspect-Oriented Dependency Inversion , 2001 .

[15]  SERGEI KOJARSKI,et al.  Aspectual Reflection , .

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

[17]  Ralph E. Johnson,et al.  Wrappers to the Rescue , 1998, ECOOP.