Project Details
Model Transformation Performance Engineering
Subject Area
Software Engineering and Programming Languages
Term
from 2017 to 2021
Project identifier
Deutsche Forschungsgemeinschaft (DFG) - Project number 358569332
Software systems continually increase in size and complexity. For example, the amount of software in cars increases by one order of magnitude every decade. One trend to handle these challenges is Model-Driven Engineering which advocates using models and model transformations as key artifacts in the development process.Models can become huge, e.g., in the automotive domain and for the performance prediction of information systems. In such cases, model transformation execution times up to hours occur. Hence, performance is an important quality of model transformations, e.g., throughput in terms of model elements or overall execution time.In recent years, there has been a trend not only to use models to generate code or to analyze them at design time but instead to use models@run.time to be able to analyze and change the behavior of self-adaptive systems. As those models need to be updated continuously by model transformations, e.g., to properly reflect the system or its environment, the transformations need to be executed within very tight deadlines, for embedded systems often satisfying hard real-time requirements, even for small models.Engineers today mostly address performance not at all, in an ad-hoc fashion, or after first problems arise in production. There exists no explicit support for transformation engineers to improve the transformation scripts which in our experience leads to massive performance gains. Unfortunately, it requires expert knowledge about how the model transformation engines interact with the transformation script to leverage these performance gains.Traditionally, profiling approaches enable inspecting systems during runtime to identify performance hot spots. But they only work on a programming language level and, thus, are not reasonably applicable. Existing approaches in Software Performance Engineering (SPE) predict the performance of software and, thus, identify performance problems before they arise but they are not suitable for model transformations. There exist no research activities to systematically and holistically enable the performance engineering of model transformations, i.e., to support the engineer in developing transformations that achieve the required performance.The proposed project aims at providing a holistic approach for the performance engineering of model transformations to ensure that the transformation chains meet their performance and scalability requirements. The project results will enable software engineers to systematically identify and visualize causes for performance issues as well as predict and improve the performance of model transformation. The results will be applied to different transformation languages and complementary demonstrators: self-adaptive cloud systems with soft real-time requirements and self-adaptive quadrocopter swarms with hard-real-time requirements. The evaluation will be complemented by user studies to ensure that our results really support engineers.
DFG Programme
Research Grants