model transformations an overview
DESCRIPTION
Model Transformations An overview. Pierre-Alain Muller INRIA [email protected]. Model Transformations @ Google. Outline. MDE basic principles What is a model-transformation? Typology of model-transformations Examples of transformations. Principles of Model-Driven Engineering. - PowerPoint PPT PresentationTRANSCRIPT
Model TransformationsModel Transformations
An overviewAn overview
Pierre-Alain MullerPierre-Alain MullerINRIAINRIA
[email protected]@irisa.fr
Artist2 Summer School 05 Pierre-Alain Muller 2
Model Transformations @ Model Transformations @ GoogleGoogle
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
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
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
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
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
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
Artist2 Summer School 05 Pierre-Alain Muller 9
Typical scope for Typical scope for transformationstransformations
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
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
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
Artist2 Summer School 05 Pierre-Alain Muller 13
Typical ExampleTypical Example
From UML to RDBMS
Transformation
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
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
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
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
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
Artist2 Summer School 05 Pierre-Alain Muller 19
Example of XSLT transformation
If isSynchronous
Else
Do this
Do that
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
Artist2 Summer School 05 Pierre-Alain Muller 21
Dedicated transformation Dedicated transformation languageslanguages
►TerminologyTerminology►Features of model transformationsFeatures of model transformations
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
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
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’
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
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
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
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
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
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)
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
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.
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
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
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
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
Artist2 Summer School 05 Pierre-Alain Muller 37
Classification of model Classification of model transformationstransformations
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
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
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 ()
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
Artist2 Summer School 05 Pierre-Alain Muller 42
M2T : TemplateM2T : Template
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
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
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
Artist2 Summer School 05 Pierre-Alain Muller 46
Example of logic Example of logic programmingprogramming
►Excerpt of Mercury codeExcerpt of Mercury code
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
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
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
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
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
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
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…
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
Artist2 Summer School 05 Pierre-Alain Muller 55
Generic transformation toolsGeneric transformation tools
►XSLTXSLT
►Graph Transformation toolsGraph Transformation tools Ask Reiko Ask Reiko
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
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
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
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
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.
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
Artist2 Summer School 05 Pierre-Alain Muller 62