Aspect-Oriented Software Development provides a means to modularize concerns of a system which are scattered over multiple system modules. These concerns are known as crosscutting concerns and they cause code to be scattered and tangled in multiple system units. The technique was first proposed at the programming level but evolved up through to the other phases of the software development lifecycle with the passage of time. At the moment, aspect-orientation is addressed in all phases of software development, such as requirements engineering, architecture, design and implementation. This thesis focuses on aspect oriented software design and provides a design language, Aspect-Oriented Design Language (AODL), to specify, represent and design aspectual constructs. The language has been designed to implement co-designing of aspectual and non aspectual constructs. The obliviousness between the constructs has been minimized to improve comprehensibility of the models. The language is applied in three phases and for each phase a separate set of design notations has been introduced. The design notations and diagrams are extensions of Unified Modelling Language (UML) and follow UML Meta Object Facility (UML MOF) rules. There is a separate notation for each aspectual construct and a set of design diagrams to represent their structural and behavioural characteristics.
In the first phase, join points are identified and represented in the base program. A distinct design notation has been designated for join points, through which they are located using two diagrams, Join Point Identification Diagram and Join Point Behavioural Diagram. The former diagram identifies join points in a structural depiction of message passing among objects and the later locates them during the behavioural flow of activities of the system.
In the second phase, aspects are designed using an Aspect Design Model that models the structural representation of an aspect. The model contains the aspect‟s elements and associations among them. A special diagram, known as the pointcut advice diagram, is nested in the model to represent relationship between pointcuts and their related advices. The rest of the features, such as attributes, operations and inter-type declarations are statically represented in the model.
In the third and the final phase, composition of aspects is designed. There are three diagrams included in this phase. To design dynamic composition of aspects with base classes, an Aspect-Class Dynamic Model has been introduced. It depicts the weaving of advices into the base program during the execution of the system. The structural representation of this weaving is modelled using Aspect-Class Structural Model, which represents the relationships between aspects and base classes. The third model is the Pointcut Composition Model, which is a fine-grained version of the Aspect-Class Dynamic Model and has been proposed to depict a detailed model of compositions at pointcut-level. Besides these models, a tabular specification of pointcuts has also been introduced that helps in documenting pointcuts along with their parent aspects and interacting classes.
AODL has been evaluated in two stages. In the first stage, two detailed case studies have been modelled using AODL. The first case study is an unimplemented system that is forward designed using AODL notations and diagrams, and the second is an implemented system which is reverse engineered and designed in AODL. A qualitative evaluation has been conducted in the second stage of evaluation to assess the efficacy and maturity of the language. The evaluation also compares the language with peer modelling approaches.
Available under License Creative Commons Attribution Non-commercial No Derivatives.
Download (2MB) | Preview
Downloads
Downloads per month over past year