An Empirical Assessment of the Impact of Aspect-Oriented Programming on Software Modularity
The term "Crosscutting concern" describes a piece of system that cannot be cleanly modularized because of the limited abstractions offered by the traditional programming paradigms. Symptoms of implementing crosscutting concerns in the languages like C, C# or Java are "Code scattering" and "Code tangling" that both degrade software modularity. Aspect-Oriented Programming (AOP) was proposed as a new paradigm to overcome these problems. Although it is known that AOP allows programmers to lexically separate crosscutting concerns, the impact of AOP on software modularity is not yet well investigated. This paper reports a quantitative study comparing Java and AspectJ implementations of the Gang-of-Four design patterns with respect to modularity.