Overview of ATL and ETL (Jouault and Kurtev 2006, ‘Transforming Models with ATL’, Proc. MODELS 2005 Workshops, LNCS, vol. 3844, pp. 128-138. Kolovos et.

Slides:



Advertisements
Similar presentations
Title © 2006 by INRIA; made available under the EPL v M2M Creation Review Frédéric Jouault Proposed Project Lead.
Advertisements

Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Semantics Static semantics Dynamic semantics attribute grammars
June 9, 2006 Transforming models with ATL © 2006 ATLAS Nantes Transforming models with ATL The A TLAS Transformation Language Frédéric Jouault ATLAS.
Higher-Order Transformation Eugene SyrianiandHans Vangheluwe.
© 2007 ATLAS Nantes 1 Atlas Model Weaver Use Case: Aspect Oriented Modeling Marcos Didonet Del Fabro Atlas Group (INRIA & LINA), Université de Nantes,
Query/Views/Transformations © 2006 ATLAS Nantes Query/Views/Transformations An introduction to the MOF 2.0 QVT standard with focus on the Operational.
Telecom and Informatics :: INF5120 :: Mansur Abbasi & Svein Melby Assignment 1 – First aid - Clarifications, issues and insight.
NaLIX: A Generic Natural Language Search Environment for XML Data Presented by: Erik Mathisen 02/12/2008.
Reasons to study concepts of PL
ISBN Chapter 1 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Chapter 1 Topics Motivation Programming Domains.
Sheet 1© 2005 Lentedagen, 30 March-1 April 2005 IPA Lentedagen on Software Architecture Model Transformations in MDA Ivan Kurtev.
SQL DDL constraints Restrictions on the columns and tables 1SQL DDL Constraints.
ISBN Chapter 1 Topics Motivation Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language.
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
LUCENTIA Research Group Department of Software and Computing Systems Using i* modeling for the multidimensional design of data warehouses Jose-Norberto.
C++ fundamentals.
Comparing M2T & M2M Complementary Approaches © 2008 INRIA, University of York & SINTEF Comparing M2T & M2M Complementary Approaches Hugo Bruneliere,
McGill University Proposal Exam School of Computer Science Ph.D. Candidate in the Modelling, Simulation and Design Lab Eugene Syriani.
Advanced Applications Of Model-to-Model Transformation © 2008 INRIA Advanced Applications Of Model-to-Model Transformation Hugo Bruneliere & Frédéric.
Composing Models: Principles & Techniques © Copyright TUBS & TUD Composing Models: Principles & Techniques Steven Völkel & Jendrik Johannes.
Sumant Tambe, et. al LEESA DSPD 2008 An Embedded Declarative Language for Hierarchical Object Structure Traversal Sumant Tambe* Aniruddha Gokhale Vanderbilt.
Logic Programming Based Model Transformations An overview of related work.
Huseyin Ergin and Eugene Syriani. PROBLEM (DIDN’T CHANGE) Development of model transformation is still an error-prone and hard task. One reason is the.
XForms: A case study Rajiv Shivane & Pavitar Singh.
Model Transformations
Yu SunUniversity of Alabama at Birmingham PAR Works Jeff Gray University of Alabama Montpellier, France July 3rd, 2013 This research is supported.
CIMI + FHIR Grahame Grieve 10-August 2015 Salt Lake City.
ATL The ATLAS Transformation Language. 2 ATL (ATLAS Transformation Language) ATL transformation pattern ATL metamodel Helpers – Operation helpers – Attribute.
Model transformation with a dedicated imperative language IRISA Rennes (France) - Triskell team Jean-Marc Jézéquel Didier Vojtisek Jean-Philippe Thibault.
A REFACTORING TOOL FOR DESIGN PATTERNS WITH MODEL TRANSFORMATIONS Zekai Demirezen Yasemin Topaloğlu Ege University Department of Computer Engineering
Agenda 1. Introduction 2. Overview of SU-MoVal 3. OCL-based Model Validation 4. QVT-based Transformations 5. Demo of SU-MoVal 6. Conclusion and Future.
Predefined Classes in Java Ellen Walker CPSC 201 Data Structures Hiram College.
Alignment of ATL and QVT © 2006 ATLAS Nantes Alignment of ATL and QVT Ivan Kurtev ATLAS group, INRIA & University of Nantes, France
Building Tools by Model Transformations in Eclipse Oskars Vilitis, Audris Kalnins, Edgars Celms, Elina Kalnina, Agris Sostaks, Janis Barzdins Institute.
I T & S A e r o s p a c eD e f e n c e THALES Research & Technology THALES recommendations for the final OMG standard on Query / Views / Transformations.
What is MOF? The Meta Object Facility (MOF) specification provides a set of CORBA interfaces that can be used to define and manipulate a set of interoperable.
AtoCC Compiler Construction Workshop Michael Hielscher Aalborg, Creating an Interpreter and Compiler for a music language ML.
Copyright © 2009 AtlanMod. All Rights Reserved Frédéric Jouault & Hugo Bruneliere AtlanMod team (INRIA & Mines de Nantes) Possible Benefits of Bridging.
Validated Model Transformation Tihamér Levendovszky Budapest University of Technology and Economics Department of Automation and Applied Informatics Applied.
SQL SQL Server : Overview SQL : Overview Types of SQL Database : Creation Tables : Creation & Manipulation Data : Creation & Manipulation Data : Retrieving.
© The ATHENA Consortium. AP6 – Model-Driven Development of Interoperable Web Services, Agents and P2P Solutions Learn about model transformations.
Efficiently Mining Source Code with Boa Robert Dyer The research activities described in this talk were supported in part by the US National Science Foundation.
Hybrid Transformation Modeling Integrating a Declarative with an Imperative Model Transformation Language Pieter Van Gorp
Chapter 38 Persistence Framework with Patterns 1CS6359 Fall 2011 John Cole.
3-Tier Client/Server Internet Example. TIER 1 - User interface and navigation Labeled Tier 1 in the following graphic, this layer comprises the entire.
Sheet 1 DocEng’03, Grenoble, November 2003 Model Driven Architecture based XML Processing Ivan Kurtev, Klaas van den Berg University of Twente, the Netherlands.
Computer Science and Software Engineering© 2014 Project Lead The Way, Inc. Procedural Abstraction Object-Oriented Code.
Object Oriented Database By Ashish Kaul References from Professor Lee’s presentations and the Web.
1 Class Diagrams. 2 Overview Class diagrams are the most commonly used diagrams in UML. Class diagrams are for visualizing, specifying and documenting.
1 Model-based Aspect Weaver Construction Suman Roychoudhury Frédéric Jouault Jeff Gray {roychous, jouault, cis.uab.edu This project is supported.
Model transformation with a dedicated imperative language IRISA Rennes (France) - Triskell team Jean-Marc Jézéquel Didier Vojtisek Jean-Philippe Thibault.
Cooperative Computing & Communication Laboratory A Survey on Transformation Tools for Model-Based User Interface Development Robbie Schäfer – Paderborn.
ModTransf A Simple Model to Model Transformation Engine Cédric Dumoulin.
Introduction To Model-to-Model Transformation © 2008 INRIA Introduction To Model-to-Model Transformation Hugo Bruneliere & Frédéric Jouault INRIA.
Based on material developed in ATHENA (IST ), INTEROP (IST ) and MODELWARE (IST ) 6-1b. Atlas Transformation Language (ATL) with RSM.
IMS 4212: Application Architecture and Intro to Stored Procedures 1 Dr. Lawrence West, Management Dept., University of Central Florida
Text TCS INTERNAL Oracle PL/SQL – Introduction. TCS INTERNAL PL SQL Introduction PLSQL means Procedural Language extension of SQL. PLSQL is a database.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Business Informatics Group Institute of Software Technology and Interactive Systems Vienna University of Technology Favoritenstraße 9-11/188-3, 1040 Vienna,
Sheet 1MDAFA2004 Linköping, June 2004 A Language for Model Transformations in the MOF Architecture Ivan Kurtev, Klaas van den Berg University of Twente,
Getting started with Accurately Storing Data
SysML v2 Formalism: Requirements & Benefits
Naming and Binding A computer system is merely a bunch of resources that are glued together with names Thus, much of system design is merely making choices.
Business Process Measures
CS4222 Principles of Database System
Towards Automatic Model Synchronization from Model Transformation
Object-Oriented PHP (1)
Objectives In this lesson, you will learn to:
Software Architecture & Design
Presentation transcript:

Overview of ATL and ETL (Jouault and Kurtev 2006, ‘Transforming Models with ATL’, Proc. MODELS 2005 Workshops, LNCS, vol. 3844, pp Kolovos et al. 2006, ‘The Epsilon Object Language (EOL)’, Proc. ECMDA-FA 2006, LNCS, vol. 4066, pp Kolovos et al. 2008, ‘The Epsilon Transformation Language’, Proc. ICMT 2008, LNCS, vol. 5063, pp ) Presented by Matt Selway 1

Background of ATL 2 Hybrid declarative/imperative DSL for writing model- to-model transformations Started around 2004/5 by the ATLAS Group (later became AtlanMod) INRIA, University of Nantes Involved in the ModelWare IST European Project Builds on OCL, was submitted as a candidate for the OMG’s QVT standard Forms part of the ATLAS Model Management Architecture (AMMA), which supports wider model management such as model merging, comparison, etc.

Background of ETL 3 Hybrid declarative/imperative DSL for writing model- to-model transformations Started end of 2005 at Dpt. Comp. Science, University of York; also involved in the ModelWare project Part of the Epsilon framework, which supports general model management Task specific language built on EOL; an OCL like language for model navigation and modification Other Epsilon languages include: EVL, EGL, EWL, ECL, EML, and Flock

Feature Comparison 4 FeatureATLETL Directionalityunidirectional No. of modelsSource/Target1..n/1..n NavigabilitySource model(s)** Target model(s)-* ModifiabilityCreateTarget only* UpdateTarget only* DeleteOnly in refining mode* In-place transformation (model refactoring)* (refining mode)* Model Abstraction Layer** WorkflowANT Tasks “Helpers” (context)Meta-model Types** Primitive Types** Collection Types-* Context-less**

FeatureATLETL “Helpers” (type)Operations** Cached ResultsHelper attributesCached operations Modifiable PropertiesModule attributes only* ReuseHelper libraries** Rule libraries** Rule inheritance** Multiple inheritance* (in new VM)* Rule overriding* (superimposition)* RulesStandard** Lazy** (w/ operations) Unique lazy** (just lazy) Abstract** Greedy/Non-greedy* (non-greedy w/guards)* Primary-* No. source elements11 Feature Comparison 5

6 FeatureATLETL TraceabilityStandard** Lazy rules* (in new VM)- (can be hacked) Unique lazy** Multiple traces* (in new VM)* Inspectable Trace* (in new VM)* Exportable Trace* (in new VM)* Imperative featuresCalled rules** (EOL operations) Native called rules* (in new VM)* Action blocks** (entire rule body) Model Transactions-* User Interaction-* User-defined Datatypes-*

Execution Model (Both) 7 1.Execute pre-processing (imperative) 2.Match non-lazy (non-abstract) rules and generate target model elements (declarative) 3.Execute the rule bodies (in the context of the match and created model elements) (declarative/imperative) 4.Execute post-processing (imperative)

Syntax Comparison (Rule Structure) ATL Rules [abstract]? [[unique]? lazy]? rule [extends ]? { from : [in ]? [( )]? [using { : = ; [ : = ;]* }]? to : [in ]? ( bindings )[, : [in ]? ( binding )]* [do { statement+ }]? } [abstract]? [[unique]? lazy]? rule [extends ]? { from : [in ]? [( )]? [using { : = ; [ : = ;]* }]? to : [in ]? ( bindings )[, : [in ]? ( binding )]* [do { statement+ }]? } ETL Rules rule transform : to ( : (, : )* (extends (,)* )? { (guard (:expression)|({statement+}))? statement+ } rule transform : to ( : (, : )* (extends (,)* )? { (guard (:expression)|({statement+}))? statement+ } 8

Syntax Comparison (Concrete Example) ATL rule Class2Table { from class : OO!Class ( class.specialises.isUndefined()) to table : DB!Table ( name <- class.name, columns <- Sequence{pkColumn}, primaryKeys <- Sequence{pkColumn} ), pkColumn : DB!Column ( name <- class.name + ‘_pk’, type <- ‘INT’ ) } rule SingleValuedAttribute2Column from attribute : OO!Attribute ( not attribute.isMany) to column : DB!Column ( name <- attribute.name, table <- attribute.owner, type <- attribute.type ) } rule Class2Table { from class : OO!Class ( class.specialises.isUndefined()) to table : DB!Table ( name <- class.name, columns <- Sequence{pkColumn}, primaryKeys <- Sequence{pkColumn} ), pkColumn : DB!Column ( name <- class.name + ‘_pk’, type <- ‘INT’ ) } rule SingleValuedAttribute2Column from attribute : OO!Attribute ( not attribute.isMany) to column : DB!Column ( name <- attribute.name, table <- attribute.owner, type <- attribute.type ) } ETL rule Class2Table transform class : OO!Class to table : DB!Table, pkColumn : DB!Column { guard : class.specialises.isUndefined() table.name = class.name; table.columns.add(pkColumn); table.primaryKeys.add(pkColumn); pkColumn.name = class.name + ‘_pk’; pkColumn.type = ‘INT’; } rule SingleValuedAttribute2Column transform attribute : OO!Class to column : DB!Column { guard : not attribute.isMany column.name = attribute.name; column.table ::= attribute.owner; column.type = attribute.type; } rule Class2Table transform class : OO!Class to table : DB!Table, pkColumn : DB!Column { guard : class.specialises.isUndefined() table.name = class.name; table.columns.add(pkColumn); table.primaryKeys.add(pkColumn); pkColumn.name = class.name + ‘_pk’; pkColumn.type = ‘INT’; } rule SingleValuedAttribute2Column transform attribute : OO!Class to column : DB!Column { guard : not attribute.isMany column.name = attribute.name; column.table ::= attribute.owner; column.type = attribute.type; } 9

Pragmatics 10 Used both ATL and ETL, overall found ETL easier to use (although I was using ATL quite a while ago, so it may have improved since then) Couldn’t get ATL superimposition to work (not sure if they have fixed it yet) Transforming meta-models using ATL is finicky, ETL couldn’t care less; it treats all kinds of models much more uniformly Using multiple models in ATL was a bit of pain, easier to merge all the (meta-)models into a single one to make life easier ATL almost forces you to do things declaratively, a number of its imperative features have awkward limitations; therefore, in complex transformations you end up doing weird workarounds ETL makes it much easier to use imperative constructs, sometimes too easy, but found that complex transformations need them ETL’s use of ‘=‘ for primitive types and ‘::=‘ for automatic resolution of model types can be a pain, if you use the wrong one you don’t get an error, just an empty result.