Elsevier

Science of Computer Programming

Volume 76, Issue 12, 1 December 2011, Pages 1223-1246
Science of Computer Programming

A framework for evolution of modelling languages

https://doi.org/10.1016/j.scico.2011.01.002Get rights and content
Under an Elsevier user license
open archive

Abstract

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.

Research highlights

► 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.

Keywords

Evolution
Modelling languages
Language engineering
Model-driven engineering
Model transformation

Cited by (0)