Model-driven approaches are widely used in small and big industries to design and develop embedded and large-scale systems, for example, in the automotive sector, in aircraft design, or in security. Metamodels are the formal definitions of the languages that are used to represent the models. The most common examples are the domain-specific modeling languages (DSMLs): almost every sector has (or can easily adopt) one, given that plenty of tools are provided for their design and development. However, modeling languages are software artifacts as well that need maintenance and whose costs should be considered ex ante. Such maintenance must be in fact extended to the models created by using such languages: a change in the metamodel can be reflected in a number of legacy models. Research exists that tackles the problem of co-evolution of metamodels and models, and it proposes a wide variety of solutions that operate in different ways. This is perceived as a problem for the practitioner that needs to select one approach that fits a metamodel and its running context.
The contributions of the paper are multifold: the authors performed a rigorous literature review listing 31 different methodologies, provided a taxonomy for these methodologies, and suggested a decision support schema to help the practitioner in choosing the best co-evolution method. The schema considers four dimensions: tool support, automation, correctness of the model, and organizational constraints. It is based on several questions whose answers will guide the reader to the selection of the right method.
The paper is very detailed and is suggested to all project coordinators in either small or big industries that benefit from or are planning to adopt a model-driven engineering approach.