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

Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0
Pascal Roques
 
SysML adoption in France
SysML adoption in FranceSysML adoption in France
SysML adoption in France
Pascal Roques
 
Vbisigk
VbisigkVbisigk
Vbisigk
ISIG
 
Developpement mobile vs open source
Developpement mobile vs open sourceDeveloppement mobile vs open source
Developpement mobile vs open source
Korteby Farouk
 

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

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
Ivano Malavolta
 
Lesson5Introduction2QVT.pdf
Lesson5Introduction2QVT.pdfLesson5Introduction2QVT.pdf
Lesson5Introduction2QVT.pdf
cifoxo
 
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
 

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

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

Último (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

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