Patrizio Pelliccione

Dipartimento di Informatica, Università degli Studi dell'Aquila
Via Vetoio, I-67010 L'Aquila (Italy)


Many architectural languages have been proposed in the last fifteen years, each one with the chief aim of becoming the ideal language for specifying software architectures. What is evident nowadays, instead, is that architectural languages are defined by stakeholder concerns. Capturing all such concerns within a single, narrowly focused notation is impossible. At the same time it is also impractical to define and use a "universal" notation, such as UML. As a result, many domain specific notations for architectural modeling have been proposed, each one focussing on a specific application domain, analysis type, or modeling environment. These considerations led us to propose Dually a framework to create interoperability among ADLs themselves as well as UML. As conceptually shown in the figure below, DUALLy permits to transform concepts of an architectural model M1 into the semantically equivalent concepts in the architectural model M2. Each Mi conforms to its MMi meta-model or UML profile. Every MMi can be a meta-model of an architectural language. Therefore, DUALLy works at two abstraction evels: meta-modeling, and modeling. At the meta-modeling level, model driven engineers provide a specification of the architectural language in terms of its meta-model or UML profile. They then define a meta-transformation so as to semantically relate architectural concepts in MM1 with the equivalent elements in MM2. At the modeling level, software architects specify the SA using their preferred ADL or UML-based notation. DUALLy allows the automatic generation of model-to-model transformations which permit the software architect to automatically translate the M1 specification (written according to MM1) into the corresponding M2 model (conforming to MM2) and viceversa. DUALLy is automated and implemented as an Eclipse plugin. MMi meta-models are expressed in Ecore. MMi profiles can be realized using any UML tool which exports in UML2, the EMF-based implementation of the UML 2.0 meta-model for the Eclipse platform. A0 is represented as a UML profile. Transformations among meta-models/profiles and model-to-model transformations are implemented in the context of the AMMA platform. Model-to-model transformations are then automatically instantiated, thus providing the possibility to automatically reflect modifications made on a model designed with one extension to one or even all of the other extensions.