A framework for evolution of modelling languages - Meyers, Bart; Vangheluwe, Hans (Science of computer programming, 2011)
In model-driven engineering, evolution is inevitable over the course of the complete life cycle of complex software-intensive systems and more importantly of entire product families. Not only instance models, but also entire modelling languages are subject to change. This is in particular true for domain-specific languages, whose language constructs are tightly coupled to an application domain. The most popular approach to evolution in the modelling domain is a manual process, with tedious and error-prone migration of artefacts such as instance models as a result. This paper provides a taxonomy for evolution of modelling languages and discusses the different evolution scenarios for various kinds of modelling artefacts, such as instance models, meta-models, and transformation models. Subsequently, the consequences of evolution and the required remedial actions are decomposed into primitive scenarios such that all possible evolutions can be covered exhaustively. These primitives are then used in a high-level framework for the evolution of modelling languages. We suggest that our structured approach enables the design of (semi-)automatic modelling language evolution solutions. ► In model-driven development, evolution of modelling languages is inevitable. ► Necessary migration of (meta-)models and transformation models is currently manual. ► In this paper, a modelling language evolution taxonomy and different evolution scenarios are given. ► Required remedial actions are decomposed into primitive scenarios. ► Our framework for modelling language evolution builds on these primitives.