ATL 3.1 – Industrialization improvements William Piers1, 1 Obeo, 7 boulevard Ampère, 44481 Carquefou, France william.piers@obeo.fr Abstract. ATL is a standard solution for model to model transformation. Its implementation is OpenSource and hosted by Eclipse. In 2008, development and maintenance were handed over from INRIA to OBEO, in the ATL Industrialization project context. This paper is about how industrial actors and researchers collaborate in a project like ATL, what ATL 3.1 brings to the user and what will be done in the future. Keywords: Model transformation, Eclipse, M2M, ATL, industrialization. 1 Introduction ATL [1] is a standard solution for model to model transformation. Its implementation is OpenSource and hosted by Eclipse, in which it is recognized as the standard model to model transformation solution. In 2008, development and maintenance were handed over from INRIA [2] to OBEO [3], in the ATL Industrialization project context. Now Regular releases are scheduled, and user-oriented features have been added to the ATL tools. The ATL project is now considered as an industrial solution for model transformation. This paper is organized as follows. Section 2 presents the ATL Industrialization project. Section 3 describes the ATL 3.1 release features. Finally the section 4 will show the planned improvements for the next releases. 2 ATL Industrialization ATL industrialization is the result of the collaboration between a laboratory (AtlanMod [4]) and an SME (Obeo). The main scheme of such kind of collaboration, as seen by public institutions, is to ask big industrial companies for their R&D needs, then let researchers prototype them and finally build a viable commercial offer around a product which meets the need. In the case of ATL, this work took place through collaborative projects. Obeo is involved in OpenSource since its creation, especially into the Eclipse foundation (14 Eclipse commiters are working at Obeo). Obeo is an Eclipse strategic member. ATL is recognized as a standard solution in Eclipse. From that, Obeo became in charge of improving the legacy ATL software and build a service offer 34 around ATL (support, expertise, training). The main purpose was to make AtlanMod more focused on research themes when a company like Obeo was better qualified to enhance user-oriented features and manage maintenance. The ATL industrialization project consists on several development axis: ergonomic, scalability, interoperability (compatibility with other MDE tools) and integration of new concepts (traceability, iterative transformations). Since Obeo has been in charge of the Industrialization project, ATL 2 and ATL 3 were released, bringing a lot of improvements: core API refactoring, performances improvements, user interface features. Obeo also provides a professional support for companies. The industrialization process also allows researchers to develop prototypes based on ATL. The objective is to finally integrate those prototypes as contributions. 3 ATL 3.1 features In June 2010, ATL 3.1 will be released as part of the Eclipse Helios simultaneous release. This release brings a lot of improvements, both at the user interface level and core level. 3.1 Debugging and Profiling A lot of work has been done around the legacy debugger. Initially the ATL debugger was dedicated to the old ATL virtual machine (the core of the ATL execution process) and strongly relied on it. A refactoring was necessary, which consisted in making some parts more abstract in order to allow debugging on the newest ATL virtual machine as well as for the old one. This work achieved, it also made possible the integration of an ATL profiler, extending the same architecture as the debugger. The ATL profiler provides a way to detect performance issues on a given transformation by a detailed analysis of the execution. An execution profile stores informations about the global cost of one method, the memory used, etc... A set of views display profiles as tables and trees, with sorting and filtering options. Execution profiles can be saved as models (.xmi files): this could be useful for a non-regression purpose for example. 35 Fig. 1. A profiling result sample. It shows that most of the time is spent in setting values on meta-elements. 3.2 ATL file editor Regarding the user interface, most of the improvements have been done in the ATL file editor. An advanced type-inference engine has been implemented and integrated into the existing editor to strongly extend the existing completion proposals. Now the proposals cover complex code structures, like OCL expressions, whereas previously limited to the left side of the bindings and model elements. The types, variables, contexts computations have been added to the existing completion system which was based on an analysis of partial parsing results. The type-inference engine extends that system by visiting the parsing result and computing types for each step. Additionally, some content assist templates have been added to the completion system, such as rules, helpers, operation calls templates. The type engine has been reused to provide additional features, like hover information, navigation through elements declarations. Those features reuse the same type computing system as the completion processor. 36 Fig. 2. Hover information: when the mouse stays over a variable, an attribute or in this case an helper call, it displays the type information. Here, the helper signature. 3.3 ATL plugins ATL usability has been extended by the addition of a new wizard. This provides a way to embed an existing transformation inside of an Eclipse plugin, with an associated launching class written in Java. After that operation the ATL builder keeps synchronization between the ATL file and the Java launching class. This feature eases the integration of an ATL transformation into an application. Fig. 3. The ATL plugin wizard page. The required in formations can be initialized from an ATL transformation file as from an ATL launch configuration. 37 4 Planned releases ATL industrialization is a continuous project, so each future release is planned and brings bug corrections, new features and improvements. For the next releases, some objectives have been set but the roadmap is open to contributions (research, partners). At this time, for the ATL 3.2 release (scheduled June 2011), Obeo plans to work on easing and speeding up transformation development. Graphical tools will be added on the top of existing tools to allow the graphical definition of transformation rules and the synthesis view of the matching currently achieved by a transformation. The ATL language will also be reexamined to define syntactic improvements. Finally, depending of the research teams, advanced contributions could be integrated into the main ATL code. 5 Conclusion This paper presented current works on ATL. Many of them are provided by Obeo in the ATL industrialization context, but the door is still wide open to integrate research contributions. In the future Obeo will keep making improvements on ATL and maintenance. The successful collaboration between Obeo, INRIA and industrial partners shows that OpenSource is an efficient and valuable way to promote an innovative technology. References 1. ATL web site, http://www.eclipse.org/m2m/atl/ 2. INRIA web site, http://www.inria.fr/ 3. Obeo web site, http://www.obeo.fr/index.php?lang=en 4. AtlanMod web site, http://www.emn.fr/z-info/atlanmod/index.php/Main_Page 38