AO-ADL Tool Suite
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 architectures
The 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 patterns
AO-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 metrics
The 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.