UML Extensions for Aspect Oriented Software Development.
Francisca Losavio, Alfredo Matteo, Patricia Morantes · The Journal of Object Technology · 2009
AOSD (Aspect Oriented Software Development) is an emerging discipline in Software Engineering.It focuses on the separation of concerns of the '70s, aiming at improving modularity, to ensure maintainability in the sense of extensibility, changeability and reuse, towards an evolutionary software product responding to a more dynamic environment.The AOP (Aspect Oriented Programming) paradigm of the '90s focuses on the separation of the crosscutting concerns, which are in general non functional requirements (quality requirements).It is now of general agreement that the entanglement and scattering of concerns must be handled early in the software life cycle.However, these aspects are inherent to all the stages of software development, from requirements elicitation to code implementation.Many concepts and mechanisms have been proposed to handle properly these issues; however terms are in general semantically slightly different in each discipline where they have been formulated and used, causing misunderstanding and confusion.This paper presents an AOSD UML core for early aspects (requirements, analysis and design disciplines), constructed gathering different modelling elements found in the literature, focusing particularly on the AOSD ontolgy document of the Common Foundation for AOSD of the European Community, and different UML extensions.Moreover, each notion is identified, clarified, presented by author, and associated to a discipline.We are particularly interested in early aspects for identification and management of functional and quality requirements, and the crosscuts, to justify and document the choices taken at architectural design.Despite the interest and the recognition of its importance, there is still a lack of appropriate techniques to identify quality requirements at software architecture design level.The risk is that potential aspects might be easily overlooked during the software architecture design and remains unsolved at the design and programming level.The case study provided illustrates an application of the core for an aspect-oriented architectural design, to define the initial architecture for a web application.The results on one hand contribute to the establishment of standards for a unified AOSD terminology, favoring understanding and easing communication.On the other hand they facilitate aspect-oriented architectural design.