eMoflon: A Tool for Building Tools
Lars Fritsche, Géza Kulcsár (TU Darmstadt)
eMoflon is a model-based meta-CASE framework, which allows users to build their own solutions for modern MDE scenarios. Particularly, eMoflon supports meta-modeling and unidirectional as well as bidirectional model transformation. In this tutorial, those major functionalities of eMoflon are presented using a case study of object-oriented refactorings.
Model-Driven Engineering (MDE) is a software engineering principle, which tackles the challenges of complex and long-living software systems by treating architectural and behavorial system models as an inherent part of the software product. Nowadays MDE scenarios pose challenges of increasing complexity to software engineers, incorporating multiple models as well as diverse model engineering tasks:
- (T1) model-based specification of application domains,
- (T2) integration and evolution of models and
- (T3) verification and preservation of consistency between models which represent different system aspects but share some semantic features.
Particularly, while model evolution is often described by unidirectional model transformation, model integration and consistency requires the use of bidirectional synchronization
With the increasing popularity of MDE, a number of industrial as well as academical tools have appeared to facilitate the specification and transformation of models, relying on well-founded techniques such as meta-modeling and model transformation. Regarding the technical foundations, the Eclipse Modeling Framework (EMF) has become a de-facto standard for developing MDE tooling. However, the large majority of prevalent tools focuses on a single aspect of MDE-related activities like model creation or transformation, while not providing a holistic approach addressing each facet of the MDE process.
In this tutorial, we present eMoflon (http://emoflon.org/), a model-based meta-CASE framework. Using eMoflon, we demonstrate how to specify EMF-conform meta-models as well as unidirectional and bidirectional transformations of EMF models. All features are shown and discussed on the example of a real-world case study of model-based object-oriented refactorings.
In particular, the refactoring case study is used in this tutorial to highlight the aforementioned major functionalities of the eMoflon suite:
- (T1) How can we represent the right abstraction over an object-oriented program using eMoflon and EMF-based meta-modeling techniques?
- (T2) How can we specify correct refactoring rules over our custom-tailored program model by using the SDM model transformation language in eMoflon?
- (T3) How do we preserve the consistency of refactored models to the original code base and how do we propagate changes in the source code or the program model to the other side using bidirectional model transformation in eMoflon?
The tutorial is aimed at model engineers of any experience level who are interested in a multi-purpose meta-CASE tool for tackling diverse challenges posed by the modern MDE landscape, within a single, flexible framework.
- Metamodeling with eMoflon
- Unidirectional model transformation using Story-Driven Modeling
- Bidirectional model transformation with Triple Graph Grammars
- Case study of model-based object-oriented refactorings
Lars Fritsche is a doctoral student at the Real-Time Systems Lab at the Technical University of Darmstadt. His research interests are concurrent engineering and bidirectional model transformation.
Géza Kulcsár is a doctoral student at the Real-Time Systems Lab at the Technical University of Darmstadt. His research interests are the semantics of controlled graph transformation and its application for model transformation.