blob: af5d7c4ec886b60b89665cfda635a16c8808b76a [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 - 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>
<tr>
<td align="center">
<a href="../modelgen/"><h3>Bridge between SQL and KM3</h3></a>
</td>
<td>
This use case shows how weaving models and model transformations are used to translate SQL-DDL (Data Definition Language) into
KM3 (a modeling technical space) and to translate KM3 into SQL.
</td>
</tr>
</table>
</div>
</div><p/>
EOHTML;
# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>