From AO-ADL to Theme/UML
This subsection describes how AO-ADL models can be automatically transformed into Theme/UML models, using a model-to-model transformation. Concretely, we have used the ATL (Atlas Transformation Language) technology. We need the metamodels of the source (AO-ADL) and the target models (Theme/UML), and a set of ATL transformation rules to realize the transformation.
Source and Target Metamodels
For the source model, we have automatically generetated the Ecore metamodel of AO-ADL using the facility ‘XML Schemas to Ecore’, provided by the EMF Eclipse plug-in. For the target model, we use an extension of the Ecore metamodel of UML 2.0, provided by the authors of Theme/UML. Theme/UML is a specific aspect-oriented extension of UML 2.0. A Theme/UML model can be represented in UML 2.0 using the Theme/UML Profile. The main elements that we are going to use from Theme/UML are Themes, Merges and Binds. A Theme is represented by a UML package stereotyped as
<<theme>>. Merges and Binds are represented by UML dependencies stereotyped as
<<bind>> respectively. Merges and Binds occur between Themes.
Next figures show parts of the AO-ADL metamodel represented in a Ecore diagram. We have coloured the main parts of the metamodel in order to easily identificate them.
- Red elements corresponds to the part of the metamodel that defines AO-ADL components. The main elements are Component and InterfaceCompositeComponent. The latter identify the provided and required interfaces of the component.
- Green elements define AO-ADL configurations. An AO-ADL configuration represents a software architecture by means of a set of components and connectors and how they are attached. The ComponentType and ConnectorType elements from the metamodel represent instances of components and connectors respectively. The AttachmentType element describes how a component is attached to a connector.
- Blue elements corresponds to the part of the metamodel that defines AO-ADL connectors. The main elements are Connector, Role, ComponentBinding and AspectualBinding. The Role element represents provided, required and aspectual interfaces of the connector. The ComponentBinding element describes the interaction between provided and required roles of the connector. The AspectualBinding element describes the aspectual interactions between provided and aspectual roles of the connector.
- And yellow elements define AO-ADL interfaces. Each Interface element is composed by a set of Operations with Parameters.
Complete Metamodel Diagram
You can see the complete metamodel diagram clicking here