| <?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' | |
| $pageTitle = "EMF Tiger - Component Proposal"; | |
| $pageKeywords = "emf, emft, ecore, model transformations, graph transformations"; | |
| $pageAuthor = "Christian Krause, Karsten Ehrig"; | |
| ob_start(); | |
| ?> | |
| <div id="maincontent"> | |
| <div id="midcolumn"> | |
| <h1>EMF Tiger - Component Proposal</h1> | |
| </p> | |
| <?php | |
| include_once($_SERVER['DOCUMENT_ROOT'] . "/projects/fragments/proposal-page-header.php"); | |
| generate_header("Eclipse Modeling Framework Tiger"); | |
| ?> | |
| <h2>Introduction</h2> | |
| <p> | |
| EMF Tiger is a proposed new open source project under | |
| <a href="http://www.eclipse.org/modeling/emft/">Eclipse Modeling Framework Technology (EMFT)</a> | |
| to provide a model transformation based | |
| on structured data models and graph transformation concepts. | |
| </p> | |
| <p> | |
| This component is in the Pre-Proposal Phase (as defined in the | |
| <a href="http://www.eclipse.org/projects/dev_process/development_process.php">Eclipse Development Process</a>) | |
| and this document is written to declare its intent and scope. This | |
| proposal is written to solicit additional participation and input from | |
| the Eclipse community. You are invited to comment on and/or join in the | |
| development of the component. Please send all feedback to the | |
| <a href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.emft">eclipse.technology.emft</a> | |
| newsgroup. | |
| </p> | |
| <h2>Scope</h2> | |
| <p> | |
| In this document, we propose a new model transformation framework for <a href="http://www.eclipse.org/emf">EMF</a>, called EMF Tiger. | |
| </p> | |
| <h3>Model Transformation Languages</h3> | |
| <p> | |
| In model driven engineering, the notion of model transformation refers | |
| to techniques for defining and performing complex operations on structural | |
| data models. Two different types of model transformations can be distinguished: | |
| <ol> | |
| <li><b>Exogenous / source-target transformations:</b> | |
| a model of a source language is translated into a model of a target language. | |
| </li> | |
| <li><b>Endogenous / in-place transformations:</b> | |
| a single model is modified directly. | |
| </li> | |
| </ol> | |
| Endogenous transformations are often considered as a special case of | |
| exogenous transformations where the source and the target metamodel | |
| are identical. From another perspective, one can also regard the source, | |
| target and an additional reference metamodel in an exogenous transformation | |
| as a joint metamodel of an endogenous transformation. | |
| Both viewpoints are valid. To that end, the purpose of a model | |
| transformation often determines its type, e.g. language translations | |
| are usually exogenous while refactorings or reconfigurations are endogenous. | |
| </p> | |
| <p> | |
| There are different ways of defining and executing model transformations | |
| and it is important to note that there is in fact a difference between | |
| the two types of transformations. | |
| Just as with programming languges, there are also different kinds of model | |
| transformation languages which usually support both types of transformations | |
| but in fact are more suited for only one of them. One can basically | |
| distinguish between declarative (using pattern matching), procedural | |
| (using control-flow structures) and hybrid languages which combine | |
| both approaches. | |
| Similar to ordinary programming languages (or e.g. compilers), | |
| verification of correctness and termination of model transformations | |
| is a crucial and at the same time non-trivial task. | |
| </p> | |
| <h3>EMF Tiger</h3> | |
| <p> | |
| EMF Tiger is a tool environment for EMF model transformation. | |
| Transformations are defined and executed | |
| directly on EMF models, ensuring type safety and efficiency. | |
| Model transformation can be executed either using | |
| generated code or in an interpreter mode. | |
| </p> | |
| <p> | |
| The rule-based transformation language of EMF Tiger is inspired by graph | |
| transformation concepts and | |
| combines both declarative and procedural concepts. | |
| In particular, transformation rules are declarative in the sense | |
| that a structural pattern is used to define the precondition of | |
| a rule. Procedural concepts, i.e., control-flow strutures such as | |
| layers and loops can be used to apply a set of transformation rules | |
| in a controlled manner. | |
| </p> | |
| <p> | |
| Since most EMF transformations performed by | |
| EMF Tiger can be formalized by the theory of algebraic graph | |
| transformation (see e.g. <a href="http://www.springerlink.com/content/g215n78q004l310j">[BET08]</a> | |
| (<a href="http://tfs.cs.tu-berlin.de/publikationen/Papers08/BET08.pdf">PDF</a>)), | |
| these model transformations can be verified. | |
| In currently ongoing research, | |
| we investigate how existing techniques for | |
| termination and confluence (correctness) | |
| checks can be adapted to EMF transformations. | |
| As future work, we also plan to incorporate model checking | |
| techniques for a detailed analysis of model transformations. | |
| </p> | |
| <p> | |
| The EMF Tiger tool environment currently consists of the following constituents: | |
| <ul> | |
| <li>a transformation model</li> | |
| <li>a transformation engine (interpreter approach)</li> | |
| <li>a code generator that produces self-contained transformation code in Java (based on EMF-generated code)</li> | |
| <li>a tree-based editor for transformations rules (generated with EMF)</li> | |
| <li>a graphical editor for transformations rules</li> | |
| <li>export utilities for third-party graph transformation tools (for analysis)</li> | |
| </ul> | |
| </p> | |
| <p> | |
| The frontend is currently under reconstruction. We plan a set of | |
| GMF-generated editors for instance models and transformation rules. | |
| Furthermore, a visual debugger for model transformations is planned. | |
| </p> | |
| <p> | |
| Our long-term goal is to make EMF Tiger a comprehensive tool environment for | |
| endogenous in-place EMF model transformations. It shall comprise | |
| convenient user-friendly editors for complete model transformation | |
| systems, including already existing EMF model editors, a visual | |
| debugger, code generator facilities, as well as validation and | |
| verification tools for EMF model transformation. | |
| </p> | |
| <h3>Language Concepts</h3> | |
| <p> | |
| EMF Tiger is a rule-based transformation language with both, | |
| declarative (pattern matching) and procedural aspects (control-flow structures). | |
| A transformation rule consists of two model instances (a set of objects with | |
| references between them): a left-hand side (LHS) and a right-hand side (RHS). | |
| The LHS defines the pattern to be matched (precondition) and the RHS the | |
| in-place modification (postcondition) of the matched model instances. | |
| Optional negative application conditions (NACs) can be defined for restricting | |
| the rule application further. | |
| <p> | |
| </p> | |
| Rules can be executed nondeterministally (from a pool) or using | |
| control-flow structures (e.g. layers and loops). Transformations can further | |
| include calculations on attributes. The calculations are defined as an | |
| expression on the attributes that may also involve (primitive-valued) variables. | |
| </p> | |
| <p> | |
| The transformation language is defined through a metamodel. Currently, | |
| there exists a tree-based editor generated using EMF, and a graphical | |
| editor shown in the screenshot below. | |
| </p> | |
| <p><img src="proposal_files/editorSC.png"></p> | |
| <p> | |
| This front-end consists of a (read-only) viewer for the domain models and | |
| a three-pane editor for defining rules. | |
| In this example a model for a simple refactoring for a statechart | |
| variant is shown. This particular rule moves a state (3:State) out of a | |
| composite state (2:State) up into its parent (1:State). | |
| This is possible, if all adjacent transitions already belong to the | |
| surrounding state. This condition is checked by two similar NACs, one | |
| of which is shown together with the rule. | |
| </p> | |
| <p> | |
| EMF Tiger supports code generation from transformation specifications | |
| as well as an interpreted runtime mode. | |
| </p> | |
| <h3>Comparison with other Model Transformation Languages</h3> | |
| <p>The most important model transformation approaches for EMF are:</p> | |
| <ul> | |
| <li> <a href="http://www.eclipse.org/m2m/atl/">ATL (ATLAS Transformation Language)</a> </li> | |
| <li> <a href="http://www.eclipse.org/m2m/">Procedural QVT (Operational)</a> </li> | |
| <li> <a href="http://www.eclipse.org/m2m/">Declarative QVT (Core and Relational)</a> </li> | |
| <li> <a href="http://www.eclipse.org/gmt/oaw/">Xpand and Xtend (openArchitectureWare)</a> </li> | |
| <li> <a href="http://www.eclipse.org/gmt/epsilon/">Epsilon</a> </li> | |
| </ul> | |
| <p> | |
| Comparing the EMF Tiger transformation language to these languages, the first obvious commonality is | |
| the rule-based definition of transformations and the use of declarative and procedural concepts. | |
| At second glance, the approach of EMF Tiger for defining and executing both source-target and | |
| in-place transformations is quite different | |
| to the other languages. | |
| </p> | |
| <p> | |
| Particularly in-place transformations are not very well supported by | |
| the existing languages. For instance, ATL is defined as a language that | |
| <i>'provides ways to produce a set of target models from a set of source models'</i>. | |
| Although it is basically possible to define in-place transformations in ATL, | |
| this way is not that natural because in-place transformations have to be | |
| regarded as exogenous transformations where the source and the target | |
| metamodels are the same. | |
| This has major consequences on the execution of in-place transformations, i.e., | |
| instead of performing the transformations directly on a given a model (as it is | |
| natural for e.g. refactorings or reconfigurations), | |
| large parts of the source model have to be copied in ATL. | |
| Especially for large models and small changes this is highly | |
| inefficient. It is similar with QVT, since in-place transformations are also defined as | |
| a special type of source-target transformations. | |
| </p> | |
| <p> | |
| EMF Tiger supports both in-place and source-target transformation. | |
| In-place transformations in particular can be very elegantly described | |
| and executed efficiently, since the transformations are applied directly | |
| to an existing instance model. | |
| In contrast to in-place transformations, source-to-target translations require | |
| an additional reference model that keeps track of newly created elements. Note | |
| that the transformation engine itself is oblivious to the type of transformation | |
| performed, i.e., internally source-target and in-place transformations are | |
| treated in the same way. | |
| </p> | |
| <p> | |
| Another key difference of EMF Tiger is its formalization by | |
| graph transformation theory (see <a href="http://www.springer.com/3-540-31187-4">[EEPT06]</a> | |
| or this <a href="http://www.cs.le.ac.uk/people/rh122/papers/2006/Hec06Nutshell.pdf">tutorial</a>), | |
| which enables formal analysis of transformations. Moreover, EMF Tiger | |
| supports the visual development of transformations through its | |
| native graphical notation. | |
| </p> | |
| <h2>Relationship to other Eclipse Projects</h2> | |
| <p> | |
| Apart from the core EMF tools, EMF Tiger uses | |
| <a href="http://www.eclipse.org/emft/projects/jet">JET</a> for code generation and | |
| <a href="http://www.eclipse.org/gef">GEF</a> for the graphical editor. | |
| We currently adapt the graphical editor to use the | |
| <a href="http://www.eclipse.org/gmf">GMF</a> notation view model | |
| and runtime. As a longterm goal, we are planning to partially generate | |
| the editor using GMF's code generator. | |
| </p> | |
| <p> | |
| As a first case study we are working on a number of refactoring | |
| rules for EMF itself (defined on its metamodel) and UML-2. | |
| </p> | |
| <h2>Organization</h2> | |
| <h3>Mentors</h3> | |
| <ul> | |
| <li>Ed Merks (<a href="http://www.macromodeling.com">Macro Modeling</a>, Canada)</li> | |
| <li>Bernd Kolb (<a href="http://www.sap.com">SAP</a>, Germany)</li> | |
| </ul> | |
| <h3>Initial Committers</h3> | |
| The initial committers for this project are: | |
| <ul> | |
| <li> Christian Krause (<a href="http://www.cwi.nl/">CWI Amsterdam</a>), proposed project lead</li> | |
| <li> Enrico Biermann (<a href="http://tfs.cs.tu-berlin.de/">Technische Universität Berlin</a>), committer</li> | |
| <li> Stefan Jurack (<a href="http://www.uni-marburg.de/fb12/swt/">Philipps-Universität Marburg</a>), committer</li> | |
| </ul> | |
| <h3>Code Contributions</h3> | |
| The <a href="http://tfs.cs.tu-berlin.de/emftrans/">EMF Tiger Developer Group</a> | |
| at the TU-Berlin will provide an initial code contribution including the code | |
| generator and the graphical user interface. | |
| <h3>Interested Parties</h3> | |
| <p>The following parties have expressed their interest in EMF Tiger:</p> | |
| <ul> | |
| <li><a href="http://www.atxtechnologies.co.uk/">ATX Technologies (Carlos Matos)</a> </li> | |
| <li><a href="http://www.eclipse.org/gmf/">Eclipse GMF</a> </li> | |
| <li><a href="http://www.hipes.nl/">HiPeS (Jim van Dam)</a> </li> | |
| <li><a href="http://www.zurich.ibm.com/">IBM Zurich Research Laboratory (Jochen Küster)</a> </li> | |
| <li><a href="http://www.ct.siemens.com/">Siemens Corporate Technology (Nikolaus Regnat)</a> </li> | |
| </ul> | |
| <h3>Developer Community</h3> | |
| The team of initial committers will explore statements of interest from | |
| additional developers experienced with EMF model transformations or | |
| willing to gain such experience. | |
| <h3>User Community</h3> | |
| It is expected that the user community for this | |
| component will consist of two kinds of users. | |
| On the one hand, there will be researchers and developers who design EMF transformations | |
| and on the other, there will be developers who integrate the generated EMF model | |
| transformation code in their own applications. | |
| <h2>Tentative Plan</h2> | |
| The first community technical preview release is | |
| scheduled for Winter 2009 and the first release is targeted for Summer 2010. | |
| <h2>Further Information</h2> | |
| Further information can be found on the | |
| <a href="http://tfs.cs.tu-berlin.de/emftrans">EMF Tiger Website</a> | |
| at the TU-Berlin. | |
| </div> | |
| </div> | |
| <?php | |
| $html = ob_get_contents(); | |
| ob_end_clean(); | |
| # Generate the web page | |
| $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html); | |
| ?> |