added migration use case
diff --git a/usecases/index.php b/usecases/index.php index c400129..630b268 100644 --- a/usecases/index.php +++ b/usecases/index.php
@@ -73,6 +73,26 @@ <h3>List of use cases</h3> <ul> + <li style="list-style:none"> + <table width="100%"> + <tr> + <td width="20%" valign="middle"> + <h2> <a name="migration" href="migration/">Model migration illustrated by a simple metamodel</a> </h2> + </td> + <td width="60%" align="justify"> + This use case explains how to use AMW and ATL to migrate models conforming to different versions of a metamodel + by following the approach proposed in <a href="http://www.eclipse.org/gmt/amw/usecases/compare/">Metamodel comparison and model migration</a>. + The main contribution of this work is a step-by-step guide explaining the migration process + of a simple metamodel. Additionally, it contains the instructions to launch the matching transformation + Name Similarity not used in the previous related use cases. + </td> + <td width="10%" align="center"> + <img src="../../resources/images/completion.png" /> + </td> + </tr> + </table> + </li> + <li style="list-style:none"> <table width="100%"> <tr>
diff --git a/usecases/migration/Persons2PersonsNew.zip b/usecases/migration/Persons2PersonsNew.zip new file mode 100644 index 0000000..8b76813 --- /dev/null +++ b/usecases/migration/Persons2PersonsNew.zip Binary files differ
diff --git a/usecases/migration/Persons2PersonsNewUserGuide.pdf b/usecases/migration/Persons2PersonsNewUserGuide.pdf new file mode 100644 index 0000000..d923d4e --- /dev/null +++ b/usecases/migration/Persons2PersonsNewUserGuide.pdf Binary files differ
diff --git a/usecases/migration/index.php b/usecases/migration/index.php new file mode 100644 index 0000000..844a24d --- /dev/null +++ b/usecases/migration/index.php
@@ -0,0 +1,200 @@ +<?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 - Model migration illustrated by a simple metamodel"; + $pageKeywords = "Metamodel comparison, model weaving, transformations, ATL, AMW, AMMA"; + $pageAuthor = "Kelly Garces"; + + # 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 - Model migration illustrated by a simple metamodel </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="#reference"><b>References</b></a></li> + <li><a href="#acknowledgement"><b>Acknowledgements</b></a></li> + + </ul> + </blockquote> + + <hr class="clearer" /> + + <table> + <COLGROUP> + <COL width="2%"> + <COL width="98%"> + <tr> + <td> + </td> + + The use case explains how to use AMW and ATL to migrate models conforming to different versions of a metamodel + by following the approach proposed in <a href="http://www.eclipse.org/gmt/amw/usecases/compare/">Metamodel comparison and model migration</a>. + The main contribution of this work is a step-by-step guide explaining the migration process of a simple metamodel. + Additionally, it contains the instructions to launch the matching transformation Name Similarity, not used in the previous + related use cases. + + <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/>This use case migrates a model, conforming to metamodel Persons, to another model, conforming to metamodel PersonsNew. + PersonsNew is a different version of Persons; we obtained this version by modifying Persons (see figure 1). + + <p align="center"> + <img src="resources/Persons&PersonsNew.png"/> + <br /><br /> + <b>Figure 1. Persons and PersonsNew metamodels</b> + </p> + + <p/>We migrate the models by using an ATL transformation. In order to generate the transformation we follow the iterative matching + process proposed in [1]. First we execute matching transformations. Every matching transformation generates a weaving model. + The weaving model contains links between the elements of both metamodels. Each link has a value that indicates the similarity + between the woven elements. When we finish the matching transformation execution, we launch a higher-order transformation (HOT) that receives the final weaving model as input and generates the ATL transformation as output. + + <p/>AMW provides a set of matching transformations and a HOT. These can be easily launched on the weaver editor. Particularly, + we use the following matching transformations: + + <ul style="list-style-type:none;"> + <li>Cartesian product: creates a new link for every pair of elements for a left and right metamodels.</li> + <li>Name similarity: applies string comparison methods to calculate the similarity between element names.</li> + <li>Propagation: creates elements that enable to propagate similarity values between links. The propagation elements are used + by the 'Similarity flooding' algorithm.</li> + <li>Similarity flooding (SF): propagates the similarity between elements that have containment or inheritance relationships. + For instance, Male and MalePerson have name similarity; this correspondence is represented by a weaving link. + SF propagates the similarity of these classes to the parent classes (Person and NamedEntity).</li> + <li>Threshold: creates a new weaving model only with the links that have a similarity value higher than a given threshold + (e.g., 0.4).</li> + <li>Link rewriting: for every elements of the left metamodel, selects one link with the highest similarity value. After that, + the transformation rewrites the links following the containment relationships between the elements (e.g., class and + attribute containment).</li> + </ul> + + <p/>The matching process yields six weaving model. The first weaving model (the Cartesian product) contains 10 links. + After applying all the matching transformations, the weaving model is reduced to 4 links. We launch the HOT transformation + from this weaving model obtaining an executable transformation. + + + <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"> + <a href="Persons2PersonsNew.zip"><h3>Example</h3></a> + </td> + <td> + This example is the complete scenario to migrate a simple model by using differents matching transformations and a HOT + <p/> + </td> + </tr> + + <tr> + <td align="center"> + <a href="Persons2PersonsNewUserGuide.pdf"><h3>Example User Guide</h3></a> + </td> + <td> + This document explains step-by-step how to migrate the models by using AMW and ATL. + <p/> + </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. + </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="reference"></a>References</h4> + + [1] Didonet del Fabro, M., Valduriez, P. Semi-automatic model integration using matching transformations and weaving models + In SAC'07, March 11-15, 2007, Seoul, Korea. + + <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> + + This work is supported by the <a href="http://flfs.emn.fr/">FLFS project</a>, INRIA - LINA and Obasco.</td> + + +<p/> + </div><p/> + <div id="rightcolumn"> + <div class="sideitem"> + <h6>General Information</h6> + <ul> + <li style="list-style:none">Octubre 2007</li> + <li style="list-style:none">By <a href="mailto://kelly.garces@emn.fr">Kelly Garces</a></li> + </ul> + </div> + </div> + + +EOHTML; + + + # Generate the web page + $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html); +?> + + + + + + +
diff --git a/usecases/migration/resources/Persons&PersonsNew.png b/usecases/migration/resources/Persons&PersonsNew.png new file mode 100644 index 0000000..dde9cde --- /dev/null +++ b/usecases/migration/resources/Persons&PersonsNew.png Binary files differ