Model Refactoring and other Advanced ATL Techniques Frederic Jouault
William Piers
Modeling technologies help design software systems by offering the possibility to represent their different parts (e.g., user interface, class structure) more adequately as models defined in Domain-Specific Languages (DSLs). This contrasts with the traditional way of encoding all the functionality of a large system using a single General Purpose Language like Java. However, for the system to actually run, code has to be generated from these higher-level models. Model-to-Model (M2M) transformation is one of the key techniques that are used to achieve this result. The tools provided in the M2M Eclipse.org modeling project make it possible for developers to use this technique in practice. They are to model-to-model transformation what JDT (Java Development Tools) are to Java development.
This tutorial presents the ATL language and its toolbox, which are provided in the M2M project: editor (with syntax highlighting, content assist), execution engine, and debugger. Beginners will learn what model transformation, M2M, and ATL are, as well as how to use them on concrete case-studies. Veteran ATL users will discover new functionalities and techniques. This notably includes usage of the new ATL refining mode to refactor UML models in-place (this new feature will be part of Galileo). Full source code of the presented material will be made available both in partial (e.g., as exercises) and complete forms. Attendees are also invited to vote for their two favorite topics (see list in outline). The presenter will then discuss the two or three most demanded topics.
The presentation will be performed by model-to-model transformation experts, including the architect of ATL, who designed the language and created the initial implementation now further developed by contributors from the Eclipse.org community.
Remark: This tutorial complements a tutorial presented at EclipseCon 2008. New technical material is presented: new exercises, detailed presentation of refining mode (used for refactoring transformations), etc. However, enough introductory material will be presented so that anyone may follow.
Two or three among the following topics:
Attendees may suggest additional topics.
William Piers, MDA Consultant at Obeo, is currently working on the m2m part of modeling, especially for ATL and QVT-R projects. He is committer on these two projects. He has graduated a Master at the University of Nantes and specialized himself in software engineering and model driven engineering. William is currently working on new features, and on the Galileo process. He also provides support, gives tutorials, and trains people on ATL usage.