This use case shows the DUALLY
approach to achieve interoperability between
two outstanding architectural notations, Darwin and Acme.
Nowadays different notations for architectural modeling
have been proposed, each one focussing on a specific application
domain, analysis type, or modeling environment. No
effective interoperability is possible to date.
DUALLy is an automated framework that aims to offer
an answer to this need allowing both languages
and tools interoperability. DUALLy has been implemented
as an Eclipse plugin that extend AMW and it is based on model transformation
This use case shows how to semi-automatically obtain Acme specifications from UML-based Darwin models. The overall structure
of our tool is represented in Figure 1.
In this use case we show how a software architect can automatically obtain ATL transformations from
a weaving model; it contains a set of semantic links between either the metamodel or UML profile of the language to weave.
The links established in the weaving model will guide the generation (through an HOT) of the transformations at the modeling level.
Figure 1. Conceptual overview of the use case
The motivation for DUALLy is that 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
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.
DUALLy is a general approach,
but here we will explain its features referring to the Acme and Darwin use case.
As conceptually shown in Figure 1, DUALLy permits
to transform concepts of an architectural model Dmodel into the
semantically equivalent concepts in the architectural model Amodel. Each
model conforms to its corresponding meta-model or UML profile. Therefore,
DUALLy works at two abstraction levels: meta-modeling (upper part
of Figure 1), and modeling (lower part of Figure 1).
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 weaving model so
as to semantically relate architectural concepts of the Darwin profile with the
equivalent elements in Acme metamodel.
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 Dmodel
specification into the corresponding Amodel
As it can be noticed in Figure 1, the
weaving model (and its corresponding generated transformation)
relates Darwin and Acme metamodels (as well as Dmodel to Amodel) passing through what we
refer to as A0. A0 represents a semantic core set of modeling
elements, providing the infrastructure upon which to construct
semantic relations among different ADLs. It acts as a bridge among
the different architectural languages to be related together.
DUALLy is automated and implemented as an Eclipse plugin
that extends AMW.
The meta-models are expressed in Ecore.
The UML 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.
The main advantages DUALLy exposes can be summarized as follows:
it works at two abstraction levels, providing a clear separation
between model driven experts (the technical stakeholder) and
software architects (the final users). The model
transformation engine is completely hidden to a software architect,
making DUALLy extremely easy to use.
DUALLy permits the transformation among formal ADLs and UML
model-based notations and viceversa.
Software architects can continue using familiar architectural
notations and tools, and reusing existing architectural models.
DUALLy permits both languages and tools interoperability.
The meta-transformations among two architectural notations are
defined once, and reused for each model that will be made.
 DUALLy, home page of the DUALLY project. The source code can be
found in its SourceForge project page, released under the GNU General Public
 Malavolta, H. Muccini, P. Pelliccione, and D. A. Tamburri. Providing Architectural
Languages and Tools Interoperability through Model Transformation Technologies.
Technical report, TR 004-2008, University of L’Aquila, Computer Science Department.
Available at the DUALLy site, 2008.