[PDF][PDF] Automated Inversion of Attribute Mappings in Bidirectional Model Transformations.

ME Kramer, K Rakhman - Bx@ ETAPS, 2016 - Citeseer
ME Kramer, K Rakhman
Bx@ ETAPS, 2016Citeseer
Bidirectional model transformations create or update a target model according to a base
model and vice versa using a single transformation specification for both directions. Triple
graph grammars, for example, define which model elements shall exist and how they should
reference each other without repeating information for both directions. They can also copy
values of simple-typed attributes, such as enumerations, strings, or numbers. But currently
only the identity operator can be easily specified in bidirectional transformation languages …
Abstract
Bidirectional model transformations create or update a target model according to a base model and vice versa using a single transformation specification for both directions. Triple graph grammars, for example, define which model elements shall exist and how they should reference each other without repeating information for both directions. They can also copy values of simple-typed attributes, such as enumerations, strings, or numbers. But currently only the identity operator can be easily specified in bidirectional transformation languages: Other attribute mappings either have to be specified for both directions or with a special constraint language. In this paper, we present an approach that inverts attribute transformation expressions that can be written in a simple Java-like syntax. We also present an initial library of 30 operator-specific inverters that result in well-behaved view-update round-trips (GetPut) for all changes. For changes for which wellbehaved update-view round-trips (PutGet) are impossible, we chose inversions that sustain as much information as possible. We realized our inversion approach for a prototypical transformation language that generates Java code. An evaluation using all 103 transformations of the ATL zoo shows that 26% of the LLOC of all non-trivial attribute transformation expressions could be inverted with our initial inverters. This may indicate that many transformation tasks could involve non-trivial attribute transformations that can easily be specified and inverted with our approach.
Citeseer
以上显示的是最相近的搜索结果。 查看全部搜索结果