AO-ADL Tool Suite is implemented as an Eclipse plug-in. It provides support to define, manipulate and reuse AO-ADL specifications by fully and user friendly graphical and textual editors. The software architect will be able to specify complete software architectures and architectural templates, defining the interfaces, components and connectors without directly manipulating XML code. The main contributions of this tool suite are:
Textual and Graphical Specification of software architecturesThe tool includes editors for the graphical specification of software architectures, either aspect-oriented or non-aspect oriented ones. Besides graphical representation, each AO-ADL element has a complete textual editor to define all its information in detail.
AO-ADL enforces the specification of architectures by the (re) use of pre-developed architectural elements, so this tool offers the possibility to import the specification of components and connectors from a repository. The tool also validates that a given architecture is composed by AO-ADL well-formed elements. Also it reports on whether the resulting architecture is complete or not, allowing the definition of partially specified architectures. Finally, this tool offers the possibility to see the list of components participating in a connector (connector view), but also the list of connectors and bindings where one component participates (component view).
Specification and Instantiation of Architectural patternsAO-ADL architectural patterns are mainly AO parameterizable templates that allow modeling generic and reusable crosscutting influences. Catalogues of typical non-functional crosscutting concerns show the necessity of expressing, at architectural level, reusable solutions for each crosscutting concern, independently of the participating components. This means that for such concerns, the same pattern of interaction recurs independently of the application domain (this may occur for either crosscutting or non-crosscutting concerns). AO-ADL allows the definition of simple architecture, connector and composite component templates, to promote the reuse of AO solutions. This implies the definition of a sub-architecture, and in addition sub-templates, with many base and aspectual components and connectors can model complex quality attributes, where both components and connectors can be parameterized. The tool provides support to instantiate the templates by a simple instantiation wizard.
For implementing templates we have used the Java Emitter Templates (JET). It is a part of the Eclipse Modeling Framework Technologies (EMFT) and uses a JSP-like syntax that makes easier writing templates.
Integration of Architectural metricsThe tool includes a metric suite to evaluate: (1) the separation of concerns in the specification of aspect-oriented software architectures, and (2) the degree of reusability of architectural templates.
The MDD process enhances the architectural design phase by closing the gap between ADLs and the
notations used at the detailed design phase.
We have defined model-to-model transformation rules to automatically generate either aspect-oriented
or object-oriented UML 2.0 models from high-level architectural specifications specified using AO-ADL.
These rules have been integrated in the AO-ADL Tool Suite, providing support to automatically generate
a skeleton of the detailed design that preserves the crosscutting and the non-crosscutting functionalities identified at the architecture level.
Our MDD process is supported by the AO-ADL Tool Suite, that provides:
- graphical support to describe and manipulate AO-ADL software architectures, covering the first step of our MDD process,
- and integration of the architecture to design MDD transformations previously described, covering the second step of our MDD process.
You can download this extension in the Downloads section.
AO-ADL Extension with CM (Conceptual Model) is a model-based approach to tackle the fragility pointcut problem that occurs in Aspect Oriented Systems. The definition of model-based pointcuts at early stages of the development can improve the software evolution in AOSD. Pointcut expressions (PCEs) intercepting conceptual elements that are part of an architectural design pattern are more stable than those defined in terms of objects or types defined at the implementation phase. Since architectural design patterns make explicit the system structure that is commonly implicit in the application code, these patterns could be the base for building an abstract representation of a software system, which may be used as reference for the creation of semantic-based pointcuts. The most of software systems can be built by using a set of architectural design patterns with different degrees of generality/specificity and reuse. Therefore, the proposed CM is stratified in three layers. The first one (the system layer) encompasses widely used generic patterns, the second layer (the domain layer) encompasses domain specific concepts and the third one (the application layer) includes application specific concepts.
You can download this extension in the Downloads section.
M. Pinto; L. Fuentes; J. A. Valenzuela; Paulo F. Pires; Flávia C. Delicato y E. Marinho. On the Need of architectural patterns in AOSD for software evolution. En Joint Working IEEE/IFIP Conference on Software Architecture 2009 and European Conference on Software Architecture 2009, WICSA/ECSA 2009, Cambridge, UK, 14-17 September 2009. págs. 245-248. IEEE, 2009.
AO-ADL Tool Suite also allows to generate JBOSS/AOP code.
AO-ADL Tool Suite can be used in combination with Hydra and the VML language for the development of Software Product Lines.
In our approach: (1) Hydra is used to model the variability of the desired services using feature models,
(2) AO-ADL Tool Suite is used to model the architectural variability using architectural templates,
(3) the VML language is used to relate the feature model and the variability expressed in the architectural templates,
and (4) AO-ADL Tool Suite is used to automatically generate different configurations of a SPL architecture depending on the particular requirements of each application.
Our approach also allows the evaluation of the degree of variability, reuse and separation of concerns.
You also need Hydra to specify the feature models; it can be downloaded from here.
Gustavo García, Mónica Pinto, Lidia Fuentes: Component and spect-based service product line for pervasive systems. CBSE '12 Proceedings of the 15th ACM SIGSOFT symposium on Component Based Software Engineering. Pages 115-124. 2012.