Metamodelling & Model Transformations
Model-driven development considers models as first class artefacts in the overall software engineering process, in which core concepts of the modelled domain are specified by metamodels, while the actual system is described by the models themselves. Although these models can be manipulated in many different ways, the most wide-spread approaches are probably (i) unidirectional model transformations, which produce an output model from an input model (according to a dedicated direction), and (ii) bidirectional model synchronizations, which enable data exchange by maintaining the consistency of two (or more) related models.
Both unidirectional model transformation and bidirectional model synchronization approaches are often rule-based, which means that the transformation is governed by an imperative control flow mechanism, which applies declarative rules as basic transformation units. Checking the application conditions of these rules requires identifying those parts in the model on which the rule is executable. This check can be carried out as a general pattern matching process, which is a performance critical subtask in the overall transformation procedure.
Our research activities in the field focus on (i) the elaboration of advanced graph transformation approaches for the unidirectional scenario, (ii) the development and formalization of state-of-the-art techniques for bidirectional synchronizations based on triple graph grammars (TGG), and (iii) the design and implementation of efficient pattern matching algorithms.
Our related software development activities are organized around the eMoflon model transformation and synchronization tool, which uses standard metamodeling techniques provided by the Eclipse Modeling Framework to describe the static structures (classes, attributes and associations) of a domain. Dynamic behaviour is specified by a combination of declarative graph transformation rules and imperative story-driven modeling (SDM) diagrams in case of unidirectional transformations, or exclusively by declarative triple graph grammar (TGG) rules in model synchronization scenarios. In both cases, as a result of an increasingly bootstrapped process, EMoflon generates fully functional EMF-conform Java code from the specifications, which is supplemented by a synchronizer module controlling the selection and application of bidirectionally executable TGG rules.