| <?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://sourceforge.net/projects/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://sourceforge.net/projects/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>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); |
| ?> |