From Aspect-Oriented Programming to UML

Aspect-oriented programming (AOP) is a set of techniques based on the idea that software is better programmed if you capture different “things happenning in a program” in different ways and encapsulate them into different modules. Capturing concerns that crosscut the boundaries of multiple components in software architecture descriptions is problematic and Standard description languages, such as UML, do not provide adequate means to understand and modularize such concerns, but aspect-oriented programming techniques do.

This article titled “From AOP to UML: Towards an Aspect-Oriented Architectural Modeling Approach” explores and analyzes the suitability of UML for aspect-oriented architectural modeling. It takes a bottom-up approach, starting from the code level to the level of software architecture description, via aspect-oriented design, using standard UML.

Since UML does not define the idea of weaving, the nicely separated concerns in the aspect-oriented program ended up scattered throughout the design model. To capture different facets of an aspect, two architectural models are proposed : the aspect design model and the configuration model. The Aspect Design Model shows the static structure of the aspect at type level. It specifies well-defined connection points, which are the basis for pluggability, since they specify the aspect interface.

The Configuration Model describes a particular way to combine instances of the aspect with the components it interconnects. The combination is shown before and after the weaving process, as both are significant. There is a strong similarity between aspects and software connectors as found in architectural description languages. However, existing connector models do not explicitly support modeling of crosscutting concerns. Further investigations are needed to achieve the ultimate goal to produce extensions to UML that make it suitable for aspect-oriented architectural descriptions.