Section 2.5. IMPLEMENTATION ISSUES


2.5. IMPLEMENTATION ISSUES

Assertion (1) suggests a design space for AOP languages. It implies choices in each of the three dimensions: quantification, interface, and weaving.

Quantification. Quantification incorporates the notions of defining the "join points" of the code along with the language and mechanisms for selecting when a particular join point deserves a particular aspect. Examples of possible join points include subprogram calls, variable references, and statements. As mentioned earlier, one can quantify over the static structure of the program or over its dynamic behavior. Examples of the predicates one can use to describe a static quantification include discriminating by package, by the inheritance structure of the program, by the structure of call arguments, by the lexical structure of program element names, and by the nested structure of program elements. (Masterscope is an early example of a quantification language for programs that has a rich language for describing points in program structures [39].) Examples of dynamic quantification scope include the dynamic nesting structure of calls and the occurrence of particular events (e.g., "after x is assigned 3, while y is greater than 7"). There have also been suggestions that the program of the base code could be provided mechanisms to prevent aspect interactions and that the system check for incompatible aspect applications.

Interface. Interface includes the structure of the "aspect code," the interactions among aspects, and the relationships and information sharing among the aspects and base code. Issues of interface include what context of the underlying program is available to an aspect, how aspects communicate among themselves and with the underlying program, ordering of aspects at the same locus, and aspect parameterizations.

Weaving. Weaving expresses how the system intertwines the execution of the base code and aspects. Key elements include the actual weaving mechanism (for example, compile-time weaving, altering the interpretation process, or meta-or reflective mechanisms) and the ability to dynamically change quantifications in a running system.



Aspect-Oriented Software Development
Aspect-Oriented Software Development with Use Cases
ISBN: 0321268881
EAN: 2147483647
Year: 2003
Pages: 307

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net