blob: 37302bed97b85032cb819d2f281c08c0d5f0b003 [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="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>
<td width="20%" valign="middle">
<h2> <a name="dually" href="dually/">Interoperability between architectural notations</a> </h2>
</td>
<td width="60%" align="justify">
Nowadays different notations for architectural modeling
have been proposed, each one focusing on a specific application
domain, analysis type, or modeling environment. No
effective interoperability is possible to date.
<a href="http://www.di.univaq.it/pellicci/dually/"><b>D</b>U<b>AL</b>LY</a> is an automated framework that aims to offer
an answer to this need allowing both languages
and tools interoperability. <a href="http://www.di.univaq.it/pellicci/dually/"><b>D</b>U<b>AL</b>LY</a> has been implemented
as an Eclipse plugin that extends AMW and it is based on model transformation
techniques (ATL). This use case shows the DUALLy
approach to achieve interoperability between
two outstanding architectural notations, Darwin and Acme.
</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 href="http://www.eclipse.org/m2m/atl/usecases/webapp.modeling/">Modeling Web applications</a> </h2>
</td>
<td width="60%" align="justify">
This use case shows how model weaving is used to help in the development of model transformations. In some cases, the gap between the input and output metamodels
makes it difficult to develop a model transformation that works for every input model. In such cases a weaving model can be used to enrich the input model by
<b>annotation</b>. This process can be thought of as a way to <i>parameterize</i> the model transformation.
</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="autosar" href="autosar/">Comparison of large metamodels for Automotive Systems</a> </h2>
</td>
<td width="60%" align="justify">
This use case follows the approach of the use case (<a name="compare" href="compare/">Metamodel comparison and model migration</a>)
in order to show how model weaving can be used to compare two versions of a very large metamodel used in Automotive Systems.
</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="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="inverse" href="inverse/">Inverting mappings</a> </h2>
</td>
<td width="60%" align="justify">
The objective of this use case is to show that AMW can easily support the process of inverse mapping generation.
Inversing of mappings is on of the most important model management operators.
Informally speaking, the operator puts back a given mapping of metamodels.
The operator has multiple practical applications. This use case describes an application of inverses
using a Sales Force Automation Systems.
</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="variability" href="variability/">Variability management in software product line</a> </h2>
</td>
<td width="60%" align="justify">
This use case illustrates an approach to manage variability in a Model-Driven Software Product Line.
The approach proposes the generation of different applications from metamodels, feature models, weaving models,
and special transformation rules. The proposal was developed by the
<a href=" http://agamenon.uniandes.edu.co/~csw">Software Construction Group</a> of The University of
Los Andes (Colombia). The use case provides an example, publication and user guide.
</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="productline" href="softwareproductline/">Software product line engineering</a> </h2>
</td>
<td width="60%" align="justify">
Mapping features to models is a necessary step when developing software product lines of
models. In such product lines, we need to relate objects from feature models (i.e. features) to
objects from model templates. In this use case we show an extension to the AMW platform to
specify those relations through weaving models.
<p/>
This use case was developed by <a href="http://www.opencanarias.com">OpenCanarias</a> company.
</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="oamusecase" href="oamusecase/">Metamodel Annotation for Ontology Design</a> </h2>
</td>
<td width="60%" align="justify">
This use case presents a Model Driven solution for annotating models in order to obtain ontologies. Ontology design can
be seen as a difficult task for people who are not aware of ontology concepts. By annotating already made models
we expect to reduce the time for producing ontologies.
<p/>
This use case is part of a work for a complete ontology development
environment based on Model Driven Engineering made by <a href="mailto:g.hillairet@gmail.com">Guillaume Hillairet</a> from the
<a href="http://www.univ-lr.fr/labo/l3i/site_statique/Index.html">L3I</a> Lab in La Rochelle (France).
</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>
<div id="rightcolumn">
<div class="sideitem">
<h6>Incubation</h6>
<div align="center"><a href="http://www.eclipse.org/projects/what-is-incubation.php"><img
align="center" src="../../resources/images/egg-incubation.png"
border="0" alt="Incubation" /></a></div>
</div>
<div class="sideitem">
<h6>Quick index</h6>
<ul>
<li>
<a href="#autosar">Comparison of large metamodels for Automotive Systems</a>
</li>
<li style="list-style:none">----------</li>
<li>
<a href="#dually">Interoperability between architectural notations</a>
</li>
<li style="list-style:none">----------</li>
<li>
<a href="#compare">Metamodel comparison and model integration</a>
</li>
<li style="list-style:none">----------</li>
<li>
<a href="#autosar">Comparison of large metamodels for Automotive Systems</a>
</li>
<li style="list-style:none">----------</li>
<li>
<a href="#inverse">Inverting mappings</a>
</li>
<li style="list-style:none">----------</li>
<li>
<a href="#variability">Variability management</a>
</li>
<li style="list-style:none">----------</li>
<li>
<a href="#productline">Software product line engineering</a>
</li>
<li style="list-style:none">----------</li>
<li>
<a href="#oamusecase">Metamodel annotation for ontology design</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>
<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);
?>