T4 - Application Domain 2: Model-Driven Engineering

The objective of this task is to provide a MDA compliant bidirectional model transformation language. The proposed language should be expressive enough to handle the following model-driven software development scenarios:

  • Refining UML class diagram to relational database schemas. This is the "hello-world" of MDE and the classic benchmark of every new model transformation language. The benefits from bidirectionalization are obvious: a database schema has the unpleasant tendency to gain a life of its own, and this would allow an effective documentation of such evolution, by reflecting the changes back to the UML class diagram. There are several variants of this case-study, using different source modeling languages, that should also be considered.
  • Viewpoint modeling is a technique for specifying complex software systems in terms of views, possibly independent or at different abstraction levels, that allow the user to focus just on modeling artifacts related to a particular interest area. Obviously, different views may share elements, and specifying and ensuring the consistency between them is a key issue. If views are extracted from the global model using a bidirectional transformation, consistency between views could be achieved using a technique similar to Harmony [7], a data synchronization framework built using lenses. In particular, we intend to target UML, whose daunting meta-model could benefit from this approach: independent teams could focus on different modeling aspects (for instance, class and sequence diagrams), with predictable synchronization guarantees.

In order to foster its widespread adoption, the proposed language should be compatible with the MOF standard. As such, the first step will be to define an encoding from MOF meta-models to the data structures of the common framework to be defined in task 2. The second step will be the definition of the bidirectional transformation language itself. Instead of proposing a completely new language, we intend to research the possibility of defining it as a variation of an existing model transformation language, such as the unidirectional ATLAS Transformation Language (ATL) or the bidirectional QVT-R domain-specific language. The key problem will be to identify subsets of these languages with precise bidirectional semantics. Since they are highly declarative, namely simple mapping rules expressing relationships between elements of the meta-model, we believe that our common framework based on relational calculus will be ideal to support their implementation. The relationships described by the mapping rules can be transliterated to relational specifications in our PF calculus, from which we expect to calculate the required data dependencies and corresponding valid bidirectionalizations. Effective data redundancy and alignment mechanisms must be provided to tame the non-determinism and control flow of the global transformation.

Given his experience on defining BTs on top of 2LT, namely on model transformation from XML schemas to database schemas [31], Hugo Pacheco will be responsible for this task. Nuno Macedo is involved since this application domain is central to the validation of the techniques to be defined on his PhD thesis. The research team of this task includes also Alcino Cunha (supervisor of this thesis) and a BI grant holder (master student) to support the implementation of the parser and compiler of the proposed language.

The expected deliverables of this task are:

  • A MDA compliant bidirectional model transformation language.
  • Two international conference papers and a journal paper describing the proposed language and its application to the aforementioned scenarios.
  • A master thesis describing the implementation of the language.

Team

  • Hugo Pacheco
  • Manuel Alcino Cunha
  • Nuno Macedo [PhD]
  • BI3