Model-Driven Engineering is a software development process that has gained popularity in the recent years. Unlike traditional software engineering processes, MDE is centered around models, instead of code. By using model transformations, models can be translated from one language to another, resulting in a separation of program architecture and execution platform. However, an increase in size of any of the elements required by the transformation process might lead to performance problems. Although these problems are common and well known in the field of software engineering, problems specific to MDE have not yet been investigated in sufficient depth.
In this research, we compare the performance of three model transformation engines. These tools allow the transformation of models to be specified in ATL, QVT Operational Mappings and QVT Relations. Furthermore, different implementation strategies are evaluated to determine how language constructs affect the performance of the model transformation process.
The implementation of model transformation engines determines the performance of the language. Increases of model size and complexity cause transformations to run slower, yet some transformation engines are affected more than others. ATL is the fastest performing language, followed by QVTo and QVTr in this order. Language constructs often allow developers to define the same model transformation in multiple ways. High metric values for the number of attribute helpers, and low values for the number of calls to allInstances() indicate better performance in ATL transformations. High values for the number of called rules metric suggests an imperative specification style, resulting in a negative impact on performance.
The results from this research allow transformation designers to estimate the performance of their transformation definitions. Developers of model transformation tools can use our results to improve the current version of their tools.