edit

Model Driven Engineering

C. Nebut, M. Huchard

Model Driven Engineering (MDE) is a trend in software engineering which aims at reducing development, maintenance and migration costs. High level (often business) models are capitalized. Then the executable models (programs in changing technologies) are derived through successive steps. We study several issues in MDE.

Model refactoring and evolution

We use Galois lattices [Barbut, Monjardet 1970], Formal Concept Analysis [Wille, 1982] and Relational Concept Analysis [Huchard, 2007]:

  • for analyzing and refactoring class models (in OOP languages since 1994 ; in UML since 2002)
  • for simplifying UML use case models (since 2010)

FCA and RCA allow better abstractions to be discovered on all the model elements (classes, attributes, associations, operations, use cases, actors) and the right specialization/generalization relationships to be identified . The target applications include C++ streams, open-source Java software or APIs, the UML2 meta-model, the DocBook meta-model and environmental information systems.

A class diagram to refactor
A class diagram to refactor
The refactored diagram
The refactored diagram


Model matching

We study model matching in two ways:

  • meta-model matching has been investigated with the Similarity Flooding approach [Melnik et al. 2002] and applied to several meta-models (including Ecore-UML and Ecore-Kermeta)


  • model matching has been investigated using the anchor prompt approach [Noy et Musen 2001] in the context of model transformation example in order to discover the links between a source model and a target model in a transformation example. It has been applied on part of the ATL model transformation zoo and refactoring transformations.
An example of model maching with Mandarine Mandarine software


Generation of model transformation patterns

Thanks to RCA, we extract model transformation patterns from model transformation examples. The process uses information on models, meta-models and transformation traces (which may be obtained by model matching) and learns transformation patterns at the meta-model level. It has been validated on part of the ATL model transformation zoo and refactoring transformations.

A lattice with transformation patterns Bercamote software