blob: 94b048203d1190fc864a9456c134ee244f06bbcb [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 Cases";
$pageKeywords = "AMW, model weaving, use cases, traceability, interoperability, matching, comparison";
$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 Cases</h1>
<a name="goals"></a>
<img align="right" src="../resources/amwLogoSmall.png" valign="top" style="padding-left: 10px;" alt="AMW Logo" />
Weaving models may be used in several application scenarios, such as <b>metamodel comparison, traceability,
model matching, model annotation, tool interoperability</b>. <br/>
This is because it is often necessary to establish relationships between elements of different
models.
<p/>
These use cases are implemented using AMW. AMW supports such a variety of application scenarios because it has an adaptive interface
that handles different metamodel extensions (AMW is fully implemented using the reflective API of EMF).
<br/>
The plug-in also provides a set of extensions points that enables to add new functionalities when necessary.
<p/>
This section describes a set of key use cases of AMW. The use cases are illustrated with a general overview.
Some of them provide more precise documentation, as well as fully implemented examples.
<p/>
Other Eclipse components also have a use case section, such as the <a href="http://www.eclipse.org/gmt/modisco/useCases">GMT Modisco</a> component or
the <a href="http://www.eclipse.org/m2m/atl/usecases/">M2M ATL</a> component.
<p/>
Some of these use cases were developed in the context of the <a href="http://www.modelplex-ist.org">IST European MODELPLEX project</a>
(MODELing solution for comPLEX software systems).
<p align="justify">
The progress status of each use case is indicated by the icons below:
<table width="100%">
<tr>
<td align="center"><img src="../../resources/images/specification.png" /> <b>Specification</b></td>
<td align="center"><img src="../../resources/images/implementation.png" /> <b>Partially Implemented</b></td>
<td align="center"><img src="../../resources/images/completion.png" /> <b>Reaching Completion</b></td>
</tr>
</table>
</p>
<hr class="clearer"/>
<div class="homeitem3col" >
<h3>List of use cases</h3>
<ul>
<li style="list-style:none">
<table width="100%">
<tr>
<td width="20%" valign="middle">
<h2> <a name="compare" href="compare/">Metamodel comparison and model migration</a> </h2>
</td>
<td width="60%" align="justify">
This use case shows how we use weaving models to compare two versions of a metamodel.
The domain of the metamodel is the development of embedded software in the avionics industry.
The weaving model is used to produce a transformation between the models conforming to these metamodels.
</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>
<td width="20%" valign="middle">
<h2><a name="traceability" href="traceability/">Traceability of model transformations</a></h2>
</td>
<td width="60%" align="justify">
Traceability is used in different applications. This use case considers an ATL transformation<!--from
a Book metamodel to a Publication metamodel -->. We need to keep track of the elements
of the source model that were used to produce one target model element.
Weaving models define links to save this traceability information.
</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>
<td width="20%" valign="middle">
<h2> <a name="diff" href="diff/">Calculating the difference between models</a> </h2>
</td>
<td width="60%" align="justify">
This use case calculates the differences between two models.
The difference between two models is an essential process to control the changes and evolutions of models.
The result of the difference is used to apply a patch in the models (to synchronize them).
</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>
<td width="20%" valign="middle">
<h2><a name="matching" href="matching/">Automatic model matching</a></h2>
</td>
<td width="60%" align="justify">
Matching is the process of creating weaving models.
The matching process is the basis for several other use cases of weaving models.
<br/>
This use case gives a general overview of this process and how AMW is integrated with ATL to be able to
execute different matching heuristics.
</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>
<td width="20%">
<h2 align><a name="interoperability" href="interoperability/">Tool interoperability</a></h2>
</td>
<td width="60%" align="justify">
Nowadays, there are a large number of tools that can be used to solve similar problems. However, the tools
typically have heterogeneous data format and semantics.
This use case shows how weaving models and model transformations are used to handle tool interoperability
issues between two well-known bug tracking tools,
<a href="http://www.mantisbt.org/">Mantis</a> and <a href="http://www.bugzilla.org/">Bugzilla</a>.
</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>
<td width="20%">
<h2 align><a name="annotation" href="annotation/">Model annotations in Java 1.4</a></h2>
</td>
<td width="60%" align="justify">
Models are annotated to add extra information that are not relevant to be defined in the metamodel.
For instance, a model can be annotated with preprocessing informations, comments, etc.
This use case shows how weaving models are used to annotate Java 1.4 metamodels.
</td>
<td width="10%" align="center">
<img src="../../resources/images/implementation.png" />
</td>
</tr>
</table>
</li>
<li style="list-style:none">
<table width="100%">
<tr>
<td width="20%">
<h2 align><a name="modelgen" href="modelgen/">Bridge between SQL and KM3</a></h2>
</td>
<td width="60%" align="justify">
This use case shows how weaving models and model transformations are used to translate SQL-DDL (Data Definition
Language) into KM3 (modeling technical space). The use case presents the complete bridging process: the injection of the
SQL file, the weaving model, the transformations, and finally the extraction into a KM3 file.
</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>
<td width="20%">
<h2 align><a name="sys_of_sys" href="sys_of_sys/">System Architecture Management</a></h2>
</td>
<td width="60%" align="justify">
This use case shows how to map the overlapping concepts of different views of a complex system.
It uses a framework that deals with a System Architecture (SA) called
<a href="http://en.wikipedia.org/wiki/DODAF">DoDAF</a>
(Department of Defense Architecture Framework).
</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>
<td width="20%">
<h2 align><a name="RDBMSXML" href="RDBMSXML/">Data mapping between relational DB and XML</a></h2>
</td>
<td width="60%" align="justify">
The data mapping between relational databases and XML is a typical problem in many organizations.
This use case shows how weaving models capture the relationships between a metamodel with flat structures and
foreign keys relationships (representing a relational database) and a metamodel that contains nested structures
(representing an XML base).
</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>
<td width="20%">
<h2 align><a name="umlprofiles" href="umlprofiles/">Bridge between DSLs and
UML profiles</a></h2>
</td>
<td width="60%" align="justify">
The DSL
approach aims at representing every domain with a specific metamodel. The UML approach uses
profiles to create domain specific concepts.
This use case shows how AMW and ATL are used to produce a bridge between these two modeling approaches.
</td>
<td width="10%" align="center">
<img src="../../resources/images/implementation.png" />
</td>
</tr>
</table>
</li>
<li style="list-style-image:none;list-style:none" >
<table width="100%">
<tr>
<td width="20%" valign="middle">
<h2><a name="mergeSVG" href="mergeSVG/">Merge of geographical information and statistical data</a></h2>
</td>
<td width="60%" align="justify">
This use case presents a weaving model used to define a merge operation between a metamodel with geographical information
(an extension of GML) and a metamodel with statistical data into a graphical representation (SVG).
</td>
<td width="10%" align="center">
<img src="../../resources/images/implementation.png" />
</td>
</tr>
</table>
</li>
<li style="list-style-image:none;list-style:none" >
<table width="100%">
<tr>
<td width="20%" valign="middle">
<h2><a name="AOM" href="AOM/">Aspect oriented modeling</a></h2>
</td>
<td width="60%" align="justify">
Aspect oriented modeling aims at weaving business models and cross cutting models in a single model.
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>
<td width="10%" align="center">
<img src="../../resources/images/completion.png" />
</td>
</tr>
</table>
</li>
<!--
<li style="list-style-image:none;list-style:none" >
<table width="100%">
<tr>
<td width="20%" valign="middle">
<h2>Model alignment</h2>
</td>
<td width="60%" align="justify">
A model alignement consists of a set of links between the model elements.
An alignment is used to create an integrated view of two models.
The alignment may be used as an input to merge algorithms.
<br/>
</td>
</tr>
</table>
</li>
-->
</ul>
</div>
<hr class="clearer" />
</div>
<div id="rightcolumn">
<div class="sideitem">
<h6>Quick index</h6>
<ul>
<li>
<a href="#compare">Metamodel comparison and model integration</a>
</li>
<li style="list-style:none">----------</li>
<li>
<a href="#traceability">Traceability</a>
</li>
<li style="list-style:none">----------</li>
<li>
<a href="#diff">Model difference</a>
</li>
<li style="list-style:none">----------</li>
<li>
<a href="#matching">Model matching</a>
</li>
<li style="list-style:none">----------</li>
<li>
<a href="#interoperability"">Tool interoperability</a>
</li>
<li style="list-style:none">----------</li>
<li>
<a href="#annotation">Annotations in Java</a>
</li>
<li style="list-style:none">----------</li>
<li>
<a href="#modelgen">SQL and KM3 bridge</a>
</li>
<li style="list-style:none">----------</li>
<li>
<a href="#sys_of_sys">System Architecture</a>
</li>
<li style="list-style:none">----------</li>
<li>
<a href="#RDBMSXML">RDBMS and XML mapping</a>
</li>
<li style="list-style:none">----------</li>
<li>
<a href="#umlprofiles">DSLs and UML profiles</a>
</li>
<li style="list-style:none">----------</li>
<li>
<a href="#mergeSVG">Merge of geographical information</a>
</li>
<li style="list-style:none">----------</li>
<li>
<a href="#AOM">Aspect oriented modeling</a>
</li>
</ul>
</div>
<div class="sideitem">
<h6>Related links</h6>
<ul>
<li><a href="http://www.eclipse.org/gmt/modisco/useCases">Eclipse/GMT Modisco Use Cases</a></li>
<li><a href="http://www.eclipse.org/m2m/atl/usecases/">Eclipse/M2M ATL Use Cases</a></li>
</ul>
</div>
EOHTML;
# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>