Software and Systems Modeling manuscript No. (will be inserted by the editor) Graph and Model Transformation Tools for Model Migration Empirical Results from the Transformation Tool Contest Louis M. Rose 1 (case proponent), Markus Herrmannsdoerfer 2 (editor), Steffen Mazanek 3 (editor), Pieter Van Gorp 4 (editor), Sebastian Buchwald 5 , Tassilo Horn 6 , Elina Kalnina 7 , Andreas Koch 8 , Kevin Lano 9 , Bernhard Sch¨ atz 10 , Manuel Wimmer 11 1 University of York, United Kingdom, e-mail: louis@cs.york.ac.uk 2 Institut f¨ ur Informatik, Technische Universit¨ at M¨ unchen, Germany, e-mail: herrmama@in.tum.de 3 e-mail: steffen.mazanek@gmail.com 4 Eindhoven University of Technology, The Netherlands, e-mail: p.m.e.v.gorp@tue.nl 5 Karlsruhe Institute of Technology (KIT), Germany, e-mail: buchwald@kit.edu 6 Institute for Software Technology, University Koblenz-Landau, Germany, e-mail: horn@uni-koblenz.de 7 University of Latvia, IMCS, Latvia, e-mail: elina.kalnina@lumii.lv 8 Software Engineering Research Group, Kassel University, Germany, e-mail: andreas.koch@cs.uni-kassel.de 9 Kings College London, United Kingdom, e-mail: kevin.lano@kcl.ac.uk 10 fortiss GmbH, Germany, e-mail: schaetz@fortiss.org 11 Vienna University of Technology, Austria, e-mail: wimmer@big.tuwien.ac.at Received: date / Revised version: date Abstract We describe the results of the Transforma- tion Tool Contest 2010 workshop, in which nine graph and model transformation tools have been compared for specifying model migration. The model migration prob- lem — migration of UML activity diagrams from version 1.4 to version 2.2 — is non-trivial and practically rele- vant. The solutions have been compared with respect to several criteria: correctness, conciseness, understand- ability, appropriateness, maturity and support for exten- sions to the core migration task. We describe in detail the comparison method, and discuss the strengths and weaknesses of the solutions with a special focus on the differences between graph and model transformation for model migration. The comparison results demonstrate tool and language features that strongly impact the effi- cacy of solutions, such as support for retyping of model elements. The results are used to motivate an agenda for future model migration research (including suggestions for areas in which the tools need to be further improved). 1 Introduction MDE introduces additional challenges for controlling and managing software evolution [48]. For example, when a metamodel evolves, instance models might no longer conform to the structures and rules defined by the meta- model. When an instance model does not conform to its metamodel, it cannot be manipulated with metamodel- specific editors, cannot be managed with model man- agement operations and, in some cases, cannot even be loaded with modelling tools. Model migration is a devel- opment activity in which instance models are updated to re-establish conformance 1 in response to metamodel evolution. Problem. Model migration is a specialised form of mo- del transformation [72], in which the source and target metamodels are similar, but not the same. Several ap- proaches to model migration have been proposed, and each uses a particular style of model transformation. Presently, various languages are used for specifying model migration, such as a model-to-model transformation lan- guage (in the work of Cicchetti et al. [8] with the Atlas Transformation Language [39]), a language tailored to model migration (Sprinkle’s language [72]), or a general- purpose programming language (in COPE [27]). There has been little work, however, that compares the lan- guages used for performing model migration. In particu- lar, graph transformation languages have not previously been investigated in this context. Similarly, the correla- tion between language (and tool) features and the effi- cacy of a model migration approach have not yet been investigated. 1 The definition of conformance varies over model migra- tion problems and over modelling technology, but usually at least requires that a model (graph) uses only those types de- fined by a metamodel (type graph [10]).