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