ETL: Epsilon Transformation Language. MISO - Uniandes

Similar documents
ATL: ATLAS Transformation Language. MISO - Uniandes

ATL: ATLAS Transformation Language

Transforming models with ATL


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

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

QVT: Query, Views, Transformations

ATL: Atlas Transformation Language. ATL User Manual

Eclipse Development Tools for Epsilon

Introduction To Model-to-Model Transformation

The Model Driven Architecture. Dennis Wagelaar Viviane Jonckers Software Languages Lab

Model Transformations for Embedded System Design and Virtual Platforms

MODEL-DRIVEN ENGINEERING (MDE) is a methodology

Model-Level Integration of the OCL Standard Library Using a Pivot Model with Generics Support

ADT: Eclipse development tools for ATL

Introduction to MDE and Model Transformation

The Eclipse Modeling Framework and MDA Status and Opportunities

ECLIPSE MODELING PROJECT

Acceleo Galileo Simultaneous Release

An EMF Framework for Event-B

ATL Demystified and an Introduction to the RPG2Petrinet Experiment

Kermeta tutorial. How to create a metamodel. François Tanguy, Didier Vojtisek. Abstract

Model Querying with Graphical Notation of QVT Relations

Grammars. Prof. Andreas Prinz. Introduction, Compilers. Examples Meta-models vs. Grammars Summary

Sequence Diagram Generation with Model Transformation Technology

Implementing the Interactive Television Applications Case Study using Epsilon

The Art of Model Transformation with Operational QVT

How to generate new EMF model refactorings using Java code

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

(Meta)Models between MetaEdit+

Comparing graphical DSL editors

Kermeta. in compiled mode

Design and Prototypical Implementation of a Pivot Model as Exchange Format for Models and Metamodels in a QVT/OCL Development Environment

BLU AGE 2009 Edition Agile Model Transformation

Dr. Klaus Fischer. Multiagent Systems Group DFKI GmbH Saarbrücken, Germany ICAART

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

Which Enterprise Architect Edition Should I Purchase?

Reactive Model Transformation with ATL

Modellierung operationaler Aspekte von Systemarchitekturen. Master Thesis presentation. October 2005 March Mirko Bleyh - Medieninformatik

KerMeta Transformation Rules

Object Constraint Language (MDT OCL) 1.3 Galileo Simultaneous Release Review

OCL omissions and contradictions

Model transformations. Model transformations. Model transformations. Model transformations

Re-Implementing Apache Thrift using Model-Driven Engineering Technologies: An Experience Report

Coral: A Metamodel Kernel for Transformation Engines

Two Basic Correctness Properties for ATL Transformations: Executability and Coverage

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

Which Enterprise Architect Edition Should I Purchase?

Lazy Execution of Model-to-Model Transformations

Introduction to Eclipse

GMF 2.0 Europa Simultaneous Release

Creating a Modular AspectJ Foundation for Simple and Rapid Extension Implementation by

Tiger EMF Model Transformation Framework (EMT)

Model handling with EMF

SLIDES: Introductory Modeling Example Employing UML and OCL [UML: Unified Modeling Language, OCL:Object Constarint Language]

A Metamodel independent approach for Conflict Detection to support distributed development in MDE. Mostafa Pordel A THESIS

A Comparison of Ecore and GOPPRR through an Information System Meta Modeling Approach

EMF Europa Simultaneous Release

Capturing Middleware using UML Models.

On Open Source Tools for Behavioral Modeling and Analysis with fuml and Alf

SCENARIO-BASED REQUIREMENTS MODELLING

Embedded OCL Integration and Debugging

MDA Driven xuml Plug-in for JAVA

AADL Graphical Editor Design

Exploring Model Driven Engineering from Behavioural Models

Automated Analysis, Validation and Suboptimal Code Detection in Model Management Programs

Teiid Designer User Guide 7.5.0

The JSF Tools Project

INTRODUCTION TO EMF. Creating Model using EMF. Our Domain model used to showcase this use case is as shown below in fig.1

TERRA support for architecture modeling. K.J. (Karim) Kok. MSc Report. C e Dr.ir. J.F. Broenink Z. Lu, MSc Prof.dr.ir. A. Rensink.

Rules and Helpers Dependencies in ATL Technical Report

Applications Of Model Weaving Techniques

Reconciling TGGs with QVT

EMF Compare Ganymede Simultaneous Release

Dominique Blouin Etienne Borde

Model Driven Engineering (MDE) and Diagrammatic Predicate Logic (DPL)

The Designer's Guide to VHDL Second Edition

EMF Ganymede Simultaneous Release

Introduction to the Generic Eclipse Modeling System by Jules White

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM):

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

Developing Web-Based Applications Using Model Driven Architecture and Domain Specific Languages

Specification and Automated Detection of Code Smells using OCL

Programming Languages Third Edition. Chapter 10 Control II Procedures and Environments

Update Transformations in the Small with the Epsilon Wizard Language

with openarchitectureware

The Epsilon Pattern Language

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

Query Language for AADLv2, Jérôme Hugues, ISAE Serban Gheorghe, Edgewater

EMF Compare Galileo Simultaneous Release

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University

Introduction to Eclipse

A Formal Approach to Modeling and Model Transformations in Software Engineering

Lessons learned from building Eclipse-based add-ons for commercial modeling tools

SCA Tools: new & noteworthy

Generation Chain. Benoît Langlois Thales/EPM. EGF Tutorial Generation Chain by Thales; made available under the EPL v1.

A Traceability-Driven Approach to Model Transformation Testing

Orccad, a Model Driven Architecture and Environment for Real-Time Control. Soraya Arias Florine Boudin Roger Pissard-Gibollet Daniel Simon

MEMOCenterNG A full-featured modeling environment for organization modeling and model-driven software development

Module superimposition: a composition technique for rule-based model transformation languages

Transcription:

ETL: Epsilon Transformation Language MISO - Uniandes 1

References http://www.eclipse.org/epsilon/doc/book/ http://www.eclipse.org/epsilon/examples/ Examples available at the wiki 2

Models are first class entities Transformations are assets 3

What is ETL? ETL is a model transformation language developed at University of York to answer the QVT Request For Proposal. It is a hybrid of declarative and imperative. 4

What is ETL? In declarative style: simple mappings can be expressed simply. Imperative constructs: are provided to express more complex mappings 5

What is ETL? An ETL transformation program is composed of rules that define: how source model elements are matched and navigated how to create and initialize the elements of the target models. 6

Motivating example: Class 2 Relational Class metamodel 7

Motivating example: Class 2 Relational Relational metamodel 8

Mappings between Class and Relational metamodel 9

ETL and Ecore Class Relational TClass2Relational MClass MRelational 10

ETL Transformation rules Input MM Input M Output MM ETL Engine Output M XMI XMI 11

Example module Class2Relational.etl XMI Class MM Class M ETL Engine XMI M Relational Relational MM 12

Structure of an ETL transformation An ETL module corresponds to a model to model transformation. 13

Structure of an ETL transformation (cont.) 14

ETL modules They are the files that contain the transformations.etl extension Consist of: An optional import section: enables to import some existing EOL libraries or ETL modules A set of operations: can be viewed as an ETL equivalent to Java methods Pre/post blocks Rules 15

Import This section is optional Defines the EOL libraries or ETL modules to be imported Example: import strings.eol ; 16

EOL Operations They are functions used to implement code that can be reused Possible to have a no context-defining operation operation getintegerdatatype() : Class!DataType { Class!DataType.allInstances()-> select(e e.name = 'Integer')->first() } Calling the function objectidtype(); 17

EOL Operations Context-defining operation: operation Class!Class getmultivaluedattributes() : OrderedSet { ; Calling the function: c.getmultivaluedattributes() 18

Pre block pre { "Running ETL".println(); var integerdatatype : Class!Datatype = Class!DataType.allInstances()-> select(e e.name = 'Integer')->first(); } 19

Post block post { var mgs : String := Number of tables + Relational!Table.all().size(); mgs.println(); } 20

Transformation Rules Two different kinds of rules: matched rules (declarative programming) Lazy rules (imperative programming) 21

Matched Rules rule DataType2Type transform dt : Class!DataType to out : Relational!Type { name = dt.name } 22

Matched Rules rule DataType2Type transform dt : Class!DataType to out : Relational!Type { name = dt.name } Input Metamodel Output Metamodel 23

Matched Rules We need: To access any element of the input model To create elements of the output model from information of the elements of the input model The access to the elements is done using The OCL: Object Constraint language 24

Matched Rules: Input The input pattern consists of: the keyword transform, the declaration of input variables transform dt : Class!DataType 25

Matched Rules: Output The output pattern declares: on which output elements of the output model, the input elements matching the input pattern will be transformed an OCL expression that returns the input element to be transformed The implementation of the output pattern declares the details of the transformation It is possible to have more than one element in the output pattern 26

Matched Rules: Output (cont.) A filter is an OCL expression that restraints the elements of the input model to those that satisfy a set of constraints Example: Refer to the instances of the Attribute element in the Class Metamodel, where its multivalued is equal to true: transform e : Class!Attribute to guard : (e.multivalued) 27

Matched Rules: Output (cont.) Declares a variable and a sequence of assignment statements. to out : Relational!Type { name = dt.name } Building and instance of the element Type of the output model The name attribute of the new element will have as value the value of the name attribute of the element referenced by the variable dt 28

ETL Module execution semantics Three phases: a module initialization phase: a matching phase of the source model elements a target model elements initialization phase 29

ETL execution semantics Four phases: a module initialization phase: the pre blocks of the module are executed first in the order a matching phase of the source model elements: matching condition are tested with the model elements of the source. if it is matched, ETL engine allocates the set of target model elements a target model elements initialization phase: each allocated target model element is initialized by executing the code of the bindings that are associated a finalization phase: the post blocks of the module are executed in the order in which they have been declared 30

Source element resolution To automate this task and reduce coupling between rules, ETL contributes the equivalent() operation It resolves source elements to their transformed counterparts in the target models The resolution is possible only if there exist a containment relationship between the target/source elements 31

Source element resolution (cont.) 32

Source element resolution (cont.) rule Class2Table transform s:class!class to t:relational!table { guard : (not s.isabstract) name = s.name col = s.att.equivalent() } rule Attribute2Column transform s:class!attribute to t:relational!column{ name = s.name } 33

Imperative solution pre { Class!Class.all()->select(e not e.isabstract)->collect(e e.o1); } Operation Class!Class o1 : Relational!Table { var t : new Relational!Table; t.name = self.name; t.col = self.att.collect(e e.e2); return t; } Operation Class!Attribute o2 : Relational!Column { var t = new Relational!Column; t.name = self.name; return t; } 34

Hybrid solution rule Class2Table transform s:class!class to t:relational!table { guard : (not s.isabstract) name = s.name col = s.att.collect(e e.o2); } Operation Class!Attribute o2 : Relational!Column { var t = new Relational!Column; t.name = self.name; return t; } 35

Transformation Engine Implemented in Java Can use EMF as model repository Input/output models and metamodelos are managed by the underlying model repository 42

ETL Eclipse Plug-in There are: an ETL editor Launch configuration facilities Debugging option May be executed from MTCFlow 43