Mixin-Based Aspect Inheritance

Sven Apel, Thomas Leich, Gunter Saake · 2005

Abstract. Introducing mixin-based inheritance to AOP improves the capabilities of aspects to implement incremental designs. Since it enhances the inheritance mechanism with more flexibility, it is a key technology to reuse, compose, and evolve aspects in a step-wise manner over several development stages (step-wise aspect refinement). The introduction of mixin capabilities to aspects leads to the unification of the aspect’s structural elements with respect to step-wise refinement, i.e. in a chain of refining aspects every element (methods, pointcuts, advice) can be refined by subsequent elements without knowing the exact type of the enclosing aspect. In this context we introduce anonymous calls to parent pointcuts as well as named advice, a unification of advice and methods. Making these extensions to aspects, aspect refinement enables the programmer to implement higher-order aspects – aspects that modify other aspects. Furthermore, we show how to tame aspects using a bounded aspect quantification based on the knowledge of incremental designs. We contribute an extended AspectJ grammar, its formal semantics, as well as an implementation approach based on program transformation. 1

Read the paper · More papers on PaperTik