+ All Categories
Home > Documents > Model Transformations An overview Pierre-Alain Muller [email protected].

Model Transformations An overview Pierre-Alain Muller [email protected].

Date post: 21-Dec-2015
Category:
View: 217 times
Download: 0 times
Share this document with a friend
62
Model Model Transformations Transformations An overview An overview Pierre-Alain Muller Pierre-Alain Muller INRIA INRIA [email protected] [email protected]
Transcript
Page 1: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Model TransformationsModel Transformations

An overviewAn overview

Pierre-Alain MullerPierre-Alain MullerINRIAINRIA

[email protected]@irisa.fr

Page 2: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 2

Model Transformations @ Model Transformations @ GoogleGoogle

Page 3: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 3

OutlineOutline

►MDE basic principlesMDE basic principles►What is a model-transformation?What is a model-transformation?►Typology of model-transformationsTypology of model-transformations►Examples of transformationsExamples of transformations

Page 4: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 4

Principles of Model-Driven Principles of Model-Driven EngineeringEngineering

►A kind of (software) development A kind of (software) development approachapproach

►Models as first class entitiesModels as first class entities►Everything is a modelEverything is a model►A model conforms to an other model A model conforms to an other model

(meta-model)(meta-model)►A model transformation takes models and A model transformation takes models and

produces modelsproduces models►A model-transformation is a modelA model-transformation is a model

Page 5: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 5

MDA = MDE à la OMGMDA = MDE à la OMG

►OMG, Object Management GroupOMG, Object Management Group►MDA, Model-Driven ArchitectureMDA, Model-Driven Architecture►PIM, Platform Independent ModelPIM, Platform Independent Model►PSM, Platform Specific ModelPSM, Platform Specific Model►(PDM, Platform Description Model)(PDM, Platform Description Model)►Transformation (PIM, PDM) -> PSMTransformation (PIM, PDM) -> PSM

RFP MOF Q/V/T Query, Views, RFP MOF Q/V/T Query, Views, TransformationsTransformations

RFP MOF to TextRFP MOF to Text

Page 6: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 6

Meta-modeling architectureMeta-modeling architecture

Real World

M0 M1 M2M3

Computer

Computer Manifestation

Model

Metamodel

Meta-Metamodel

Often misleading

M0

M1

M2

M3

Page 7: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 7

MotivationMotivation

►Model transformation is key to Model-Model transformation is key to Model-Driven EngineeringDriven Engineering Automation of the transition from Automation of the transition from

Business models to Implementation Business models to Implementation modelsmodels

BusinessDescription

ImplementationTransformation

Platform

Page 8: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 8

But alsoBut also

►Refining modelsRefining models►Reverse engineering (code to models)Reverse engineering (code to models)►Generating new viewsGenerating new views►Applying design patternsApplying design patterns►Refactoring modelsRefactoring models

Page 9: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 9

Typical scope for Typical scope for transformationstransformations

Page 10: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 10

Related fieldsRelated fields

Program transformation and Program transformation and compiler techniquescompiler techniques

Meta-programming techniquesMeta-programming techniques Graph rewriting techniquesGraph rewriting techniques

Page 11: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 11

MOF 2.0 Queries/Views/Transformations

RFP► Define a language for querying MOF models► Define a language for transformation

definitions► Allow for the creation of views of a model► Ensure that the transformation language is

declarative and expresses complete transformations

► Ensure that incremental changes to source models can be immediately propagated to the target models

► Express all new languages as MOF models

Page 12: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 12

Transformation ArchitectureTransformation Architecture

Transformation

Meta-model A

Model A

Conforms To

Meta-model B

Model B

Conforms To

Apply Transformation

Define Transformation

Page 13: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 13

Typical ExampleTypical Example

From UML to RDBMS

Transformation

Page 14: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 14

Transformations as modelsTransformations as models

►Composition of transformationsComposition of transformations►Transformation of transformationsTransformation of transformations

Meta-modelTransformation

Meta-model

Meta-Meta-model

Transformation ModelModel

Page 15: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 15

Toward Model-Toward Model-TransformationsTransformations

►CRUD on model elementsCRUD on model elements Create, Read, Update, DeleteCreate, Read, Update, Delete

►Transformation rules written inTransformation rules written in General purpose languages + APIGeneral purpose languages + API Intermediate transformation languageIntermediate transformation language Dedicated Model-Transformation Dedicated Model-Transformation

languageslanguages

Page 16: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 16

General purpose language General purpose language approachapproach

► Java, VB, C++, C#,... Java, VB, C++, C#,... Your favorite Your favorite language!language!

► Currently available in the tools via APIsCurrently available in the tools via APIs

► No overhead to learn a new languageNo overhead to learn a new language► Tool support to write the transformationsTool support to write the transformations

► It’s going to be challenging to do better!It’s going to be challenging to do better!

=> Monsieur Jourdain’s approach

Page 17: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 17

Action LanguageAction Language

►Use a general purpose action languageUse a general purpose action language Better navigation facility (associations)Better navigation facility (associations) Get access to the types defined in the Get access to the types defined in the

modelsmodels Procedural rule descriptionProcedural rule description

Page 18: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 18

Intermediate transformation Intermediate transformation languagelanguage

► Typically XML basedTypically XML based But XML (XMI) is verboseBut XML (XMI) is verbose

► XSLT can be used to transform XML trees XSLT can be used to transform XML trees into other (XML) (trees)into other (XML) (trees) More batch than interactiveMore batch than interactive Parameters are passed by valuesParameters are passed by values XSLT transformations are not really easy to XSLT transformations are not really easy to

maintainmaintain

► Better for simple transformationsBetter for simple transformations

Page 19: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 19

Example of XSLT transformation

If isSynchronous

Else

Do this

Do that

Page 20: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 20

Dedicated Transformation Dedicated Transformation LanguageLanguage

►Kind of DSL for transformationKind of DSL for transformation

►Simplify development and Simplify development and maintenance of model-transformationsmaintenance of model-transformations

►Higher expression powerHigher expression power►Enhanced structurationEnhanced structuration

Composition of rulesComposition of rules InteroperabilityInteroperability

Page 21: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 21

Dedicated transformation Dedicated transformation languageslanguages

►TerminologyTerminology►Features of model transformationsFeatures of model transformations

Page 22: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 22

QueryQuery

►An expression evaluated over a modelAn expression evaluated over a model Returns one or more instances of types Returns one or more instances of types

defined either in the source model or by defined either in the source model or by the query languagethe query language

►OCL is an example of a query OCL is an example of a query languagelanguage

Page 23: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 23

Examples of OCL queriesExamples of OCL queries

Query: Has Pierre-Alain Muller sent a message about a given subject s?

s.post->exists (author.name='Muller' and author.firstname='Pierre-Alain')

Query: Knowing that there is only one subject about QVT, I want to retrieve it.

Subject.allInstances()->any (title = ‘QVT’)

OCL Standard Lib Type

ModelType

Page 24: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 24

ViewView

►A view is a model that is completely A view is a model that is completely derived from another modelderived from another model The meta-model of the view is typically The meta-model of the view is typically

not the same as the meta-model of the not the same as the meta-model of the sourcesource

Model ViewTransformation

Meta-Model A Meta-Model A’

Page 25: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 25

TransformationTransformation

►A transformation generates a target A transformation generates a target model from a source modelmodel from a source model

TransformationTargetModel

SourceModel

May be bi-directional

Page 26: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 26

Q vs V vs TQ vs V vs T

►A query is a restricted kind of viewA query is a restricted kind of view

►A view is a restricted kind of A view is a restricted kind of transformation transformation The target model cannot be modified The target model cannot be modified

independently of the source modelindependently of the source model

►A transformation generates a target A transformation generates a target model from a source modelmodel from a source model

Page 27: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 27

DeclarativeDeclarative

►Declarative languages describe Declarative languages describe relationships between variables in relationships between variables in terms of functions or inference rules terms of functions or inference rules and the language executor (interpreter and the language executor (interpreter or compiler) applies some fixed or compiler) applies some fixed algorithm to these relations to produce algorithm to these relations to produce a resulta result

Page 28: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 28

ImperativeImperative

►Any programming language that Any programming language that specifies explicit manipulation of the specifies explicit manipulation of the state of the computer system, not to state of the computer system, not to be confused with a procedural be confused with a procedural languagelanguage

Page 29: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 29

Declarative vs. Imperative Declarative vs. Imperative StyleStyle

► Declarative (what to do)Declarative (what to do) Invariant relations between source and target Invariant relations between source and target

modelsmodels

► Imperative (how to do it)Imperative (how to do it) How to derive a target from a sourceHow to derive a target from a source

► May be combined via pre- and post-conditionsMay be combined via pre- and post-conditions

Imperative RuleDeclarative

Pre-ConditionDeclarative

Post-Condition

Page 30: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 30

Execution StrategyExecution Strategy

► Invocation of the transformation rulesInvocation of the transformation rules Explicit, via invocation operations (Java Explicit, via invocation operations (Java

like)like) Implicit, based on context and rules’ Implicit, based on context and rules’

signature (Prolog like)signature (Prolog like)

Page 31: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 31

TraceTrace

►Trace associates one (or more) target Trace associates one (or more) target element with the source elements that element with the source elements that lead to its creationlead to its creation For Round-trip developmentFor Round-trip development Incremental propagationIncremental propagation

►Rules may be able to match elements Rules may be able to match elements based on the trace without knowing based on the trace without knowing the rules that created the trace the rules that created the trace

Page 32: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 32

RuleRule

►Rules are the units in which Rules are the units in which transformations are definedtransformations are defined A rule is responsible for transforming a A rule is responsible for transforming a

particular selection of the source model to particular selection of the source model to the corresponding target model elements.the corresponding target model elements.

Page 33: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 33

DeclarationDeclaration

►A declaration is a specification of a A declaration is a specification of a relation between elements in the LHS relation between elements in the LHS and RHS modelsand RHS models

Page 34: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 34

ImplementationImplementation

►An implementation is an imperative An implementation is an imperative specification of how to create target specification of how to create target model elements from source model model elements from source model elementselements An implementation explicitly constructs An implementation explicitly constructs

elements in the target modelelements in the target model Implementations are typically directedImplementations are typically directed

Page 35: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 35

MatchMatch

►A match occurs during the application A match occurs during the application of a transformation when elements of a transformation when elements from the LHS and/or RHS model are from the LHS and/or RHS model are identified as meeting the constraints identified as meeting the constraints defined by the declaration of a ruledefined by the declaration of a rule A match triggers the creation (or update) A match triggers the creation (or update)

of model elements in the target modelof model elements in the target model

Page 36: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 36

IncrementalIncremental

►A transformation is incremental if A transformation is incremental if individual changes in a source model individual changes in a source model can lead to execution of only those can lead to execution of only those rules which match the modified rules which match the modified elementselements

Page 37: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 37

Classification of model Classification of model transformationstransformations

Page 38: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 38

Model-to-Text ApproachesModel-to-Text Approaches

►Visitor-Based ApproachesVisitor-Based Approaches►Template-Based ApproachesTemplate-Based Approaches

Page 39: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 39

Model-to-Model ApproachesModel-to-Model Approaches

►Direct-Manipulation ApproachesDirect-Manipulation Approaches►Relational ApproachesRelational Approaches►Graph-transformation-based Graph-transformation-based

ApproachesApproaches►Structure-Driven ApproachesStructure-Driven Approaches►Hybrid ApproachesHybrid Approaches►OtherOther

Page 40: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 40

M2T: Visitor-basedM2T: Visitor-based

►Some visitor mechanisms to traverse Some visitor mechanisms to traverse the internal representation of a model the internal representation of a model and write code to a text streamand write code to a text stream IteratorsIterators Write ()Write ()

Page 41: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 41

M2T: Template-BasedM2T: Template-Based

►A template consists of the target text A template consists of the target text containing slices of meta-code to access containing slices of meta-code to access information from the source and to information from the source and to perform text selection and iterative perform text selection and iterative expansionexpansion The structure of a template resembles The structure of a template resembles

closely the text to be generatedclosely the text to be generated Textual templates are independent of the Textual templates are independent of the

target language and simplify the generation target language and simplify the generation of any textual artefactsof any textual artefacts

Page 42: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 42

M2T : TemplateM2T : Template

Page 43: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 43

M2M: Direct ManipulationM2M: Direct Manipulation

► Internal representation plus some API to Internal representation plus some API to manipulate itmanipulate it

►Object-oriented frameworkObject-oriented framework►Rules and scheduling implemented from Rules and scheduling implemented from

scratch using a programming languagescratch using a programming language

► JMI (MOF-compliant Java Interface)JMI (MOF-compliant Java Interface) JSR-000040 Java™ Metadata Interface JSR-000040 Java™ Metadata Interface

Page 44: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 44

JMI examplesJMI examplespackage javax.jmi.model;

import javax.jmi.reflect.*;

public interface Attribute extends StructuralFeature { public boolean isDerived(); public void setDerived(boolean newValue);}

package javax.jmi.model;

import javax.jmi.reflect.*;

public interface Operation extends BehavioralFeature { public boolean isQuery(); public void setQuery(boolean newValue); public java.util.List getExceptions();}

Attributes

Operations

Page 45: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 45

M2M: Relational ApproachesM2M: Relational Approaches

► Declarative, based on mathematical Declarative, based on mathematical relationsrelations Good balance between flexibility and declarative Good balance between flexibility and declarative

expressionexpression

► Implementable with logic programmingImplementable with logic programming Mercury, F-Logic programming languagesMercury, F-Logic programming languages Predicate to describe the relationsPredicate to describe the relations Unification based-matching, search and Unification based-matching, search and

backtrackingbacktracking

Page 46: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 46

Example of logic Example of logic programmingprogramming

►Excerpt of Mercury codeExcerpt of Mercury code

Page 47: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 47

M2M : Graph-Transformation-M2M : Graph-Transformation-BasedBased

►Declarative, based on the theoretical Declarative, based on the theoretical work on graph transformationswork on graph transformations Operates on typed, attributed, labeled Operates on typed, attributed, labeled

graphsgraphs Rule (LHS, RHS : Graph Pattern)Rule (LHS, RHS : Graph Pattern)

►Automated source element selectionAutomated source element selection

Page 48: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 48

About GraphsAbout Graphs

►G. Rozenberg (ed.); “Handbook of graph grammars and computing by graph transformation: Volume I Foundations”. World Scientific Publishing, 1997.

►Web site of Reiko Heckel

Page 49: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 49

M2M : Graph-Transformation-M2M : Graph-Transformation-BasedBased

►Powerfull, but complex because of the Powerfull, but complex because of the non-determinism in scheduling and non-determinism in scheduling and application strategyapplication strategy Require careful consideration of Require careful consideration of

termination of the transformation process termination of the transformation process and the rule application orderingand the rule application ordering

► It is unclear how practitioners will It is unclear how practitioners will receive these complex approachesreceive these complex approaches

Page 50: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 50

M2M : Structure-Driven M2M : Structure-Driven ApproachesApproaches

►1st Phase1st Phase Creation of hierarchical structure of target Creation of hierarchical structure of target

modelmodel

►2nd Phase2nd Phase Set the attributes and references in the Set the attributes and references in the

targettarget

►Users provide the transformation rulesUsers provide the transformation rules►Framework determines the schedulingFramework determines the scheduling

Page 51: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 51

M2M : Structure-Driven M2M : Structure-Driven ApproachesApproaches

►Pragmatic approaches developed in Pragmatic approaches developed in the context of EJB and Databases the context of EJB and Databases schema generation from UML modelsschema generation from UML models

►Strong support for 1-to-1 and 1-to-n Strong support for 1-to-1 and 1-to-n correspondence between source and correspondence between source and targettarget

►Unclear how well these approaches Unclear how well these approaches can support other kinds of applicationscan support other kinds of applications

Page 52: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 52

M2M : Hybrid Approaches - M2M : Hybrid Approaches - othersothers

►Any combination of different Any combination of different techniquestechniques

►Practical approaches are very likely to Practical approaches are very likely to have the hybrid characterhave the hybrid character

Page 53: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 53

Practically speakingPractically speaking

►How many developers are familiar with How many developers are familiar with the prolog-like style of rules writing?the prolog-like style of rules writing?

►Where is the advantage of a dedicated Where is the advantage of a dedicated explicit language vs. a general purpose explicit language vs. a general purpose language?language?

►Hybrid Languages or transformation Hybrid Languages or transformation libraries for general purpose libraries for general purpose languages…languages…

Page 54: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 54

ToolsTools

►Generic transformation toolsGeneric transformation tools►CASE tools scripting languagesCASE tools scripting languages►Dedicated model transformation toolsDedicated model transformation tools►Meta-modeling toolsMeta-modeling tools

Page 55: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 55

Generic transformation toolsGeneric transformation tools

►XSLTXSLT

►Graph Transformation toolsGraph Transformation tools Ask Reiko Ask Reiko

Page 56: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 56

CASE tools scripting CASE tools scripting languageslanguages

►ArcstylerArcstyler from Interactive Objects from Interactive Objects MDA-Cartridge, JPython (Python & Java)MDA-Cartridge, JPython (Python & Java)

►ObjecteeringObjecteering from Objecteering Software from Objecteering Software J languageJ language

►OptimalJOptimalJ from Compuware from Compuware TPL languageTPL language

►FujabaFujaba (From UML to Java and Back (From UML to Java and Back Again)Again) Open Source Open Source

Page 57: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 57

Dedicated model transformation Dedicated model transformation toolstools

►Mia-TransformationMia-Transformation from Mia- from Mia-SoftwareSoftware Inference rules + JavaInference rules + Java

►PathMATEPathMATE from Pathfinder Solutions from Pathfinder Solutions Esay to integrate with modeling toolsEsay to integrate with modeling tools

►Open-SourceOpen-Source ATL, MTLATL, MTL, , AndroMDA, BOTL, CoralAndroMDA, BOTL, Coral Mod-Mod-

TransfTransf, , QVTEclipseQVTEclipse or or UMT-QVTUMT-QVT

Page 58: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 58

Meta-modeling toolsMeta-modeling tools

►MetaEdit+MetaEdit+ from MetaCase from MetaCase►XMF-MosaicXMF-Mosaic from Xactium from Xactium

►Open-SourceOpen-Source KerMeta from INRIA KerMeta from INRIA www.kermeta.orgwww.kermeta.org

Page 59: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 59

Coming soonComing soon

►Model Transformations in Practice Model Transformations in Practice WorkshopWorkshop October 3rd 2005October 3rd 2005 Part of the MoDELS 2005 ConferencePart of the MoDELS 2005 Conference

►Comparing and contrasting Comparing and contrasting various approachesvarious approaches

Page 60: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 60

ReferencesReferences► M. Andries, G. Engels, A. Habel, B. Hoffmann, H.-J. Kreowski, S. Kuske, M. Andries, G. Engels, A. Habel, B. Hoffmann, H.-J. Kreowski, S. Kuske,

D. Kuske, D. Plump, A. Schürr, and G. Taentzer. Graph Transformation D. Kuske, D. Plump, A. Schürr, and G. Taentzer. Graph Transformation for Specification and Programming. Technical Report 7/96, Universität for Specification and Programming. Technical Report 7/96, Universität Bremen, 1996, see Bremen, 1996, see http://citeseer.nj.nec.com/article/andries96graph.html http://citeseer.nj.nec.com/article/andries96graph.html

► D. H. Akehurst, S.Kent. A Relational Approach to Defining D. H. Akehurst, S.Kent. A Relational Approach to Defining Transformations in a Metamodel. In J.-M. Jézéquel, H. Hussmann, S. Transformations in a Metamodel. In J.-M. Jézéquel, H. Hussmann, S. Cook (Eds.): Cook (Eds.): UML 2002 - The Unified Modeling Language 5th UML 2002 - The Unified Modeling Language 5th International ConferenceInternational Conference, Dresden, Germany, September 30 - October , Dresden, Germany, September 30 - October 4, 2002. Proceedings, LNCS 2460, 243-258, 2002. 4, 2002. Proceedings, LNCS 2460, 243-258, 2002.

► Alcatel, Softeam, Thales, TNI-Valiosys, Codagen Corporation, et al. MOF Alcatel, Softeam, Thales, TNI-Valiosys, Codagen Corporation, et al. MOF Query/Views/Transformations, Revised Submission. OMG Document: Query/Views/Transformations, Revised Submission. OMG Document: ad/03-08-05 ad/03-08-05

► CBOP, DSTC, and IBM. MOF Query/Views/Transformations, Revised CBOP, DSTC, and IBM. MOF Query/Views/Transformations, Revised Submission. OMG Document: ad/03-08-03 Submission. OMG Document: ad/03-08-03

► C. Cleaveland. C. Cleaveland. Program Generators with XML and JavaProgram Generators with XML and Java. Prentice-Hall, . Prentice-Hall, 2001, see http://www.craigc.com/pg/2001, see http://www.craigc.com/pg/

► K. Czarnecki, S. Helsen, Classification of Model Transformation K. Czarnecki, S. Helsen, Classification of Model Transformation Approaches, OOPSLA’03 Workshop on Generative Techniques in the Approaches, OOPSLA’03 Workshop on Generative Techniques in the Context of Model-Driven Architecture.Context of Model-Driven Architecture.

Page 61: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 61

ReferencesReferences► T.Gardner, C. Griffin, J. Koehler, R. Hauser, A review of OMF MOF 2.0 QVT T.Gardner, C. Griffin, J. Koehler, R. Hauser, A review of OMF MOF 2.0 QVT

Submissions and Recommandations towards the finalm standard, Submissions and Recommandations towards the finalm standard, Metamodeliing for MDA, Firstr International Workshop, York, UK, November Metamodeliing for MDA, Firstr International Workshop, York, UK, November 2003.2003.

► A. Gerber, M. Lawley, K. Raymond, J. Steel, A. Wood. Transformation: The A. Gerber, M. Lawley, K. Raymond, J. Steel, A. Wood. Transformation: The Missing Link of MDA, In A. Corradini, H. Ehrig, H.-J. Kreowski, G. Rozenberg Missing Link of MDA, In A. Corradini, H. Ehrig, H.-J. Kreowski, G. Rozenberg (Eds.): (Eds.): Graph Transformation: First International Conference (ICGT 2002)Graph Transformation: First International Conference (ICGT 2002), , Barcelona, Spain, October 7-12, 2002. Proceedings. LNCS vol. 2505, Springer-Barcelona, Spain, October 7-12, 2002. Proceedings. LNCS vol. 2505, Springer-Verlag, 2002, pp. 90 – 105Verlag, 2002, pp. 90 – 105

► Object Management Group, The Object Constraint Language Specification 2.0, Object Management Group, The Object Constraint Language Specification 2.0, OMG Document: omg/2003-01-07 OMG Document: omg/2003-01-07

► Object Management Group, the Model-Driven Architecture Guide, OMG Object Management Group, the Model-Driven Architecture Guide, OMG Document: omg/2003-06-01 Document: omg/2003-06-01

► Object Management Group, MOF 2.0 Query / Views / Transformations RFP, Object Management Group, MOF 2.0 Query / Views / Transformations RFP, OMG Document: ad/2002-04-10, revised on April 24, 2002 OMG Document: ad/2002-04-10, revised on April 24, 2002

► QVT-Partners. MOF Query/Views/Transformations, Revised Submission. OMG QVT-Partners. MOF Query/Views/Transformations, Revised Submission. OMG Document: ad/2003-08-08 Document: ad/2003-08-08

► Model Transformation – the Heart and Soul of Model-Driven Software Model Transformation – the Heart and Soul of Model-Driven Software Development, tech report 200352Development, tech report 200352

Page 62: Model Transformations An overview Pierre-Alain Muller INRIAPierre-alain.muller@irisa.fr.

Artist2 Summer School 05 Pierre-Alain Muller 62


Recommended