| <?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 - Matching"; |
| $pageKeywords = ""; |
| $pageAuthor = "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 - Matching</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="#additional"><b>HowTo - additional information</b></a></li> |
| <li><a href="#related"><b>Related use cases</b></a></li> |
| </ul> |
| </blockquote> |
| |
| <hr class="clearer" /> |
| |
| <div id="container> |
| <table> |
| <COLGROUP> |
| <COL width="2%"> |
| <COL width="98%"> |
| <tr> |
| <td></td> |
| <td> |
| |
| The establishment of links between model or metamodel elements is present in numerous use cases of model weaving, such as |
| <i>metamodel comparison, model alignment, interoperability, and others</i>. |
| |
| Consequently, it is of major importance to provide mechanisms to easily create these links. |
| The creation of weaving models is typically a semi-automatic process, called <b>Matching</b>. |
| The links can be created manually or with the help of different matching transformations. <i>Matching transformations</i> |
| implement different heuristics to create weaving models. <p/> |
| |
| This use case gives a general overview of the matching process, and how it is handled by AMW and ATL. |
| The AMW user interface provides a graphical user interface to help in the matching process. It is integrated with the ATL |
| engine to support the execution of different matching heuristics. |
| |
| <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"> |
| |
| Consider it is necessary to establish links between two metamodels, <i>MMa</i> and <i>MMb</i>. |
| The general process is the following: |
| the two metamodels are the input of a matching transformation (see below). |
| This first transformation creates a weaving model between these metamodels. <p/>This weaving model is in turn |
| the input for different matching transformations that are sequentially executed. |
| Every matching transformation |
| refines the input weaving model by creating more accurate links according to specific similarity criteria. |
| At any time after the execution of a matching transformation, the weaving model can be |
| verified and refined manually with AMW. |
| </p> |
| <p align="center"> |
| <img src="../resources/matching.png"/> |
| <br /><br /> |
| <b>"Matching" Use Case's Overview</b> |
| </p> |
| <p align="justify"> |
| There are three different types of matching transformations: |
| <ul class="midlist"> |
| <li><b>Link generation</b>: |
| these transformations create a large set of links between the model elements, without |
| applying any heuritic method. They prepare the |
| weaving model to the application of specific heuristics. |
| </li> |
| <li><b>Similarity assignment</b>: these transformations execute heuristics that calculate a similarity |
| measure for every weaving link (i.e., between the <i>WLinkEnd</i> elements connected by a <i>WLink</i>). |
| There are several methods to calculate the similarity between model elements. |
| For instance, using the similarity between names, using a dictionary of synonyms, or taking into |
| account the structure of model elements. These methods are well adapted to calculate direct links between elements (see Figure below). |
| </li> |
| <li><b>Link selection and rewriting</b>: these transformations select the links with the best similarity values based on |
| specific criteria (e.g., a threshold). The links are reorganized according to the metamodel extensions and the application scenario. |
| For instance, links can be rewritten in nested structures that follow the containment relations between Classes and Attributes. |
| </li> |
| </ul><p/> |
| However, even after the execution of a set of heuristics, it is posible that some links are not created correclty, |
| or some links are simply not created. This is particularly the case of complex kinds of links (see Figure below). Complex kinds |
| of links have more complex semantics, and usually have multiple cardinality. |
| The AMW user interface is designed to adapt to different weaving metamodels. |
| This way it is possible to have a standard user interface to help on the creation of complex links as well. |
| <p/> |
| The matching transformation are typically executed in a pre-defined order. First, the link generation |
| transformations prepare the weaving model. Second, the similarity assignment transformations |
| calculate the similarity measures between the model elements. Finally, the link selection and rewriting |
| transformations filter and reorganize the weaving models keeping the most similar links. |
| </p> |
| <p align="center"> |
| <img src="../resources/matching_transfos.png"/> |
| <br /><br /> |
| <b>Examples of links</b> |
| </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 and examples</a></h4> |
| |
| <table> |
| <COLGROUP> |
| <COL width="25%"> |
| <COL width="75%"> |
| |
| <tr> |
| <td align="center"> |
| <a href="../../download/"><h3>Download</h3></a> |
| </td> |
| <td> |
| The AMW plug-in has an integrated environment to execute a set of matching transformations. They are available when clicking |
| in the context menu of the weaving panel (the middle panel), in the "Match" submenu. Go to the <a href="../../download/">download page</a> to get the plug-in. |
| <p/> |
| </td> |
| </tr> |
| |
| <tr> |
| |
| <td align="center"> |
| <a href="../../examples/#Semi-automatic generation of weaving models"><h3>Examples</h3></a> |
| </td> |
| <td> |
| These examples are complete application scenarios that combine different matching transformations |
| to produce weaving models for different purposes. |
| They are available in the <a href="../../examples/#Semi-automatic generation of weaving models">AMW Examples</a> page. |
| <p/> |
| </td> |
| </tr> |
| |
| <tr> |
| |
| <td align="center"> |
| <a href="http://www.sciences.univ-nantes.fr/lina/atl/bibliography/SAC07"><h3>Publication</h3></a> |
| </td> |
| <td> |
| This publication titled "Semi-automatic Model Integration using Matching Transformations and Weaving Models" presents the use of matching transformations and weaving models for a model integration |
| process. It contains a general overview of the matching process, explaining the different types of matching |
| transformations, and how they are used to create weaving models. |
| </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="additional">HowTo - additional information</a></h4> |
| |
| <table> |
| <COLGROUP> |
| <COL width="25%"> |
| <COL width="68%"> |
| <tr> |
| |
| <tr> |
| |
| <td align="center"> |
| <a href="matching_exec.php"><h3>Executing the transformations</h3></a> |
| </td> |
| <td> |
| This document contains additional information about how to execute the existing matching transformations, |
| what do they do, and how they are organized. |
| </td> |
| |
| </tr> |
| |
| <td align="center"> |
| <a href="matching_develop.php"><h3>Developing new transformations</h3></a> |
| </td> |
| <td> |
| This document explains how to develop new heuristics and how to integrate them with the AMW plug-in. |
| The integration of new heuristics is easily done through an extension point defined in AMW. |
| </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> |
| |
| <tr> |
| |
| <td align="center"> |
| <a href="../interoperability/"><h3>Tool interoperability</h3></a> |
| </td> |
| <td> |
| This use case shows how weaving models are used to capture the semantic heterogeneities between different tools' |
| metamodels. We use two well known bug tracking tools, Mantis and Bugzilla. |
| </td> |
| </tr> |
| |
| <tr> |
| <td align="center"> |
| <a href="../compare/"><h3>Metamodel comparison</h3></a> |
| </td> |
| <td> |
| This use case demonstrates how weaving models are used to compare different |
| metamodels and to produce executable model transformations (we use two metamodels used to define embedded |
| softwer in the avionics industry). |
| </td> |
| </tr> |
| <tr> |
| <td align="center"> |
| <a href="../AOM/"><h3>Aspect oriented modeling</h3></a> |
| </td> |
| <td> |
| This use case demonstrates how AMW is used as an aspect oriented modeling solution to weave a generic communication |
| protocol with specific communication types. |
| </td> |
| </tr> |
| |
| </table> |
| </div> |
| </div><p/> |
| |
| |
| EOHTML; |
| |
| |
| # Generate the web page |
| $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html); |
| ?> |