| <?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); |
| ?> |