A query-retyping approach to model transformation co-evolution

  • PDF / 4,440,831 Bytes
  • 32 Pages / 595.276 x 790.866 pts Page_size
  • 40 Downloads / 179 Views

DOWNLOAD

REPORT


SPECIAL SECTION PAPER

A query-retyping approach to model transformation co-evolution Adrian Rutle1 · Ludovico Iovino2

· Harald König3 · Zinovy Diskin4

Received: 22 February 2019 / Revised: 9 March 2020 / Accepted: 4 May 2020 © Springer-Verlag GmbH Germany, part of Springer Nature 2020

Abstract In rule-based approaches, a model transformation definition tells how an instance of a source metamodel should be transformed to an instance of a target metamodel. As these metamodels undergo changes, model transformations defined over these metamodels may get out of sync. Restoring conformance between model transformations and the metamodels is a complex and error-prone task. In this paper, we propose a formal approach to automatically co-evolve model transformations according to the evolution of the metamodels. The approach is based on encoding the model transformation definition as a query-retyping combination and the evolution of the metamodels as applications of graph transformation rules. These rules are used to obtain an evolved query over the evolved metamodel together with a new retyping from the target metamodel. We will identify the criteria which need to be fulfilled in order to make this automatic co-evolution possible. We provide a tool support for this procedure, in which, from a traceability model that represents the original model transformation definition, we derive a co-evolved traceability model that represents the evolved transformation definition. Moreover, we use a case study to evaluate the approach with a set of commonly performed metamodel evolutions. Keywords MDE · Migration · Co-evolution · Graph transformations

1 Introduction In model-driven software engineering (MDSE), models are used to represent all aspects of software systems. Model transformations are used to encode model manipulations such as model translation, code generation and behaviour definition. These transformations are usually specified as a set of rules which tell how to transform a source model to a tarCommunicated by A. Pierantonio, A. Anjorin, S. Trujillo, and H. Espinoza.

B

Ludovico Iovino [email protected] Adrian Rutle [email protected] Harald König [email protected] Zinovy Diskin [email protected]

1

Western Norway University of Applied Sciences, Bergen, Norway

2

Gran Sasso Science Institute, L’Aquila, Italy

3

FHDW Hannover, Hannover, Germany

4

McMaster University, Hamilton, Canada

get model. These rules are usually defined at the metamodel level and are applied to the instances of these metamodels. However, the level of definition (model/metamodel level) and application (instance/model level, resp.) of these transformations may vary in different contexts. That is, the model to which the transformation is applied might be located at any of the levels—M0, M1, M2, etc.—in a metamodelling hierarchy. As metamodel evolution is inevitable due to changes in requirements’ specifications, new regulations, refactoring, etc., model transformations would also need to co-evolve in order to work properly on the new vers