Partial Bidirectionalization of Model Transformation Languages
Résumé
While most model-transformation languages in Model-Driven Engineering are unidirectional, bidirectionality is valuable when artifacts need two-way synchronization. Although several bidirectional transformation engines have been developed, their behavior is generally considered more difficult to formulate and predict compared to the unidirectional case. In the bidirectionalization approach, users write the forward direction of their transformations in the same unidirectional language they are used to, and obtain a system that (besides performing the complete forward transformation) can automatically propagate in the backward direction the target updates. When possible, full bidirectionalization is desirable, but far from trivial. In this paper we propose a partial bidirectionalization approach, by partial compilation of a unidirectional language into a bidirectional language, and coupled execution of the two language engines. Forward transformation is still complete, whereas the target updates that can be back-propagated are deletions and modifications of a well-defined part of the target model. While the extent of the bidirectionalization depends on the two coupled systems, in this paper we provide a general combination scheme and we briefly discuss its well-behavedness. Then we use our technique to bidirectionalize the ATL model-transformation language on top of the GRoundTram bidirectional graph-transformation system.
Mots clés
- Bidirectional Transformation
- Consistency Model Transformation
- Domain specific languages
- Interoperability
- modeling and modularity
- Abstraction
- Transformation Engines
- Runtime Interoperation
- Bidirectionalization
- Software and its engineering → Model-driven software engineering Abstraction
- Bidirectional Transformation
- Model Transformation
| Origine | Publication financée par une institution |
|---|---|
| Licence |