Reducing the Complexity of AspectJ Mechanisms for Recurring Extensions

kaestner@cs.cmu.edu (M. Kuhlemann, C. Kästner)
Sat, 05 Mar 2016 18:41:39 -0500

Martin Kuhlemann, and Christian Kästner. Reducing the Complexity of AspectJ Mechanisms for Recurring Extensions. In Proceedings of the GPCE Workshop on Aspect-Oriented Product Line Engineering (AOPLE), pages 14--19, 2007.

Aspect-Oriented Programming (AOP) aims at modularizing crosscutting concerns. AspectJ is a popular AOP language extension for Java that includes numerous sophisticated mechanisms for implementing crosscutting concerns modularly in one aspect. The language allows to express complex extensions, but at the same time the complexity of some of those mechanisms hamper the writing of simple and recurring extensions, as they are often needed especially in software product lines. In this paper we propose an AspectJ extension that introduces a simplified syntax for simple and recurring extensions. We show that our syntax proposal improves evolvability and modularity in AspectJ programs by avoiding those mechanisms that may harm evolution and modularity if misused. We show that the syntax is applicable for up to 74\% of all pointcut and advice mechanisms by analysing three AspectJ case studies.