blob: 53c9d19f2c8d5e7a1ed798332aee46efc6194af3 [file]
<?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 - System Architecture (SA) Management";
$pageKeywords = "DoDAF, model weaving, transformations, matching";
$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>$pageTitle</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="#related"><b>Related use cases</b></a></li>
</ul>
</blockquote>
<hr class="clearer" />
<table>
<COLGROUP>
<COL width="2%">
<COL width="98%">
<tr>
<td></td>
This use case shows how to map the overlapping concepts of different views of a complex system.
It uses a framework that deals with System Architecture (SA) called <a href="http://en.wikipedia.org/wiki/DODAF">DoDAF</a>
(Department of Defense Architecture Framework).
<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">
A <a href="http://en.wikipedia.org/wiki/System_architecture">System Architecture</a> is the set of relations between the parts of a system.
DoDAF is a framework of development of System Architecture developed by the department of defense.
<p/>
A system can be decomposed into different views. Each view provides a perspective of the system with respect of a set of aspects
and interests. There are different relationships between the concepts of these views. For example, the traceability matrix is a view
that captures the relationships between two views, OV-5 and SV-4. OV-5 is an operational view, and SV-4 is a system view.
The traceability matrix is defined as a subset of another system view, called SV-5.
<p/>
<ul>
<li>
In this use case, we present how weaving models and model transformations are used to automate the process of defining the SV-5 view.
The two views are first translated into SV-5, and then this view is used to produce a traceability matrix between SV-4 and OV-5.<p/>
</li>
</ul>
The first steps is to create these three views as KM3 metamodels
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.gmt/AM3/org.eclipse.am3.zoos.atlantic/DoDAF-SV4.km3?root=Technology_Project&view=markup">SV-4</a>,
<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.gmt/AM3/org.eclipse.am3.zoos.atlantic/DoDAF-OV5.km3?root=Technology_Project&view=markup">OV-5</a> and
<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.gmt/AM3/org.eclipse.am3.zoos.atlantic/DoDAF-SV5.km3?root=Technology_Project&view=markup">SV-5</a>).
A weaving model is used to capture the overlapping concepts between these views (see figure below). We create two weaving models, one between OV-5 and SV-5,
and other between SV-4 and SV5.
<p align="center">
<img src="../resources/sysofsys_overview.png"/>
<br /><br />
<b>Weaving models between DoDAF views</b>
</p>
The views are composed by an average of 100 elements. So we automate the process of creating weaving models by executing a set of matching
transformations (see the <a href="../matching/">matching use case</a>). This process avoids developing these weaving models manually.
The matching transformations are executed following a set of rules:
<ul>
<li>
only the elements with the same type are compared (a typed cartesian product) to create an initial weaving model.
</li>
<li>
a weaving link is created between elements with the same type and name.
</li>
<li>
only the weaving links with a similarity value set to one (1) are considered equivalent (i.e., the concepts overlap).
</li>
<li>
a weaving link is child of another one if it relates 2 Structural Features and if the 2 SFs are contained symmetrically by
Classes linked by the parent equivalence link.
</li>
<li>
a link is child of another one if it relates 2 Classes and if the 2 Classes inherits symmetrically of 2 Classes
linked by the parent equivalence link.
</li>
</ul>
The screenshot below shows a weaving model between views OV-5 and SV-5. We select an equality link between the <i>Task</i> elements of each view.
<p align="center">
<img src="../resources/amw_ov5_sv5.png"/>
<br /><br />
<b>Weaving between views OV-5 and SV-5</b>
</p>
<p/>
The weaving models are used to generate two ATL transformations, one that translates the SV-4 view into the SV-5 view, and another that
translates the OV-5 view into the SV-5 view, as shown below. A higher-order transformation takes the weaving model, the OV-5 and SV-5 metamodels
as input, and it produces an ATL transformation as output (OV-5_2_SV-5). This transformation translates OV-5 models into SV-5 models.
After the two views (OV-5 and SV-4) are simultaneously transformed into an SV-5 view, the SV-5 is used to produce a traceability matrix.
<p align="center">
<img src="../resources/sys_hot.png"/>
<br /><br />
<b>Weaving between views OV-5 and SV-5</b>
</p>
<p/>
</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/System_of_systems/System_of_systems.zip"><h3>Example</h3></a>
</td>
<td>
This example is the complete scenario that contains the weaving models, weaving metamodel extensions, and transformations that enables
to create the SV-5 of DoDAF.
<p/>
</td>
</tr>
<td align="center">
<a href="../../examples/System_of_systems/System_of_systems_doc.php"><h3>Example HowTo</h3></a>
</td>
<td>
This document contains step-by-step instructions explaining how to execute the example.
<p/>
</td>
</tr>
<tr>
<td align="center">
<a href="GSoS_ATLAS2006_English.ppt"><h3>Presentation</h3></a>
</td>
<td>
This is a presentation of a master thesis that presents a general overview of the approach.
</td>
</tr>
<tr>
<td align="center">
<a name="interop" href="http://www.sciences.univ-nantes.fr/lina/atl/bibliography/ICSEM07"><h3>Publication</h3></a>
</td>
<td>
The publication titled "Model Integration with Model Weaving: a Case Study in System Architecture" presents the motivation to use
a model driven engineering approach for this System Architecture use case. It also explains the main results achieved.
</td>
<!--
<tr>
<td align="center">
<a name="interop" href="GSoS_AlbinJossic[0.3].pdf"><h3>Master report</h3></a> (in French)
</td>
<td>
This master report (in French) is a detailed description of the whole approach. This master thesis is the base document of this
use case.
</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="../matching/"><h3>Matching</h3></a>
</td>
<td>
Matching is the generic process that creates weaving models.
This use case gives a general overview of the matching process, and how it is handled by AMW and ATL.
</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
software in the avionics industry).
</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>
<tr>
<td align="center">
<a href="../RDBMSXML/"><h3>Relational DB to XML</h3></a>
</td>
<td>
This use case shows how weaving models can be used to perform the data mapping between relational DBs and XML.
</td>
</tr>
<tr>
<td align="center">
<a href="../mergeSVG/"><h3>Merge of geographical information (GML) and statistical data</h3></a>
</td>
<td>
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>
</tr>
<tr>
<td align="center">
<a href="../umlprofiles/"><h3>Bridge between DSL and UML Profiles</h3></a>
</td>
<td>
This use case shows how AMW and ATL are used to produce a bridge between Domain Specific Languages (DSLs) and UML profiles.
</td>
</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>
</table>
<p/>
</div><p/>
EOHTML;
# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>