blob: f5436ee2d9610050bc994e1fc35b037097f398c3 [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.
$shortTitle = "Verifying UML profiled models";
$pageTitle = "ATL Use Case - " . $shortTitle;
$pageKeywords = "";
$pageAuthor = "Freddy Allilaire";
# End: page-specific settings
#
# Paste your HTML content between the EOHTML markers!
$html = <<<EOHTML
<!-- Main part -->
<div id="midcolumn">
<h1>$pageTitle</h1>
<img align="right" src="../../images/atlLogoSmall.png" valign="top" style="padding-left: 10px;" alt="ATL Logo" />
<a href="http://www.papyrusuml.org/"><img align="right" src="../../images/Papyrus_48x48.gif" valign="top" style="padding-left: 10px;" alt="Papyrus" /></a>
<blockquote>
<ul>
<li><a href="#keywords"><b>Keywords</b></a></li>
<li><a href="#overview"><b>Overview</b></a></li>
<li><a href="#relatedUseCases"><b>Related Use Cases</b></a></li>
<li><a href="#download"><b>Download</b></a></li>
<li><a href="#acknowledgement"><b>Acknowledgement</b></a></li>
</ul>
</blockquote>
<hr class="clearer" />
<div id="container>
<p align="justify">
This use case shows how to integrate a model transformation service in a UML Modeler to verify a UML profiled model.
</p>
<h4 STYLE="font-size: 10pt; padding: 0; border-bottom: 2px solid #49457C; background-position: top left; background-repeat; repeat-x;"><a name="keywords"></a>Keywords</h4>
<table width="100%">
<COLGROUP>
<COL width="2%" />
<COL width="98%" />
</COLGROUP>
<tr>
<td></td>
<td>
<p align="justify">
UML Modeler,
<a href="http://www.eclipse.org/modeling/mdt/?project=uml2">UML 2</a>,
UML Profile,
Verification,
Naming convention,
Error reporting
</p>
</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="overview"></a>Overview</h4>
<table width="100%">
<COLGROUP>
<COL width="2%" />
<COL width="98%" />
</COLGROUP>
<tr>
<td></td>
<td>
<p align="justify">
<a href="http://www.papyrusuml.org/">Papyrus</a> is a dedicated tool for UML2 graphical modelling mainly developed by <a href="http://www-list.cea.fr/">CEA LIST</a>.
It integrates the ATL engine. This use case shows how the coupling of ATL and Papyrus may allow to verify UML profiled models.
</p>
<p align="justify">
In the context of this use case, a sample UML profile and a sample UML model applying this profile have been modeled with Papyrus. For this UML profiled model, we provide a service that
will check if the UML model complies to some conventions. The conventions are defined by the ATL transformation "SampleUMLProfile to Problem".
The figures below present the profile and the UML model used here:
</p>
<div align="center">
<table width="100%">
<tr valign="top">
<td align="center" width="50%">
<img src="img/sampleProfile.PNG" />
<br /><br />
<b>Sample profile</b>
</td>
<td align="center" width="50%">
<img src="img/sampleModel.PNG" />
<br /><br />
<b>Sample UML model using the Sample profile</b>
</td>
</tr>
</table>
</div>
<p align="justify">
For all the models using the sample profile, we want to check some properties (e.g. naming convention).
To do this, we will define an ATL model transformation to check these conventions associated to the Sample profile.
If an element of a UML model does not respect a convention, a problem element (e.g. warning, error) will be created.
For example, if we want to forbid the value "value1" for the property "myProperty" this could be done by the following ATL code:
</p>
<p align="justify">
<img src="img/rule1.PNG" />
</p>
<p align="justify">
The following ATL rule will verify if all the classes with stereotype MyStereotype have a name starting by 'Sample_'.
If not, a warning problem will be created with the following text "Class name should start with Sample_ to respect sample convention".
</p>
<p align="justify">
<img src="img/rule2.PNG" />
</p>
<p align="justify">
To see how to configure and run the "Verification UML Profiled Model" ATL service, please take a look to the <a href="userGuide.php">User Guide</a>.
</p>
<p align="justify">
This resulting model contains all the problems of the UML model.
So, if this model is not empty (i.e. there are problems in the UML model) the problems will be displayed in the Eclipse Problems view.
</p>
<p align="center">
<a href="img/errorsReporting.PNG" ><img src="img/errorsReporting_small.PNG" /></a>
<br /><br />
<b>Result of error reporting</b>
</p>
</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="relatedUseCases"></a>Related Use Cases
</h4>
<table>
<COLGROUP>
<COL width="2%" />
<COL width="98%" />
</COLGROUP>
<tr>
<td></td>
<td>
<p align="justify">
None at the current time.
</p>
</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="download">Download</a>
</h4>
<table width="100%">
<COLGROUP>
<COL width="25%">
<COL width="75%">
</COLGROUP>
<tr>
<td align="center"><a href="http://www.papyrusuml.org/"><img src="../../images/Papyrus_48x48.gif" /></a></td>
<td><a href="http://www.papyrusuml.org/"><b>Papyrus</b></a>, an open-source graphical modeler tool for UML2 and based on Eclipse</a>.</td>
</tr>
<tr>
<td align="center"><a href="http://www.papyrusuml.org/scripts/home/publigen/content/templates/show.asp?P=131&L=EN&ITEMID=10#4"><h3>ATL Service</h3></a></td>
<td>Papyrus add-in containing the implementation of this use case.</td>
</tr>
<tr>
<td align="center"><h3><a href="userGuide.php">User Guide</a></h3></td>
<td>This user guide explains how to configure and launch the ATL service in Papyrus.</td>
</tr>
<tr>
<td align="center"><h3><a href="SampleProject4Verification.zip">Sample Project</a></h3></td>
<td>Sample project with a UML profile and a UML model applying this profile to test the implementation of this use case in Papyrus.</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="acknowledgement"></a>Acknowledgement
</h4>
<table width="100%">
<COLGROUP>
<COL width="2%">
<COL width="98%">
</COLGROUP>
<tr>
<td></td>
<td>
The present work is being supported by the <a href="http://www.usine-logicielle.org">Usine Logicielle project of the System@tic Paris Region Cluster</a>.
</td>
</tr>
</table>
</div>
</div>
<div id="rightcolumn">
<div class="sideitem">
<h6>General Information</h6>
<ul>
<li style="list-style:none">May 2007</li>
<li style="list-style:none">By <a href="http://www.sciences.univ-nantes.fr/lina/atl/contrib/allilaire">Freddy Allilaire</a> (INRIA), Rémi Schnekenburger (CEA LIST)</li>
<li style="list-style:none"><br />Please, ask your questions on the <a href="news://news.eclipse.org/eclipse.modeling.m2m">M2M newsgroup</a></li>
</ul>
</div>
</div>
EOHTML;
# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>