| <?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 - Bridge between Domain Specific Languages (DSLs) and UML profiles"; |
| $pageKeywords = "DSL, model weaving, model transformation, UML, profiles"; |
| $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> |
| <li><a href="#acknowledgement"><b>Acknowledgement</b></a></li> |
| </ul> |
| </blockquote> |
| |
| <hr class="clearer" /> |
| |
| <div id="container> |
| <table> |
| <COLGROUP> |
| <COL width="2%"> |
| <COL width="98%"> |
| <tr> |
| <td></td> |
| <td> |
| |
| This use case presents a bridge between Domain Specific Languages (DSLs) and UML profiles. Domain Specific Languages (DSLs) and UML |
| profiles are two different views of Model Driven Engineering (MDE). DSLs aims at using small, well-focused languages dedicated to a particular domain. Each DSL can be associated to different metamodel. |
| It provides appropriate abstractions and notations to describe a particular domain. UML profiles provide some extension mechanisms to customize UML models to a specific domain. UML |
| profiles are used to model those aspects of systems or applications that are not directly describable by native UML elements. |
| <p/> |
| Both approaches are currently used by different communities. It is important to provide tools to interoperate between them. |
| |
| The Object Management Group (<a href="http://www.omg.org">OMG</a>) has specified several UML Profiles (see the <a href="http://www.omg.org/technology/documents/profile_catalog.htm"> |
| UML Profile Catalog</a>) and the mappings to different metamodels (DSLs). However, the mappings are |
| specified in a table in a text document. They cannot be processed by any tool. The bridges must be implemented manually. |
| <p/> |
| |
| We describe below how a bridge between a UML Profile and a DSL can be rapidly developed using AMW and ATL. |
| We illustrate our approach using the UML Profile for MOF (see the <a href="http://www.omg.org/cgi-bin/doc?formal/2004-02-06">OMG specification</a>). |
| |
| |
| <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"> |
| |
| The bridge takes as input an UML model designed with a profile <i>Ma.uml*</i> and a model <i>Ma</i> of a specific application domain. |
| It transforms the profiled model <i>Ma.uml*</i> into model <i>Ma</i> (conforms to the metamodel <i>MMa</i>), and vice-versa. |
| The figure below shows the translation between the profiled UML |
| into the domain specific model <i>Ma</i>. It is also possible to do the opposite transformation: |
| creating <i>Ma.uml</i> from <i>Ma</i>. |
| |
| <p align="center"> |
| <img src="../resources/dsl_overview.png"/> |
| <br /><br /> |
| <b>Bridge between DSLs and UML profiles</b> |
| </p> |
| |
| Now we explain the general architecture using weaving models created with AMW and ATL transformations (see figure below). |
| The weaving model <i>MWeaver</i> conforms to the weaving metamodel extension <i>MMWeaver</i>. This extension is available in the |
| <a href="../../zoo/#DSLs to UML profiles extension">weaving metamodel Zoo</a>. |
| The weaving model defines the mappings details between the UML profile and the DSL. The mapping details describe the relationships |
| between the concepts of the UML profile and the concepts of the DSL metamodel. |
| <p/> |
| It is possible to use the UML metamodel to define every profiled UML model. However, this use case creates a specific profile metamodel. |
| Thus, we have different profile models. This way it is not necessary to handle with different UML versions, neither to load the whole |
| UML metamodel plus the profiles into AMW. |
| Hence, the mapping details of the weaving model are created between the DSL metamodel <i>MMa</i> and a profile model <i>ProfileForMMa</i> |
| (conforms to the profile metamodel <i>ProfileMeta</i>). |
| <p/> |
| The same weaving model is used to produce two different ATL transformations: <i>T1atl</i> and <i>T2atl</i>. <i>T1atl</i> |
| transforms the models conforming to the metamodel <i>MMa</i> to UML models created with the specific profiles. |
| <i>T2atl</i> transforms UML models to models conforming to <i>MMa</i>. |
| <p/> |
| |
| The benefit of using a bridge separated in two levels is that we automatically produce two ATL transformations |
| from a single weaving model. Consequently, it is possible to execute transformations in both directions. In addition, |
| the only step that requires human intervention is the creation of the weaving model. |
| The subsequent steps are all automatic. |
| |
| <p align="center"> |
| <img src="../resources/dsl_general.png"/> |
| <br /><br /> |
| <b>General overview</b> |
| </p> |
| |
| The figure below shows a screenshot of a weaving model created in the AMW prototype. This weaving model contains |
| the mapping details between a UML profile for MOF, and the MOF metamodel. This example shows the declarative |
| definition of the weaving model. This enables to have mapping specifications independent of the transformation language, and |
| also bi-directional. In this case we produce two ATL transformations to transform the profile for MOF into the MOF metamodel, |
| and in the opposite direction as well. |
| |
| <p align="center"> |
| <img src="../resources/dsl_AMW.png"/> |
| <br /><br /> |
| <b>Weaving a metamodel and a UML profile</b> |
| </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/UMLProfiles/ExampleUMLProfiles_DSLs.pdf"><h3>Detailed description</h3></a> |
| </td> |
| <td> |
| This document contains a complete and detailed description of this use case. It identifies more precisely the relations between UML profiles and metamodels, |
| and presents a tool using AMW and ATL that enables to bridge between these two approaches. |
| </td> |
| </tr> |
| <tr> |
| <td align="center"> |
| <a href="Bridging_UMLProfile_DSL.ppt"><h3>Presentation</h3></a> |
| </td> |
| <td> |
| This presentation is a general overview of the approach. It was created based on the detailed documentation. |
| </td> |
| </tr> |
| |
| <tr> |
| |
| <td align="center"> |
| <a name="interop" href="http://www.sciences.univ-nantes.fr/lina/atl/bibliography/MDSD05_1"><h3>Publication</h3></a> |
| </td> |
| <td> |
| The publication titled "A Practical Approach to Bridging Domain Specific Languages with UML profiles" presents the motivations of creating |
| bridges between DSLs and UML profiles. It also shows the main issues that appeared while developing a MDE solution. |
| <p/> |
| </td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td align="center"> |
| <a href="../../examples/UMLProfiles/UMLProfiles_DSLs.zip"><h3>Example</h3></a> |
| </td> |
| <td> |
| This example implements a bridge between MOF and a UML profile for MOF. |
| </td> |
| </tr> |
| |
| <tr> |
| <td align="center"> |
| <a href="../../examples/UMLProfiles/UserGuideUMLProfiles_DSLs.pdf"><h3>User guide</h3></a> |
| </td> |
| <td> |
| This user guide presents the main steps on how to configure AMW an ATL to run the example. |
| </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="../sys_of_sys/"><h3>System Architecture (SA) management</h3></a> |
| </td> |
| <td> |
| This use case shows how to map the overlapping concepts of different views of a complex system. It uses a System Architecture (SA) |
| framework called DoDAF (Department of Defense Architecture Framework). |
| </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> |
| This work is supported by the <a href="http://openembedd.inria.fr/home_html-en?set_language=en&cl=en">OpenEmbeDD project</a>. |
| </td> |
| </tr> |
| </table> |
| |
| |
| <p/> |
| |
| |
| </div> |
| </div><p/> |
| |
| |
| EOHTML; |
| |
| |
| # Generate the web page |
| $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html); |
| ?> |