blob: 51b1096c2a5dfaccc5e5cd620ee6bf088829eb8e [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 - Comparison of large metamodels for Automotive Systems";
$pageKeywords = "Metamodel comparison, model weaving, transformations, ATL, AMW, AMMA";
$pageAuthor = "Juan M. Vara Mesa, Marcos Didonet Del Fabro";
# 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 - Comparison of large metamodels for Automotive Systems</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="#extraction"><b>Metamodels and Models extraction</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="#acknowledgement"><b>Acknowledgement</b></a></li>
</ul>
</blockquote>
<hr class="clearer" />
<table>
<COLGROUP>
<COL width="2%">
<COL width="98%">
<tr>
<td></td>
<td align="justify">
Frequently, the set of modeling concepts for a given domain experiments certain kind of evolution: new elements are added,
previous elements are ruled out while others just remain but suffering from some modifications. This way, the models conforming
to the previous version of the metamodel become obsolete, so they have to be updated in order to conform to the new metamodel
specification. This task can be very tedious and even more in situations like the one tackled in this use case, where the size
of the metamodels considered makes almost impossible to perform this task by hand.
<p/>
In this Use Case we show how model weaving can be used in order to generate model transformations that support the migration of
models conforming to different version of a same metamodel. This use case applies similar techniques of the
<a name="compare" href="../compare/">Metamodel Comparison</a>
use case, but modified to work with very large metamodels (each one comprises around <b>25.000 elements</b>).
With such a size, the definition of a model transformation between those metamodels from scratch would be completely
unaffordable.
<p/>The metamodels considered in this use case are two different versions of a metamodel used to describe the System, Software
and Hardware of an automobile defined by AUTOSAR (AUTomotive Open System ARchitecture), a partnership of automotive manufacturers
and suppliers working together to develop and establish a de-facto industry standard for automotive electrical/electronic (E/E) architectures.
<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">
The approach followed in this Use Case is basically the same followed in a <a name="compare" href="../compare/">previous one</a>:
two different versions of the same metamodel, AUTOSAR2.0 and AUTOSAR2.1, used to define the set of modeling concepts considered in
the automotive domain,
are compared with the aim of defining a model transformation that allows migrating from models conforming to the former version
of the metamodel to the later one.
<br/>This model comparison is based on the execution of refined versions of the matching
transformations already used in the mentioned
<b>Metamodel Comparison Use Case</b> that generates as output different versions of the weaving model
between the two versions of the metamodel considered.<br/> The transformations were modified to support matching of large metamodels.
The process is summarized in the figure below.
<p align="center">
<img src="images/ModelMigration.png"/>
<br /><br />
<b>"Metamodel comparison" Use Case's Overview</b>
</p>
<p/>A preliminary weaving model (<i>Autosar.amw</i>) containing just one root element referencing the woven models
(AUTOSAR2.0 and AUTOSAR2.1) is created by hand using the AMW wizard.
<p/>This basic weaving model is refined in a continuous process that consist basically in executing different matching transformations that
take as input the two considered metamodels and the last weaving model generated.
<br/>This way, with each new transformation executed we obtained
a more valuable weaving model, since the different links defined between both metamodel elements are more likely to be real equivalences
between the input metamodels. These equivalences will be translated to be supported by a model transformation.
<p/>So, the weaving models generated are:
<ul style="list-style-type:none;">
<li>Restricted Cartesian Product (<i>Autosar_cp.amw</i>): this weaving model is merely a Cartesian product of the elements having the same type
found in both metamodels
<li>Threshold (<i>Autosar_cp_th.amw</i>): the elements from the previous weaving model with the lower similarity values
are rolled out of the resulting weaving model</li>
<li>Name equality (<i>Autosar_cp_th_equal.amw</i>): a similarity value is assigned to each one of the matched elements obtained in the previous model
(<i>Autosar_cp.amw</i>); the elements with the same name receive a higher value.
</li>
<li>Link rewriting (<i>Autosar_cp_th_equal_lr.amw</i>): the elements from the previous weaving model are reorganized according to their nature, that is,
taking into account if they are Classes or Attributes/References contained in those Classes</li>
<li>Enum Datatypes processing (<i>Autosar_cp_th_equal_lr_enum.amw</i>):
due to the special characteristics of the metamodels considered, a
new transformation dedicated to map the enum datatypes has been developed and applied in this use case
</li>
<li>Link rewriting - non equivalence (<i>
Autosar_cp__th_equal_lr_enum_noneq.amw</i>): a new set of links is added in the previous model, identifying
the elements from the input metamodels (AUTOSAR2.0 and AUTOSAR2.1) for what no equivalence has been found</li>
</ul>
<p/>Finally, the obtained weaving model is used to automatically generate a model transformation that supports
the migration of models conforming to AUTOSAR2.0 metamodel to models conforming to AUTOSAR2.1 metamodel.
This transformation is obtained by executing a higher-order transformation (HOT) included in the AMW plug-in. This transformation
takes as inputs two different metamodels and a weaving model between these metamodels and generates as output an .ecore model conforming
to the ATL metamodel, that is, an ATL model (<i>Autosar_cp_th_equal_lr_noneq_hot.ecore</i>).<br/>
This model is directly extracted to an ATL file by using again one of the functionalities provided by the AMW/AM3 plug-ins.
</p>
<h4 STYLE="font-size: 10pt; padding: 0; border-bottom: 2px solid #49457C; background-position: top left; background-repeat; repeat-x;">
<a name="extraction">Metamodels and Models extraction</a></h4>
<p align="justify">
As mentioned before, this use case is similar to the
<a name="compare" href="../compare/">Metamodel comparison and model migration</a> use case.
The major difference is that the metamodels and models
are much bigger, so new and refined
transformations has been developed to generate the different weaving models.<br/>
Another significance difference is the way of defining the metamodels
implied in the model migration process, as well as the models used to
verify the ATL transformation generated as result of the process.<br/>
The idea of this process is depicted in the figure below:
<p align="center">
<img src="images/Metamodels.Injection.png"/>
<br/> <br/>
<b>Metamodels and Models extraction</b>
</p>
In this case, developing the metamodels from scratch would had been a very
tedious task and prone to errors. Nevertheless, we take advantage
of the functionalities provided by EMF to automatically generate the
AUTOSAR 2.0 and AUTOSAR 2.1 ecore metamodels from the original XML Schema where
those metamodels were defined.<p/>
Moreover, once these .ecore metamodels are defined, we use EMF to generate the code
capable of reading models
models conforming to those metamodels, as well as a visual editor for those
models.<br/>
Finally, by using the plug-ins automatically generated by EMF, any XML
document conforming to the original XML Schema defining
the AUTOSAR 2.0 metamodel (or AUTOSAR 2.1 metamodel) is automatically
recognized as a model conforming to the AUTOSAR 2.0.ecore metamodel (respectively, AUTOSAR 2.1.ecore).
Thus, this model is edited using the generated editor, and can be used as input to test the ATL transformation obtained
directly. This process is an ad-hoc XML injection.
</p>
<h4 STYLE="font-size: 10pt; padding: 0; border-bottom: 2px solid #49457C;
background-position: top left; background-repeat; repeat-x;">
<a name="download">Download and examples</a></h4>
<table>
<COLGROUP>
<COL width="25%">
<COL width="75%">
<tr>
<td align="center">
<h3><a href="../../examples/autosar/autosar.zip">Autosar</a></h3>
</td>
<td>
This example contains the transformation that was generated.
</td>
</tr>
</table>
<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="68%">
<tr>
<td align="center">
<a href="../compare/"><h3>Metamodel Comparison and Model Migration</h3></a>
</td>
<td>
The Use Case in which the one presented here is based.
The step-by-step <a href="../../examples/Scade/Scade_doc.php">
<b>HowTo</b></a> that explains how to execute the examples is
recommended here in order to execute this Use Case.
</td>
</tr>
<tr>
<td align="center">
<a href="../matching/"><h3>Matching</h3></a>
</td>
<td>
Matching is the generic process that creates weaving models.
This use case gives a general overview of the matching process, and how it is handled by AMW and ATL.
</td>
</tr>
</table>
<p/>
<h4 STYLE="font-size: 10pt; padding: 0; border-bottom: 2px solid #49457C; background-position: top left; background-repeat; repeat-x;">
<a name="acknowledgement"></a>Acknowledgement
</h4>
<table width="100%">
<COLGROUP>
<COL width="2%">
<COL width="98%">
</COLGROUP>
<tr>
<td></td>
<td>
The present work is been supported by the GOLD project financed by the Spanish Ministry of Education and Science (TIN2005-00010)
and the FoMDAs project (URJC-CM-2006-CET-0387)
co-financed by the <a href="http://www.urjc.es">Rey Juan Carlos university
</a> and the Regional Government of Madrid.
</td>
</tr>
</table>
</table> <p/>
</div>
<div id="rightcolumn">
<div class="sideitem">
<h6>General Information</h6>
<ul>
<li style="list-style:none">July 2007</li>
<li style="list-style:none">By <a href="http://kybele.escet.urjc.es/members/jmvara/">Juan M. Vara Mesa</a></li>
</ul>
</div>
</div>
EOHTML;
# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>