blob: 8cbfeea5c4a85d28c6022d29a844d18fbf8eb5e4 [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 - Traceability";
$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 - Traceability</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="#documentation"><b>Documentation</b></a></li>-->
</ul>
</blockquote>
<hr class="clearer" />
<table>
<COLGROUP>
<COL width="2%">
<COL width="98%">
<tr>
<td></td>
Traceability between elements of different models is used in different applications.
After executing a model transformation, it is often necessary to know the set of elements
of the source model that were used to produce a given target model element.
A weaving model is used to save this traceability information.
This use case considers traceability of ATL transformations.
<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 we have a transformation model <i>Mt</i> that transforms the <i>Source model</i>
into the <i>Target model</i>. <i>MMa</i> contains a simple
Class <i>Book</i> with two attributes <i>title</i> and <i>subtitle</i>.
<i>MMb</i> contains a simple Class <i>Publication</i> with one attribute <i>title</i>.
The transformation <i>Mt</i> transforms all books into publications, and concatenates the title and
the subtitle in a single attribute. The transformation rule is illustrated in the left side of the figure below.<p/>
</p>
<p align="center">
<img src="../resources/trace_overview.png"/>
<br /><br />
<b>Model transformation</b>
</p>
<p align="justify">
For one target publication, it is necessary to know which source book was used to generate it.
We illustrate the traceability links using simple target and source model elements. These links are reified and
saved in a weaving model <i>Mw</i>. This weaving model conforms to the weaving metamodel <i>MMw</i>.
</p>
<p align="center">
<img src="../resources/trace_model.png"/>
<br /><br />
<b>Weaving model</b>
</p>
<p align="justify">
The weaving metamodel is an extension of the <a href="http://www.eclipse.org/gmt/amw/zoo/#AMW%20core">core weaving metamodel</a>.
The <i>TraceLink</i> element contains an attribute <i>ruleName</i>. This attribute contains the name of the
transformation rule that was executed ("SourceToTarget in the simple illustration").
The reference <i>sourceElements</i> refers to the two input metaelements (<i>title</i> and <i>subtitle</i>).
The reference <i>targetElements</i> refers to the output metaelement (<i>title</i>).
</p>
<p align="center">
<img src="../resources/trace_metamodel.png"/>
<br /><br />
<b>Metamodel extension</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="../../examples/ATL2WTracer/Traceability_example[1.0].pdf"><h3>Documentation</h3></a>
</td>
<td>
This document contains a general overview of the example, with a step-by-step how to.
</td>
</tr>
<tr>
<td align="center">
<a href="../../examples/ATL2WTracer/ATL2WTracer3_2.zip"><h3>Example <br/>
(compatible with latest versions)</h3></a>
</td>
<td>
This is the traceability example refactored to be used with the latest versions of AMW and ATL.
</td>
</tr>
<tr>
<td align="center">
<a href="../../examples/ATL2WTracer/ATL2WTracer.zip"><h3>Example<br/> (original)</h3></a>
</td>
<td>
This example generates the traceability of an ATL execution trace in a weaving model.
The example transforms Class to Relational models, and additionally generates a traceability weaving model.
</td>
</tr>
</table>
</div>
EOHTML;
# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>