ATL Demystified and an Introduction to the RPG2Petrinet Experiment

Similar documents
From Role-Playing Game to Petrinet, the ATL way.

ADT: Eclipse development tools for ATL

TOWARDS MODEL TRANSFORMATION DESIGN PATTERNS

Transforming models with ATL

Sequence Diagram Generation with Model Transformation Technology

Introduction To Model-to-Model Transformation

Primitive Operators for the Concurrent Execution of Model Transformations Based on LinTra

Rules and Helpers Dependencies in ATL Technical Report

Model Refinement in the Model Driven Architecture Context

Models in Conflict Towards a Semantically Enhanced Version Control System for Models

Process DSL Transformation by Mappings Using Virtual Functional Views

Draft version. Model Integration with Model Weaving: a Case Study in System Architecture

From Role-Playing Game to Petrinet, the ATL way. By Daan Janssens Course: Model-driven Engineering Supervisor: Prof.

M. (1) (1) (2) (1) ATLAS

LinTraP: Primitive Operators for the Execution of Model Transformations with LinTra

Model transformations. Overview of DSLE. Model transformations. Model transformations. The 4-layer architecture

Eclipse Development Tools for Epsilon

MDD with OMG Standards MOF, OCL, QVT & Graph Transformations

Model-Driven Iterative Development of 3D Web-Applications Using SSIML, X3D and JavaScript

ATL TRANSFORMATION EXAMPLE

A Traceability-Driven Approach to Model Transformation Testing

On Using UML Profiles in ATL Transformations

Static analysis and testing of executable DSL specification

Multi-Level Modelling in the Modelverse

Concurrent and Distributed Model Transformations based on Linda

ATL: Atlas Transformation Language. ATL User Manual

Instance generation from meta-models (for model transformation testing)

Small is Beautiful Building a flexible software factory using small DSLs and Small Models

ETL: Epsilon Transformation Language. MISO - Uniandes

Introduction to Dependable Systems: Meta-modeling and modeldriven

A Taxonomy of Model Transformation

Towards 2D Traceability

Dresden OCL2 in MOFLON

Weaving Models with the Eclipse AMW plugin

Generating JMI model transformation code from UML profile models for SDM Aligning Graph Rewriting with MDA-light

Introduction to MDE and Model Transformation

Model-checking with the TimeLine formalism

ATL: ATLAS Transformation Language. MISO - Uniandes

Author manuscript, published in "6th European Conference on Modeling Foundations and Applications (ECMFA 2010), Paris : France (2010)"

CISC836: Models in Software Development: Methods, Techniques and Tools

Common Pitfalls of Using QVT Relations Graphical Debugging as Remedy

Towards End-User Adaptable Model Versioning: The By-Example Operation Recorder

ATL: ATLAS Transformation Language

Towards Approximate Model Transformations

Model Driven Engineering (MDE)

Raising the Level of Development: Models, Architectures, Programs

MODELLING COMPOSITIONS OF MODULAR EMBEDDED SOFTWARE PRODUCT LINES

Advanced Traceability for ATL

Inter-DSL Coordination Support by Combining Megamodeling and Model Weaving

AUTOMATIC GENERATION OF DATA MERGING PROGRAM CODES

Two Basic Correctness Properties for ATL Transformations: Executability and Coverage

Language-independent model transformation verification.

A Practical Approach to Bridging Domain Specific Languages with UML profiles

Automatic Generation of Graph Models for Model Checking

A Metamodel Transformation Framework for the Migration of WebML models to MDA

An Implementation of the Behavior Annex in the AADL-toolset Osate2

Towards Efficient and Scalable Omniscient Debugging for Model Transformations

Lazy Execution of Model-to-Model Transformations

ECLIPSE MODELING PROJECT

A UML 2 Profile for Variability Models and their Dependency to Business Processes

Model Transformation. Suppose I ask you to provide a software that converts any E-R diagram into a UML class diagram, how would you achieve that?

BIG MODELS AN ALTERNATIVE APPROACH

Transformation by Modeling MOF 2.0 QVT: From UML to MVC2 Web model

Ontology-based Model Transformation

Parallel In-place Model Transformations with LinTra

The TTC 2011 Reengineering Challenge Using MOLA and Higher-Order Transformations

Model Driven Engineering. Individual Project: Meta-Modeling for a Role-Playing Formalism in arkitect

Copying Subgraphs within Model Repositories

SUMMARY: MODEL DRIVEN SECURITY

Towards Transformation Migration After Metamodel Evolution

UML 2.5: Specification Simplification

A Domain-Specific Language for Modeling Web User Interactions with a Model Driven Approach

Experimental transformations between Business Process and SOA models

First experiments with the ATL model transformation language: Transforming XSLT into XQuery 1. Abstract

"Families to Persons"

Introduction to Model Driven Engineering using Eclipse. Frameworks

Composition Techniques for Rule-based Model Transformation Languages

TETRA Box A Generic White-Box Testing Framework for Model Transformations

AMW: a tool for multi-level specification of model transformations

Motrusca: interactive model transformation use case repository

Towards using OWL DL as a metamodelling framework for ATL

Current trends and frameworks for modeldriven approaches to software development

Index. business modeling syntax 181 business process modeling 57 business rule 40

MODEL-DRIVEN ENGINEERING FOR IMPLEMENTING THE ISO SERIES OF INTERNATIONAL STANDARDS

Design Patterns for Model Transformations: Current research and future directions

An Introduction to Model Driven Engineering (MDE) Bahman Zamani, Ph.D. bahmanzamani.com

Metamodeling with Metamodels. Using. UML/MOF including OCL

BLU AGE 2009 Edition Agile Model Transformation

Model Querying with Graphical Notation of QVT Relations

Towards the integration of security patterns in UML Component-based Applications

A Model-Driven Approach for Telecommunications Network Services Definition

ATL Transformation Example

Deniz Cetinkaya Alexander Verbraeck

challenges in domain-specific modeling raphaël mannadiar august 27, 2009

Model Migration Case for TTC 2010

(Meta)Models between MetaEdit+

Model Driven Development of Context Aware Software Systems

Some notes about Event-B and Rodin

An AmmA/ATL Solution for the GraBaTs 2009 Reverse Engineering Case Study

OCL Support in MOF Repositories

Transcription:

ATL Demystified and an Introduction to the RPG2Petrinet Experiment Daan Janssens daan.janssens@student.uantwerpen.be University of Antwerp Abstract ATL is a fairly well known M2M model transformation language. It s a hybrid rule-based domain-specific language (mixes declarative & imperative constructs) and is part of the Eclipse Modeling Project. In this reading report we will introduce the ATL language and take a look at various special aspects and constructs introduced in multiple other ATL related papers. We ll try to partially demystify the broad spectrum of possibilities offered by ATL! Keywords: ATL, eclipse, M2M, in-place, traceability, RPG, Petrinet 1. Introduction Model transformations play the key role in Model Driven Engineering. It seems ATL(ATLAS Transformation Language) fits perfectly in this picture. In this report we ll try to show why this is the case. It bundles multiple other ATL related papers together and offers a short but useful introduction to the language. This report is organized as follows. Section 2 gives a short introduction to the basics of ATL (mainly based on Jouault et al. (2008)). Section 3 covers traceability for ATL (based on Jouault (2005)). Section 4 covers In-Place transformations (based on Tisi et al. (2011)) and explains why we didn t chose an experiment like modeling the operational semantics of an RPG game. Section 5 presents our first experience with the ATL eclipse modeling environment (based on Allilaire et al. (2006)). Lastly, section 6 covers a short introduction to our planned experiment.

2. General overview of ATL ATL follows a specific transformation pattern: a (read-only) source model Ma gets transformed to a (write-only) target model Mb. This happens according to a transformation definition MMa2MMb, which is written in ATL. This transformation definition itself can be seen as a model which conforms to the ATL metamodel, while Ma and Mb conform respectively to the metamodels MMa and MMb. All metamodels conform to the MOF metamodel. Figure 1: The transformation pattern In Jouault et al. (2008) the basic syntax of ATL is explained. It covers helpers, which are basically functions with expressions written in OCL. They can navigate across model elements, though only on the read-only source model side. A transformation definition bundles one or multiple rules. Those rules are the heart of ATL transformations( Allilaire et al. (2006)) because they describe how output elements are produced from an input element. They can be specified in a declarative(matching rules) or imperative way. The declarative approach is most of the time encouraged Jouault et al. (2008). A matched rule is composed of a source pattern and a target pattern. The source pattern(also called inpattern ( Bzivin et al. (2003))) specifies a set of source types (from the source metamodel) and possibly a boolean OCL expression (guard). The ATL engine will try to find a set of matches of this pattern in the source model. The target pattern(outpattern) is composed of a set of elements, where every element specifies a target type(from the 2

target metamodel) and a set of bindings. When a rule containing the target pattern is executed, the target elements of the specified types are created. The binding will specify the value used to initialize the properties. There can be an entrypoint rule, which is the rule being executed first, this rule can call other rules (imperative way). Also rule inheritance exists (the new rule can specify additional elements or restrictions), however according to Kusel et al. (2013) the support of it in ATL is still limited. Most papers offered one or multiple case-studies, which have been a great help in understanding the syntax. ( Jouault et al. (2008), Bzivin et al. (2003), Jouault (2005) ) 3. Traceability in ATL By executing rules on a match, a dynamic traceability link will be automatically created in the internal strutures of the transformation engine(jouault et al. (2008)). This link relates three components: the rule, the match and the newly created target elements. However if we want a persistent version of the traceability links we have to find another approach. This approach is explaind in Jouault (2005). They do this by attaching traceability generation code to pre-existing ATL programs, this is possible because we can consider the transformation definition, as well as the traceability information as a model. In this way the traceability generation code can be attached after a program is written. Traceability is not in the scope of our planned experiment, but reading this paper gave us an idea of the power of ATL. They also showed examples and introduced HOT s (Higher-Order Transformations). 4. In-Place transformations in ATL We initially planned implementing the operational semantics of an RPG(Role- Playing Game) game, based on a RPG metamodel and model, as ATL experiment. New versions of ATL do support In-Place transformations, so that s not really the problem. ATL however doesn t seem to support a step-wise execution. It will try to find all matches for all rules and apply these, this 3

means you ll go from initial state to final state in just a blink. This is not the case in some other tools, like AtomPM( Syriani (2009)). ATL was primary designed to transform read-only input models towards write-only output models. This is not always exactly what we want. In some cases we want to modify the source model (e.g. refactorings). This is called In-Place transformations. The work of Tisi et al. (2011) described in great detail the process of implementing In-Place transformations.in that paper they refer to it by the term refinement transformations or refinement mode Before ATL supported refinement mode this had to be simulated by copying all source elements to the target elements and making the small changes while copying. This naive solution had a lot of drawbacks (e.g execution time increases.) In Tisi et al. (2011) they describe an alternative way that overcomes these limitations, namely the in-place transformation mode. Where the idea of constructing the target model incrementally from an empty one is abandoned and the transformation starts from the whole source model. 5. First experience with the ATL eclipse modeling environment The ATL eclipse modeling environment has been working like a charm so far, however installing it and getting acquainted is a different story. There is a lot of outdated information on the internet, which can be misleading. The paper of Allilaire et al. (2006) didn t really help a lot on this end. Also, Models have to be made in xmi, which lacks the graphical aspect, which makes the job of making the model cumbersome and increases the chances of mistakes. We ended up getting acquainted with the plugin from a series of youtube videos ( abidredlove (2009)) that explained the basics of the environment and the installation of it. 6. The RPG2Petrinet experiment As explained in section 4, we chose not to implement the operational semantics of an RPG game, but focus on the denotational part. Namely, transforming an RPG metamodel to a petrinet. This has been briefly described in the work of Marques et al. (2012). We will use the same approach: 4

first transform to a intermediate metamodel then transform to the petrinet metamodel. This planned experiment will cover a basic implementation of a transformation from a modeled role-playing game into a matching petrinet model which can be used for analyzing purposes lateron. We will start with the RPG Language Meta-Model which describes every possible feature of the defined RPG Domain. After that we will build another intermediate language (µrpg Language) which will work as a filter. It will only contain the essential entities needed to check properties related to the petrinet analysis. Lastly, a transformation for RPG2µRPG and µrpg2petrinet will be implemented! 5

References abidredlove, 2009. abidredlove youtube channel @ONLINE. URL: http://www.youtube.com/user/abidredlove?feature=watch. Allilaire, F., Bzivin, J., Jouault, F., Kurtev, I., 2006. Atl eclipse support for model transformation, in: IN: PROC. OF THE ECLIPSE TECHNOL- OGY EXCHANGE WORKSHOP (ETX) AT ECOOP. Bzivin, J., Dup, G., Jouault, F., Pitette, G., Rougui, J.E., 2003. First experiments with the atl model transformation language: Transforming xslt into xquery, in: 2nd OOPSLA Workshop on Generative Techniques in the context of Model Driven Architecture. Jouault, F., 2005. Loosely coupled traceability for atl, in: In Proceedings of the European Conference on Model Driven Architecture (ECMDA) workshop on traceability, pp. 29 37. Jouault, F., Allilaire, F., Bézivin, J., Kurtev, I., 2008. Atl: A model transformation tool. Sci. Comput. Program. 72, 31 39. URL: http://dx.doi.org/10.1016/j.scico.2007.08.002, doi:10.1016/j.scico.2007.08.002. Kusel, A., Schönböck, J., Wimmer, M., Retschitzegger, W., Schwinger, W., Kappel, G., 2013. Reality check for model transformation reuse: The atl transformation zoo case study, in: 2nd Workshop on the Analysis of Model Transformations (AMT) @ MODELS 13, 2nd Workshop on the Analysis of Model Transformations (AMT). pp. 1 10. Marques, E., Balegas, V., Barroca, B.F., Barisic, A., Amaral, V., 2012. The rpg dsl: A case study of language engineering using mdd for generating rpg games for mobile phones, in: Proceedings of the 2012 Workshop on Domain-specific Modeling, ACM, New York, NY, USA. pp. 13 18. URL: http://doi.acm.org/10.1145/2420918.2420923, doi:10.1145/2420918.2420923. Syriani, E., 2009. Atompm @ONLINE. URL: http://syriani.cs.ua.edu/atompm/atompm.htm. Tisi, M., Martínez, S., Jouault, F., Cabot, J., 2011. Refining Models with Rule-based Model Transformations. Rapport de recherche RR-7582. IN- RIA. URL: http://hal.inria.fr/inria-00580033. 6