blob: f55ae4c569b43e1b92455a6e5d30af74d4b3319a [file] [log] [blame]
<?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop'
#*****************************************************************************
#
# template.php
#
# Author: Freddy Allilaire
# Date: 2005-12-07
#
# Description: Type your page comments here - these are not sent to the browser
#
#
#****************************************************************************
#
# Begin: page-specific settings. Change these.
$pageTitle = "AMW Use Case - Automatic interoperability between architectural notations";
$pageKeywords = "ADL, software architecture, interoperability, model weaving, transformations, ATL, AMW, AMMA";
$pageAuthor = "Ivano Malavolta";
# End: page-specific settings
#
# Paste your HTML content between the EOHTML markers!
$html = <<<EOHTML
<!-- Main part -->
<div id="midcolumn">
<h1><font color='#280882'>AMW</font> Use Case - Automatic interoperability between architectural notations</h1>
<a name="goals"></a>
<img align="right" src="../../resources/amwLogoSmall.png" valign="top" style="padding-left: 10px;" alt="AMW Logo" />
<blockquote>
<ul>
<li><a href="#overview"><b>Overview</b></a></li>
<li><a href="#download"><b>Download and Examples</b></a></li>
<li><a href="#related"><b>Related Use Cases</b></a></li>
<li><a href="#references"><b>References</b></a></li>
<li><a href="#ack"><b>Acknowledgements</b></a></li>
</ul>
</blockquote>
<hr class="clearer" />
<table>
<COLGROUP>
<COL width="2%">
<COL width="98%">
<tr>
<td></td>
This use case shows the <a href="http://www.di.univaq.it/pellicci/dually/"><b>D</b>U<b>AL</b>LY</a>
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.
<a href="http://www.di.univaq.it/pellicci/dually/"><b>D</b>U<b>AL</b>Ly</a> is an automated framework that aims to offer
an answer to this need allowing both languages
and tools interoperability. <a href="http://www.di.univaq.it/pellicci/dually/"><b>D</b>U<b>AL</b>Ly</a> has been implemented
as an Eclipse plugin that extend AMW and it is based on model transformation
techniques (ATL).
<p/>
<h4 STYLE="font-size: 10pt; padding: 0; border-bottom: 2px solid #49457C; background-position: top left; background-repeat; repeat-x;">
<a name="overview">Overview</a></h4>
<p align="justify">
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.
<p align="center">
<img src="resources/duallyStructure.png"/>
<br /><br />
<b>Figure 1. Conceptual overview of the use case</b>
</p>
<p>
The motivation for <a href="http://www.di.univaq.it/pellicci/dually/"><b>D</b>U<b>AL</b>Ly</a> 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
<a href="http://www.uml.org" target="blank">UML</a>.
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.
<p>These considerations led us to propose <a href="http://www.di.univaq.it/pellicci/dually/"><b>D</b>U<b>AL</b>Ly</a>, a framework to
create interoperability among ADLs themselves as well as UML.
<a href="http://www.di.univaq.it/pellicci/dually/"><b>D</b>U<b>AL</b>Ly</a> 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, <a href="http://www.di.univaq.it/pellicci/dually/"><b>D</b>U<b>AL</b>Ly</a> 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,
<a href="http://www.di.univaq.it/pellicci/dually/"><b>D</b>U<b>AL</b>Ly</a> works at two abstraction levels: meta-modeling (upper part
of Figure 1), and modeling (lower part of Figure 1).</p>
<p>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.</p>
<p>At the modeling level, software architects specify the SA using
their preferred ADL or UML-based notation. <a href="http://www.di.univaq.it/pellicci/dually/"><b>D</b>U<b>AL</b>Ly</a> allows the
automatic generation of model-to-model transformations which permit
the software architect to automatically translate the Dmodel
specification into the corresponding Amodel
and viceversa.</p>
<p>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.</p>
<p><a href="http://www.di.univaq.it/pellicci/dually/"><b>D</b>U<b>AL</b>Ly</a> is automated and implemented as an Eclipse plugin
that extends AMW.
The meta-models are expressed in <a href="http://www.eclipse.org/modeling/emf/" target="blank">Ecore</a>.
The UML profiles can be realized using any UML tool which exports in <a href="http://www.eclipse.org/uml2/" target="blank">UML2</a>,
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 <a href="http://www.sciences.univ-nantes.fr/lina/atl/AMMAROOT/" target="blank">AMMA</a> 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.</p>
<p>The main advantages <a href="http://www.di.univaq.it/pellicci/dually/"><b>D</b>U<b>AL</b>Ly</a> exposes can be summarized as follows:
<ul>
<li> 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 <a href="http://www.di.univaq.it/pellicci/dually/"><b>D</b>U<b>AL</b>Ly</a> extremely easy to use.</li>
<li> <a href="http://www.di.univaq.it/pellicci/dually/"><b>D</b>U<b>AL</b>Ly</a> permits the transformation among formal ADLs and UML
model-based notations and viceversa.</li>
<li> Software architects can continue using familiar architectural
notations and tools, and reusing existing architectural models.</li>
<li> <a href="http://www.di.univaq.it/pellicci/dually/"><b>D</b>U<b>AL</b>Ly</a> permits both languages and tools interoperability.</li>
<li> The meta-transformations among two architectural notations are
defined once, and reused for each model that will be made.</li>
</ul></p>
</p>
<br>
<h4 STYLE="font-size: 10pt; padding: 0; border-bottom: 2px solid #49457C;
background-position: top left; background-repeat; repeat-x;">
<a name="download">Download</a></h4>
<table>
<COLGROUP>
<COL width="25%">
<COL width="75%">
<tr>
<td align="center">
<h3><a href="../../examples/dually/DUALLy_DarwinACME_useCase.zip">
Example</a></h3>
</td>
<td>
This example is the complete scenario to automatically create transformations between Darwin/LTSA and Acme from AMW weaving models.
</td>
</tr>
<tr>
<td align="center">
<h3><a href="../../examples/dually/DUALLy_DarwinAcme_useCaseGuide.pdf">
Example User Guide</a></h3>
</td>
<td>
This document explains step-by-step how to semi-automatically obtain Acme specifications from Darwin/LTSA models by using AMW and ATL.
</td>
</tr>
<tr>
<td align="center">
<h3><a href="../../examples/dually/IVANOpresentation.ppt">
Example User Guide</a></h3>
</td>
<td>
This is a presentation of a doctoral student that presents a general overview of the approach.
</td>
</tr>
</table>
<br>
<h4 STYLE="font-size: 10pt; padding: 0; border-bottom: 2px solid #49457C;
background-position: top left; background-repeat; repeat-x;">
<a name="related">Related Use Cases</a></h4>
<table>
<COLGROUP>
<COL width="25%">
<COL width="75%">
<tr>
<td align="center">
<h3><a href="../umlprofiles/">
Bridge between DSLs and UML profiles</a></h3>
</td>
<td>
The Use Case which provided the basis on the weaving of UML profiles and DSL metamodels.
</td>
</tr>
</table>
<br>
<h4 STYLE="font-size: 10pt; padding: 0; border-bottom: 2px solid #49457C;
background-position: top left; background-repeat; repeat-x;">
<a name="references">References</a></h4>
[1] <a href="http://www.di.univaq.it/pellicci/dually/">DUALLy</a>, home page of the DUALLY project. The source code can be
found in its <a href="http://www.di.univaq.it/pellicci/dually/">SourceForge project page</a>, released under the GNU General Public
License (GPL).
<p/>
[2] 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 <a href="http://www.di.univaq.it/pellicci/dually/">DUALLy</a> site, 2008.
<br>
<h4 STYLE="font-size: 10pt; padding: 0; border-bottom: 2px solid #49457C;
background-position: top left; background-repeat; repeat-x;">
<a name="ack">Acknowledgement</a></h4>
This work is partially supported by <a href="http://artdeco.elet.polimi.it/Artdeco">ARTDECO</a> (Adaptive infRasTructure for DECentralized Organizations), an Italian FIRB (Fondo per gli Investimenti della Ricerca di Base) 2005 Project.
<p/>
</div><p/>
EOHTML;
# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>