SlideShare uma empresa Scribd logo
1 de 19
UMLX and QVT and ATL
Edward D. Willink
ed@willink.me.uk
GMT Consortium
www.eclipse.org
also Thales Research and Technology (UK)
edwillink@iee.org
AMMA 2006
4 May 2006 UMLX and QVT and ATL 2
Outline
●
Transformation vision
− QVT role
●
Graphical Transformation Notation
− ATL role
●
UMLX Features
●
UMLX Demo
4 May 2006 UMLX and QVT and ATL 3
Multi-Transformation Vision
●
Automatic deduction of transformation sequence
− from available resources (input)
− from descriptions of target capabilities (input)
− to required target (output)
●
Pursued on OMELET, superseded by MDDI
Ma Mb
MMa MMb
MMx
in out
uses
uses
Mc Md
MMc MMd
MMz
in out
MMy
uses
out
in
Mx MzMy
uses
uses
uses
Ma:MMa
Mb:MMb
Mc:MMc Md:MMd
Mx:MMx Mz:MMzMy:MMy
4 May 2006 UMLX and QVT and ATL 4
Per-Transformation Vision
Powerful, flexible environment
Any textual notation
Any graphical notation
Fine grained user choice
graphics often better for structure
text often better for final details
g1:GraphicalTxNotation g2:GraphicalTxNotation t2:TextualTxNotationt1:TextualTxNotation
a:AbstractTx
e:ExecutableTx
atoe:A2E
t2toa:T2At1toa:T2Ag2toa:G2Ag1toa:G2A
4 May 2006 UMLX and QVT and ATL 5
Existing Programming Practice
●
Compiled
− .c : Abstract Program
●
standard representation for 'all' platforms
●
many different xxx to C translators
●
many different C compilers
− .exe : Executable Program
●
different representation for each OS/hardware
●
Interpreted
− .class : Abstract and Executable Program
gcc:CCompiler
:MyCGenerator
:Executable
:CProgram
:MyLanguage
4 May 2006 UMLX and QVT and ATL 6
Example Future Practice
Abstract Transformation:
QVTcore
transformation transformations
QVTrelation (graphical)
QVTrelation (textual)
ATL 2 (textual)
UMLX (graphical)
...
'Executable' Transformation
C / Java / ...
XSLT
ASM
UMLX:GraphicalTxNotation QVTg:GraphicalTxNotation ATL2:TextualTxNotationQVTrelation:TextualTxNotation
QVTcore:AbstractTx
:ExecutableTx
4 May 2006 UMLX and QVT and ATL 7
Temporary Practice
Waiting for QVT
ATL's ASM as Executable TX
ATL's Ecore as Abstract Tx
UMLX to QVTrelation to ATLecore using NiceXSL
ATLecore to FlatATLecore using NiceXSL
FlatATLecore to ATL using MOFscript
ATL to ASM using ATL tools
UMLX:GraphicalTxNotation ATL:TextualTxNotationQVTrelation:TextualTxNotation
ATLecore:AbstractTx
ASM:ExecutableTx
FlatATLecore:AbstractTx
4 May 2006 UMLX and QVT and ATL 8
UMLX Goal
●
Primary
− Good quality graphical transformation editor
− strong error checking/reporting
− executability
●
Secondary
− easy interchange with textual notations
− debugging/...
4 May 2006 UMLX and QVT and ATL 9
UMLX Features
●
Declarative
●
Strong meta-model compliance
− DND creation
− many errors impossible
●
Diagram instantiates a meta-model
●
Text accidentally refers to a meta-model
4 May 2006 UMLX and QVT and ATL 10
UMLX Editing
●
Multi-sheet
− no need to use multiple graphics files
− no loss of synchronisation between files
●
Multi-model
− more than one meta-model can be edited/used
− read-only/locked/read-write access control
●
Multi-paradigm
− meta-models and transformations in same editor
●
Multi-view
− outline view provides Drag and Drop sources
− property view supports non-trivial text entry
4 May 2006 UMLX and QVT and ATL 11
Meta-Model Editor
4 May 2006 UMLX and QVT and ATL 12
Book2Publication Relation/Rule
4 May 2006 UMLX and QVT and ATL 13
Relation Editor Example
●
Domains, Constraints, Class Variables, Evolution
●
Multiple directly editable text fields
●
Multiple drag and drop targets
●
“title” is the name of a Publication attribute
− Changes when source changes (inbuilt refactoring)
4 May 2006 UMLX and QVT and ATL 14
UMLX/QVT/ATL Semantics
●
UMLX, QVT multi-directional, ATL unidirectional
− ATL generated by imposing a direction on QVT
●
OCL ' the same'
− ATL deviates from strict OCL 2.0
●
Transformations similar
− ATL weak on concepts of TypedModels
●
single meta-model
●
single package per meta-model
●
Helper functions similar
●
UMLX, QVT Relations similar to ATL rules
− ATL has surprising 'unless hierarchical' rules
●
Predicates similar
●
UMLX Evolutions -> QVT traceability -> ATL ...
●
UMLX Preservations -> expanded rules
●
UMLX semantics tied in to Graph Tranaformations
4 May 2006 UMLX and QVT and ATL 15
Evolution
●
(Originally defined unidirectionally)
●
Now, multi-directional create/delete with traceability
●
Elements in output domains exist (are created)
with respect to (traceable to)
Elements in input domains (which are deleted)
●
From left to right the 'book2publication' evolution establishes
a unique {{Book}, {Publication}} identity
●
No need for multiple diagrams
cf. primitive relations in QVT
cf. resolveTemp in ATL
More Powerful form of ADD and DELETE
4 May 2006 UMLX and QVT and ATL 16
Preservation
●
More powerful form of KEEP
●
In-place transformations
●
Refinement/same-meta-model transformations
●
Require a hierarchical copy
− Cf XSLT's default apply-templates
●
Preservation is a hierachical copy
4 May 2006 UMLX and QVT and ATL 17
Errors
− Many cannot exist in a meta-model compliant editor
●
Editor inhibits gibberish entry
− Errors can be created through DND
4 May 2006 UMLX and QVT and ATL 18
UMLX Status
●
Phase 1 (2003): GME-based, ideas, overambitious
●
Phase 2 (2005-2006): Eclipse GEF-based editor
●
NiceXSL, MOFscript transformations to ATL
− (Book2Publication only today - UMLX 0.0.4)
− ongoing: broader semantic range
●
UMLX to QVTrelational to QVTcore to ATL
 requires fixes to ATL multi model handling
●
Phase 3 (????): Eclipse GMF-based
●
better underlying capabilities
− ? multi-tabs
●
better user experience
●
no fundamental change to UMLX semantics
4 May 2006 UMLX and QVT and ATL 19
Demo

Mais conteúdo relacionado

Destaque

Model Transformation A Personal Perspective
Model Transformation A Personal PerspectiveModel Transformation A Personal Perspective
Model Transformation A Personal PerspectiveEdward Willink
 
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...OCCIware
 
Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Pascal Roques
 
Frame latency evaluation: when simulation and analysis alone are not enough
Frame latency evaluation: when simulation and analysis alone are not enoughFrame latency evaluation: when simulation and analysis alone are not enough
Frame latency evaluation: when simulation and analysis alone are not enoughRealTime-at-Work (RTaW)
 
Optimized declarative transformation First Eclipse QVTc results
Optimized declarative transformation First Eclipse QVTc resultsOptimized declarative transformation First Eclipse QVTc results
Optimized declarative transformation First Eclipse QVTc resultsEdward Willink
 
SysML adoption in France
SysML adoption in FranceSysML adoption in France
SysML adoption in FrancePascal Roques
 
Yet Another Three QVT Languages
Yet Another Three QVT LanguagesYet Another Three QVT Languages
Yet Another Three QVT LanguagesEdward Willink
 
Embedded OCL Integration and Debugging
Embedded OCL Integration and DebuggingEmbedded OCL Integration and Debugging
Embedded OCL Integration and DebuggingEdward Willink
 
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware
 
Model Transformation: A survey of the state of the art
Model Transformation: A survey of the state of the artModel Transformation: A survey of the state of the art
Model Transformation: A survey of the state of the artTom Mens
 
Modeling the OCL Standard Library
Modeling the OCL Standard LibraryModeling the OCL Standard Library
Modeling the OCL Standard LibraryEdward Willink
 
OCL Integration and Code Generation
OCL Integration and Code GenerationOCL Integration and Code Generation
OCL Integration and Code GenerationEdward Willink
 
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...Edward Willink
 
Vbisigk
VbisigkVbisigk
VbisigkISIG
 
Developpement mobile vs open source
Developpement mobile vs open sourceDeveloppement mobile vs open source
Developpement mobile vs open sourceKorteby Farouk
 
Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...Etienne Juliot
 
OCL Specification Status
OCL Specification StatusOCL Specification Status
OCL Specification StatusEdward Willink
 

Destaque (20)

Model Transformation A Personal Perspective
Model Transformation A Personal PerspectiveModel Transformation A Personal Perspective
Model Transformation A Personal Perspective
 
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
 
Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0
 
Frame latency evaluation: when simulation and analysis alone are not enough
Frame latency evaluation: when simulation and analysis alone are not enoughFrame latency evaluation: when simulation and analysis alone are not enough
Frame latency evaluation: when simulation and analysis alone are not enough
 
Optimized declarative transformation First Eclipse QVTc results
Optimized declarative transformation First Eclipse QVTc resultsOptimized declarative transformation First Eclipse QVTc results
Optimized declarative transformation First Eclipse QVTc results
 
SysML adoption in France
SysML adoption in FranceSysML adoption in France
SysML adoption in France
 
OCL 2.5 plans
OCL 2.5 plansOCL 2.5 plans
OCL 2.5 plans
 
Yet Another Three QVT Languages
Yet Another Three QVT LanguagesYet Another Three QVT Languages
Yet Another Three QVT Languages
 
Embedded OCL Integration and Debugging
Embedded OCL Integration and DebuggingEmbedded OCL Integration and Debugging
Embedded OCL Integration and Debugging
 
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...
 
Model Transformation: A survey of the state of the art
Model Transformation: A survey of the state of the artModel Transformation: A survey of the state of the art
Model Transformation: A survey of the state of the art
 
Modeling the OCL Standard Library
Modeling the OCL Standard LibraryModeling the OCL Standard Library
Modeling the OCL Standard Library
 
OCL Integration and Code Generation
OCL Integration and Code GenerationOCL Integration and Code Generation
OCL Integration and Code Generation
 
The OCLforUML Profile
The OCLforUML ProfileThe OCLforUML Profile
The OCLforUML Profile
 
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
 
Vbisigk
VbisigkVbisigk
Vbisigk
 
Developpement mobile vs open source
Developpement mobile vs open sourceDeveloppement mobile vs open source
Developpement mobile vs open source
 
OCCIware
OCCIwareOCCIware
OCCIware
 
Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...
 
OCL Specification Status
OCL Specification StatusOCL Specification Status
OCL Specification Status
 

Semelhante a UMLX and QVT and ATL

Gearpump akka streams
Gearpump akka streamsGearpump akka streams
Gearpump akka streamsKam Kasravi
 
Generic and Meta-Transformations for Model Transformation Engineering
Generic and Meta-Transformations for Model Transformation EngineeringGeneric and Meta-Transformations for Model Transformation Engineering
Generic and Meta-Transformations for Model Transformation EngineeringDaniel Varro
 
Automatically bridging UML profiles into MOF metamodels
Automatically bridging UML profiles into MOF metamodelsAutomatically bridging UML profiles into MOF metamodels
Automatically bridging UML profiles into MOF metamodelsIvano Malavolta
 
What’s new in MariaDB ColumnStore
What’s new in MariaDB ColumnStoreWhat’s new in MariaDB ColumnStore
What’s new in MariaDB ColumnStoreMariaDB plc
 
Lesson5Introduction2QVT.pdf
Lesson5Introduction2QVT.pdfLesson5Introduction2QVT.pdf
Lesson5Introduction2QVT.pdfcifoxo
 
Porting R Models into Scala Spark
Porting R Models into Scala SparkPorting R Models into Scala Spark
Porting R Models into Scala Sparkcarl_pulley
 
Tungsten University: Replicate Between MySQL And Oracle
Tungsten University: Replicate Between MySQL And OracleTungsten University: Replicate Between MySQL And Oracle
Tungsten University: Replicate Between MySQL And OracleContinuent
 
Papyrus for Real Time at the OMG TC
Papyrus for Real Time  at the OMG TCPapyrus for Real Time  at the OMG TC
Papyrus for Real Time at the OMG TCCharles Rivet
 
Webinar Slides: MySQL Native Replication vs. Tungsten Clustering
Webinar Slides: MySQL Native Replication vs. Tungsten ClusteringWebinar Slides: MySQL Native Replication vs. Tungsten Clustering
Webinar Slides: MySQL Native Replication vs. Tungsten ClusteringContinuent
 
Raising Abstraction in Timing Analysis for Vehicular Embedded Systems through...
Raising Abstraction in Timing Analysis for Vehicular Embedded Systems through...Raising Abstraction in Timing Analysis for Vehicular Embedded Systems through...
Raising Abstraction in Timing Analysis for Vehicular Embedded Systems through...Alessio Bucaioni
 
Scala laboratory: Globus. iteration #2
Scala laboratory: Globus. iteration #2Scala laboratory: Globus. iteration #2
Scala laboratory: Globus. iteration #2Vasil Remeniuk
 
3450 - Writing and optimising applications for performance in a hybrid messag...
3450 - Writing and optimising applications for performance in a hybrid messag...3450 - Writing and optimising applications for performance in a hybrid messag...
3450 - Writing and optimising applications for performance in a hybrid messag...Timothy McCormick
 
Scaling machinelearning as a service at uber li Erran li - 2016
Scaling machinelearning as a service at uber li Erran li - 2016Scaling machinelearning as a service at uber li Erran li - 2016
Scaling machinelearning as a service at uber li Erran li - 2016Karthik Murugesan
 
Scaling machine learning as a service at Uber — Li Erran Li at #papis2016
Scaling machine learning as a service at Uber — Li Erran Li at #papis2016Scaling machine learning as a service at Uber — Li Erran Li at #papis2016
Scaling machine learning as a service at Uber — Li Erran Li at #papis2016PAPIs.io
 
Using Spark Mllib Models in a Production Training and Serving Platform: Exper...
Using Spark Mllib Models in a Production Training and Serving Platform: Exper...Using Spark Mllib Models in a Production Training and Serving Platform: Exper...
Using Spark Mllib Models in a Production Training and Serving Platform: Exper...Databricks
 
Functional Programming in Java
Functional Programming in JavaFunctional Programming in Java
Functional Programming in JavaJim Bethancourt
 
FlinkML: Large Scale Machine Learning with Apache Flink
FlinkML: Large Scale Machine Learning with Apache FlinkFlinkML: Large Scale Machine Learning with Apache Flink
FlinkML: Large Scale Machine Learning with Apache FlinkTheodoros Vasiloudis
 
ITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model TransformationsITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model TransformationsTonny Madsen
 

Semelhante a UMLX and QVT and ATL (20)

Gearpump akka streams
Gearpump akka streamsGearpump akka streams
Gearpump akka streams
 
Generic and Meta-Transformations for Model Transformation Engineering
Generic and Meta-Transformations for Model Transformation EngineeringGeneric and Meta-Transformations for Model Transformation Engineering
Generic and Meta-Transformations for Model Transformation Engineering
 
Automatically bridging UML profiles into MOF metamodels
Automatically bridging UML profiles into MOF metamodelsAutomatically bridging UML profiles into MOF metamodels
Automatically bridging UML profiles into MOF metamodels
 
What’s new in MariaDB ColumnStore
What’s new in MariaDB ColumnStoreWhat’s new in MariaDB ColumnStore
What’s new in MariaDB ColumnStore
 
Uml2 clearquest
Uml2 clearquestUml2 clearquest
Uml2 clearquest
 
Lesson5Introduction2QVT.pdf
Lesson5Introduction2QVT.pdfLesson5Introduction2QVT.pdf
Lesson5Introduction2QVT.pdf
 
Pr full uml
Pr full umlPr full uml
Pr full uml
 
Porting R Models into Scala Spark
Porting R Models into Scala SparkPorting R Models into Scala Spark
Porting R Models into Scala Spark
 
Tungsten University: Replicate Between MySQL And Oracle
Tungsten University: Replicate Between MySQL And OracleTungsten University: Replicate Between MySQL And Oracle
Tungsten University: Replicate Between MySQL And Oracle
 
Papyrus for Real Time at the OMG TC
Papyrus for Real Time  at the OMG TCPapyrus for Real Time  at the OMG TC
Papyrus for Real Time at the OMG TC
 
Webinar Slides: MySQL Native Replication vs. Tungsten Clustering
Webinar Slides: MySQL Native Replication vs. Tungsten ClusteringWebinar Slides: MySQL Native Replication vs. Tungsten Clustering
Webinar Slides: MySQL Native Replication vs. Tungsten Clustering
 
Raising Abstraction in Timing Analysis for Vehicular Embedded Systems through...
Raising Abstraction in Timing Analysis for Vehicular Embedded Systems through...Raising Abstraction in Timing Analysis for Vehicular Embedded Systems through...
Raising Abstraction in Timing Analysis for Vehicular Embedded Systems through...
 
Scala laboratory: Globus. iteration #2
Scala laboratory: Globus. iteration #2Scala laboratory: Globus. iteration #2
Scala laboratory: Globus. iteration #2
 
3450 - Writing and optimising applications for performance in a hybrid messag...
3450 - Writing and optimising applications for performance in a hybrid messag...3450 - Writing and optimising applications for performance in a hybrid messag...
3450 - Writing and optimising applications for performance in a hybrid messag...
 
Scaling machinelearning as a service at uber li Erran li - 2016
Scaling machinelearning as a service at uber li Erran li - 2016Scaling machinelearning as a service at uber li Erran li - 2016
Scaling machinelearning as a service at uber li Erran li - 2016
 
Scaling machine learning as a service at Uber — Li Erran Li at #papis2016
Scaling machine learning as a service at Uber — Li Erran Li at #papis2016Scaling machine learning as a service at Uber — Li Erran Li at #papis2016
Scaling machine learning as a service at Uber — Li Erran Li at #papis2016
 
Using Spark Mllib Models in a Production Training and Serving Platform: Exper...
Using Spark Mllib Models in a Production Training and Serving Platform: Exper...Using Spark Mllib Models in a Production Training and Serving Platform: Exper...
Using Spark Mllib Models in a Production Training and Serving Platform: Exper...
 
Functional Programming in Java
Functional Programming in JavaFunctional Programming in Java
Functional Programming in Java
 
FlinkML: Large Scale Machine Learning with Apache Flink
FlinkML: Large Scale Machine Learning with Apache FlinkFlinkML: Large Scale Machine Learning with Apache Flink
FlinkML: Large Scale Machine Learning with Apache Flink
 
ITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model TransformationsITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model Transformations
 

Mais de Edward Willink

OCL Visualization A Reality Check
OCL Visualization A Reality CheckOCL Visualization A Reality Check
OCL Visualization A Reality CheckEdward Willink
 
OCL 2019 Keynote Retrospective and Prospective
OCL 2019 Keynote Retrospective and ProspectiveOCL 2019 Keynote Retrospective and Prospective
OCL 2019 Keynote Retrospective and ProspectiveEdward Willink
 
A text model - Use your favourite M2M for M2T
A text model - Use your favourite M2M for M2TA text model - Use your favourite M2M for M2T
A text model - Use your favourite M2M for M2TEdward Willink
 
Commutative Short Circuit Operators
Commutative Short Circuit OperatorsCommutative Short Circuit Operators
Commutative Short Circuit OperatorsEdward Willink
 
Deterministic Lazy Mutable OCL Collections
Deterministic Lazy Mutable OCL CollectionsDeterministic Lazy Mutable OCL Collections
Deterministic Lazy Mutable OCL CollectionsEdward Willink
 
The Micromapping Model of Computation
The Micromapping Model of ComputationThe Micromapping Model of Computation
The Micromapping Model of ComputationEdward Willink
 
The Importance of Opposites
The Importance of OppositesThe Importance of Opposites
The Importance of OppositesEdward Willink
 
At Last an OCL Debugger
At Last an OCL DebuggerAt Last an OCL Debugger
At Last an OCL DebuggerEdward Willink
 
QVT Traceability: What does it really mean?
QVT Traceability: What does it really mean?QVT Traceability: What does it really mean?
QVT Traceability: What does it really mean?Edward Willink
 
Safe navigation in OCL
Safe navigation in OCLSafe navigation in OCL
Safe navigation in OCLEdward Willink
 
OCL - The Bigger Picture
OCL - The Bigger PictureOCL - The Bigger Picture
OCL - The Bigger PictureEdward Willink
 
Fast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast QueriesFast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast QueriesEdward Willink
 
Enrich Your Models With OCL
Enrich Your Models With OCLEnrich Your Models With OCL
Enrich Your Models With OCLEdward Willink
 
Re-engineering Eclipse MDT/OCL for Xtext
Re-engineering Eclipse MDT/OCL for XtextRe-engineering Eclipse MDT/OCL for Xtext
Re-engineering Eclipse MDT/OCL for XtextEdward Willink
 
Enriching Your Models with OCL
Enriching Your Models with OCLEnriching Your Models with OCL
Enriching Your Models with OCLEdward Willink
 

Mais de Edward Willink (19)

An OCL Map Type
An OCL Map TypeAn OCL Map Type
An OCL Map Type
 
OCL Visualization A Reality Check
OCL Visualization A Reality CheckOCL Visualization A Reality Check
OCL Visualization A Reality Check
 
OCL 2019 Keynote Retrospective and Prospective
OCL 2019 Keynote Retrospective and ProspectiveOCL 2019 Keynote Retrospective and Prospective
OCL 2019 Keynote Retrospective and Prospective
 
A text model - Use your favourite M2M for M2T
A text model - Use your favourite M2M for M2TA text model - Use your favourite M2M for M2T
A text model - Use your favourite M2M for M2T
 
Shadow Objects
Shadow ObjectsShadow Objects
Shadow Objects
 
Commutative Short Circuit Operators
Commutative Short Circuit OperatorsCommutative Short Circuit Operators
Commutative Short Circuit Operators
 
Deterministic Lazy Mutable OCL Collections
Deterministic Lazy Mutable OCL CollectionsDeterministic Lazy Mutable OCL Collections
Deterministic Lazy Mutable OCL Collections
 
The Micromapping Model of Computation
The Micromapping Model of ComputationThe Micromapping Model of Computation
The Micromapping Model of Computation
 
The Importance of Opposites
The Importance of OppositesThe Importance of Opposites
The Importance of Opposites
 
At Last an OCL Debugger
At Last an OCL DebuggerAt Last an OCL Debugger
At Last an OCL Debugger
 
QVT Traceability: What does it really mean?
QVT Traceability: What does it really mean?QVT Traceability: What does it really mean?
QVT Traceability: What does it really mean?
 
Safe navigation in OCL
Safe navigation in OCLSafe navigation in OCL
Safe navigation in OCL
 
OCL 2.4. (... 2.5)
OCL 2.4. (... 2.5)OCL 2.4. (... 2.5)
OCL 2.4. (... 2.5)
 
OCL - The Bigger Picture
OCL - The Bigger PictureOCL - The Bigger Picture
OCL - The Bigger Picture
 
Fast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast QueriesFast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast Queries
 
Eclipse OCL Summary
Eclipse OCL SummaryEclipse OCL Summary
Eclipse OCL Summary
 
Enrich Your Models With OCL
Enrich Your Models With OCLEnrich Your Models With OCL
Enrich Your Models With OCL
 
Re-engineering Eclipse MDT/OCL for Xtext
Re-engineering Eclipse MDT/OCL for XtextRe-engineering Eclipse MDT/OCL for Xtext
Re-engineering Eclipse MDT/OCL for Xtext
 
Enriching Your Models with OCL
Enriching Your Models with OCLEnriching Your Models with OCL
Enriching Your Models with OCL
 

Último

Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 

Último (20)

Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 

UMLX and QVT and ATL

  • 1. UMLX and QVT and ATL Edward D. Willink ed@willink.me.uk GMT Consortium www.eclipse.org also Thales Research and Technology (UK) edwillink@iee.org AMMA 2006
  • 2. 4 May 2006 UMLX and QVT and ATL 2 Outline ● Transformation vision − QVT role ● Graphical Transformation Notation − ATL role ● UMLX Features ● UMLX Demo
  • 3. 4 May 2006 UMLX and QVT and ATL 3 Multi-Transformation Vision ● Automatic deduction of transformation sequence − from available resources (input) − from descriptions of target capabilities (input) − to required target (output) ● Pursued on OMELET, superseded by MDDI Ma Mb MMa MMb MMx in out uses uses Mc Md MMc MMd MMz in out MMy uses out in Mx MzMy uses uses uses Ma:MMa Mb:MMb Mc:MMc Md:MMd Mx:MMx Mz:MMzMy:MMy
  • 4. 4 May 2006 UMLX and QVT and ATL 4 Per-Transformation Vision Powerful, flexible environment Any textual notation Any graphical notation Fine grained user choice graphics often better for structure text often better for final details g1:GraphicalTxNotation g2:GraphicalTxNotation t2:TextualTxNotationt1:TextualTxNotation a:AbstractTx e:ExecutableTx atoe:A2E t2toa:T2At1toa:T2Ag2toa:G2Ag1toa:G2A
  • 5. 4 May 2006 UMLX and QVT and ATL 5 Existing Programming Practice ● Compiled − .c : Abstract Program ● standard representation for 'all' platforms ● many different xxx to C translators ● many different C compilers − .exe : Executable Program ● different representation for each OS/hardware ● Interpreted − .class : Abstract and Executable Program gcc:CCompiler :MyCGenerator :Executable :CProgram :MyLanguage
  • 6. 4 May 2006 UMLX and QVT and ATL 6 Example Future Practice Abstract Transformation: QVTcore transformation transformations QVTrelation (graphical) QVTrelation (textual) ATL 2 (textual) UMLX (graphical) ... 'Executable' Transformation C / Java / ... XSLT ASM UMLX:GraphicalTxNotation QVTg:GraphicalTxNotation ATL2:TextualTxNotationQVTrelation:TextualTxNotation QVTcore:AbstractTx :ExecutableTx
  • 7. 4 May 2006 UMLX and QVT and ATL 7 Temporary Practice Waiting for QVT ATL's ASM as Executable TX ATL's Ecore as Abstract Tx UMLX to QVTrelation to ATLecore using NiceXSL ATLecore to FlatATLecore using NiceXSL FlatATLecore to ATL using MOFscript ATL to ASM using ATL tools UMLX:GraphicalTxNotation ATL:TextualTxNotationQVTrelation:TextualTxNotation ATLecore:AbstractTx ASM:ExecutableTx FlatATLecore:AbstractTx
  • 8. 4 May 2006 UMLX and QVT and ATL 8 UMLX Goal ● Primary − Good quality graphical transformation editor − strong error checking/reporting − executability ● Secondary − easy interchange with textual notations − debugging/...
  • 9. 4 May 2006 UMLX and QVT and ATL 9 UMLX Features ● Declarative ● Strong meta-model compliance − DND creation − many errors impossible ● Diagram instantiates a meta-model ● Text accidentally refers to a meta-model
  • 10. 4 May 2006 UMLX and QVT and ATL 10 UMLX Editing ● Multi-sheet − no need to use multiple graphics files − no loss of synchronisation between files ● Multi-model − more than one meta-model can be edited/used − read-only/locked/read-write access control ● Multi-paradigm − meta-models and transformations in same editor ● Multi-view − outline view provides Drag and Drop sources − property view supports non-trivial text entry
  • 11. 4 May 2006 UMLX and QVT and ATL 11 Meta-Model Editor
  • 12. 4 May 2006 UMLX and QVT and ATL 12 Book2Publication Relation/Rule
  • 13. 4 May 2006 UMLX and QVT and ATL 13 Relation Editor Example ● Domains, Constraints, Class Variables, Evolution ● Multiple directly editable text fields ● Multiple drag and drop targets ● “title” is the name of a Publication attribute − Changes when source changes (inbuilt refactoring)
  • 14. 4 May 2006 UMLX and QVT and ATL 14 UMLX/QVT/ATL Semantics ● UMLX, QVT multi-directional, ATL unidirectional − ATL generated by imposing a direction on QVT ● OCL ' the same' − ATL deviates from strict OCL 2.0 ● Transformations similar − ATL weak on concepts of TypedModels ● single meta-model ● single package per meta-model ● Helper functions similar ● UMLX, QVT Relations similar to ATL rules − ATL has surprising 'unless hierarchical' rules ● Predicates similar ● UMLX Evolutions -> QVT traceability -> ATL ... ● UMLX Preservations -> expanded rules ● UMLX semantics tied in to Graph Tranaformations
  • 15. 4 May 2006 UMLX and QVT and ATL 15 Evolution ● (Originally defined unidirectionally) ● Now, multi-directional create/delete with traceability ● Elements in output domains exist (are created) with respect to (traceable to) Elements in input domains (which are deleted) ● From left to right the 'book2publication' evolution establishes a unique {{Book}, {Publication}} identity ● No need for multiple diagrams cf. primitive relations in QVT cf. resolveTemp in ATL More Powerful form of ADD and DELETE
  • 16. 4 May 2006 UMLX and QVT and ATL 16 Preservation ● More powerful form of KEEP ● In-place transformations ● Refinement/same-meta-model transformations ● Require a hierarchical copy − Cf XSLT's default apply-templates ● Preservation is a hierachical copy
  • 17. 4 May 2006 UMLX and QVT and ATL 17 Errors − Many cannot exist in a meta-model compliant editor ● Editor inhibits gibberish entry − Errors can be created through DND
  • 18. 4 May 2006 UMLX and QVT and ATL 18 UMLX Status ● Phase 1 (2003): GME-based, ideas, overambitious ● Phase 2 (2005-2006): Eclipse GEF-based editor ● NiceXSL, MOFscript transformations to ATL − (Book2Publication only today - UMLX 0.0.4) − ongoing: broader semantic range ● UMLX to QVTrelational to QVTcore to ATL  requires fixes to ATL multi model handling ● Phase 3 (????): Eclipse GMF-based ● better underlying capabilities − ? multi-tabs ● better user experience ● no fundamental change to UMLX semantics
  • 19. 4 May 2006 UMLX and QVT and ATL 19 Demo