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:
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: