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

UMLX and QVT and ATL

  • 1.
    UMLX and QVTand 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 2006UMLX and QVT and ATL 2 Outline ● Transformation vision − QVT role ● Graphical Transformation Notation − ATL role ● UMLX Features ● UMLX Demo
  • 3.
    4 May 2006UMLX 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 2006UMLX 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 2006UMLX 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 2006UMLX 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 2006UMLX 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 2006UMLX 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 2006UMLX 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 2006UMLX 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 2006UMLX and QVT and ATL 11 Meta-Model Editor
  • 12.
    4 May 2006UMLX and QVT and ATL 12 Book2Publication Relation/Rule
  • 13.
    4 May 2006UMLX 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 2006UMLX 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 2006UMLX 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 2006UMLX 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 2006UMLX 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 2006UMLX 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 2006UMLX and QVT and ATL 19 Demo