A Comparison of Rule Inheritance in Model-to-Model Transformation Languages

 

Model transformations play a significant role in Model-Driven Engineering. However, their reuse mechanisms have yet to receive much attention. In this paper, we propose a comparison framework for rule inheritance in model-to-model transformation languages, and provide an in-depth evaluation of prominent representatives of imperative, declarative and hybrid transformation languages. The framework provides criteria for comparison along orthogonal dimensions, covering static aspects, which indicate whether a set of inheriting transformation rules is well-formed at compile-time, and dynamic aspects, which describe how inheriting rules behave at run-time. The application of this framework to dedicated transformation languages shows that, while providing similar syntactical inheritance concepts, they exhibit different dynamic inheritance semantics and offer basic support for checking static inheritance semantics, only.

The results base on a carefully developed test set, which includes at least one test case for each criterion. These documented test cases, comprising the example code as well as the metamodels and source models, can be found below.

Test Case Documentation(pdf-Files)

Part 1, Part 2, Part 3, Part 4

Metamodels, source models and example code for Kermeta (zip-File)

Metamodels, source models and example code for QVT-O (zip-File)

Metamodels, source models and example code for TGGs (zip-File)

Metamodels, source models and example code for TNs (zip-File)

Metamodels, source models and example code for ATL and ETL (zip-File)