Supporting Composition of Structural Aspects in an AOP Kernel
Éric Tanter (University of Chile, Chile)
Johan Fabry (University of Chile, Chile)
Abstract: Structural aspects modify the structure of a program, for instance by adding fields and methods to existing classes. Like behavioral aspects, which operate on execution events, structural aspects may interact and raise conflicts. Current aspect systems however do not thoroughly handle this issue. This paper discusses how complete support for structural aspect composition can be integrated in an AOP kernel, that is, a generic transformation framework on top of which aspect languages are defined. An iterative composition process is proposed that involves the programmer in a cycle of automatic detection of interactions and explicit, declarative resolution of these interactions. Beyond a general analysis of the issue of composition of structural aspects and an associated composition process, this work reports on the concrete extension of the Reflex AOP kernel to fully support the requirements drawn from our analysis. Based on a structural model supporting per-aspect subjective views, and using the power of an embedded logic engine, the result is a versatile aspect system supporting automatic detection of various kinds of structural aspect interactions, extensible reporting tools, and declarative mechanisms for the resolution of interactions between structural aspects.
Keywords: AOP kernel, Aspect-Oriented Programming, Reflex, aspect composition, structural aspects
Categories: D.1.5, D.2.3, D.3.3, D.3.4