|title:||Connecting Groove to the World using XMI|
|keywords:||<a href="http://groove.cs.utwente.nl/">Groove</a>, <a href="http://www.omg.org/technology/documents/formal/xmi.htm">XMI</a>|
Maarten de Mol
Arend Rensink ,
dr. Ivan Kurtev
Model driven engineering has become an important part of software design, allowing engineers to design more complex systems on a higher, abstract level with a visual notation. Model transformation is an important aspect of model driven engineering. Model-to-text transformations are used to generate code from a model, model-to-model transformations are used for model refactoring or refining, or combining parts of a system. Many approaches exist for modelling, like the standards set by MOF or EMF, and many approaches exist for model transformation. Some use a standard like QVT to define transformations, many use a custom approach that is often inspired by graph transformation.
GROOVE is a graph transformation, simulation and verification tool. In this work we made it possible to use GROOVE as a model transformation tool for Ecore models. Ecore models are imported as type graphs and instances of Ecore models as instance graphs. Instance graphs can be transformed to other instance graphs within GROOVE, and resulting instance graphs can be exported back to Ecore instance models. XMI was used as a standard to per- form model exchange. Online experiences indicate that model exchange is not always possible between tools. We performed an extensive XMI compatibility research of various modelling tools to determine a set of tools for GROOVE to be compatible with. This resulted in our findings that model exchange between tools is rarely possible without errors, and that the exchange of Ecore models led to the best results.
In order to import Ecore models and instance models into GROOVE, we defined a mapping from elements of Ecore modelling to a graph representation. Other work has been done to represent UML or Ecore models as graphs, but approaches are often not complete or are not targetted to a specific graph transformation tool. We discussed all features of the Ecore metamodel, and our mapping to graphs for GROOVE supports all available elements that are relevant for instance models. We implemented a Java program as a package of the GROOVE pro ject that can transform Ecore models and instance models to graph grammars for GROOVE with a type graph and instance graphs. It can also transform instance graphs in a graph grammar back to Ecore instance models, making GROOVE a model transformation tool for Ecore models with a formal basis in graph theory.