Aspect-oriented software development is a promising approach that addresses the problem of crosscutting concerns – concerns whose implementation cannot be modularized due to the set of abstractions provided by the underlying software development approach as well as due to the set of decomposition criteria applied to the underlying problem. Thereto, aspect-oriented systems provide additional abstractions in order to increase the modularity of software systems and consequently to increase the system’s readability, understandability, maintainability and reusability.
Nowadays, there are already a number of so-called aspect-oriented systems available that supply a set of new constructs to address the given problem. However, it turns out that different systems provide solutions for different crosscutting problems: while one system might be able to modularize a given crosscutting concerns, another systems might fail. Hence, the information that a system is an aspect-oriented system is not sufficient in order to determine whether it provides a solution for a given crosscutting problem. Consequently, a conceptual understanding of different kinds of aspect-oriented systems is necessary in order to understand a system's capabilities. This presentation introduces a conceptual framework for aspect-oriented systems that permits to conclude a system's capabilities to solve a given crosscutting problem.