From UML Activities to TAAL - Towards behaviour-preserving model transformations Gregor Engels 1 , Anneke Kleppe 2 , Arend Rensink 2 , Maria Semenyak 1 , Christian Soltenborn 1 , and Heike Wehrheim 1 1 University of Paderborn, Department of Computer Science, 33098 Paderborn, Germany {engels,semenyak,christian,wehrheim}@upb.de 2 University of Twente, Department of Computer Science, 7500 AE Enschede, The Netherlands ⋆ rensink@cs.utwente.nl Abstract. Model transformations support a model-driven design by providing an automatic translation of abstract models into more concrete ones, and eventually program code. Crucial to a successful application of model transformations is their correctness, in the sense that the meaning (semantics) of the models is pre- served. This is especially important if the models not only describe the structure but also the intended behaviour of the systems. Reasoning about and showing correctness is, however, often impossible as the source and target models typi- cally lack a precise definition of their semantics. In this paper, we take a first step towards provably correct behavioural model transformations. In particular, we develop transformations from UML Activities (which are visual models) to programs in TAAL, which is a textual Java-like programming language. Both languages come equipped with formal behavioural semantics, which, moreover, have the same semantic domain. This sets the stage for showing correctness, which in this case comes down to showing that the be- haviour of every (well-formed) UML Activity coincides with that of the corre- sponding TAAL program, in a well-defined sense. 1 Introduction The concept of model-driven development (MDD) crucially depends on the possibility of generating lower-level models (and finally code) from abstract models. Originally meant as a help for structuring complex programs, models today take on a different, and much more central, role: they not only act as the primary entity for discussions with customers, but also within the development trajectory, for fixing interfaces with other systems or analysing the system with respect to requirements. Thus, it is vital to ensure that the actual system really adheres to the models. The MDD way of ensuring this is by directly generating the code from the models, possibly through intermediate steps where abstract models are refined into more concrete ones. However, this process, called model transformation, is a real solution only by virtue of the correctness of the ⋆ The research by this group was financed by the GRASLAND project, funded by the Dutch NWO (project number 612.063.408).