1 / 16

UMLX : A Graphical Transformation Language for MDA

UMLX : A Graphical Transformation Language for MDA. E.D.Willink, EdWillink@iee.org GMT Consortium, www.eclipse.org/gmt (Thales Research and Technology (UK) Limited, Reading, England) 2nd Generative Techniques in the Context of the Model Driven Architecture Workshop OOPSLA’2003, Anaheim

davida
Download Presentation

UMLX : A Graphical Transformation Language for MDA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. UMLX : A Graphical Transformation Language for MDA E.D.Willink, EdWillink@iee.org GMT Consortium, www.eclipse.org/gmt (Thales Research and Technology (UK) Limited, Reading, England) 2nd Generative Techniques in the Context of the Model Driven Architecture Workshop OOPSLA’2003, Anaheim 26 October 2003

  2. Overview • UML and QVT perspective • Use UMLX in less obvious ways • workshop paper shows use as a programming language • Not UMLX Concrete Graphical Syntax • see the workshop paper • Transformation as a Composable Component • Summary

  3. Transformation in Program Context • Start state comprises the input model(s) • End state comprises the output model(s) • For QVT: • Transformation hierarchy is the full program • More generally: • Transformation is a more powerful form of state transition

  4. Transformation Syntaxes • 1 Abstract Transformation Syntax (QVT) • 1+ Concrete Textual Syntax • 1+ Concrete Graphical Syntax • Transformations • to QVT (extract information content) • between formats via XMI or XMID

  5. MDA Models • Platform Independent Model • specification of what needs to be done • too abstract for implementation • Platform (Description) Model • physical, virtual, intellectual resourcesavailable to implement solution • Platform Specific Model • a particular implementation • Mark Model • PIM + PDM specific configuration

  6. MDA Meta-Models • Every Model is an instance of some Meta-Model • traditionally the meta-model has been undefined but implicit • with MDA we model it

  7. Transform as a Model • Transform may also be a model • traditionally just Java code • but even Java code is an instance of the Java meta-model • Closed perspective - frozen executable • Open perspective - generic engine, re-usable model

  8. Transform between Meta-Models • Every model instantiates a meta-model • Transformation meta-model reuses input/output meta-model • UMLX extends UML for transformations

  9. Transformation • From LHS • read-only • shared • To RHS • write-only • shared • non-conflicting • In-place if LHS and RHS are same model instance • Define LHS meta-model • Define RHS meta-model • Define transformations between meta-model instances • (and pivot models if complex)

  10. Match order • Select search order - {a1,a2}, {b1,b2,b3}, {c1,c2}, d, [e*, [f*, [g]]] 'loop hoisting'

  11. Schema driven matching • Branch and bound search • Advance one node/free variable per level • pick narrowest relationship to advance to next node • composition > association • forward > backward • unity multiplicity > multiple • validate advance • type • back relationships • constraints • nested transformations • Smarter heuristics can lookahead

  12. Composition • Re-usable black boxes • Encapsulation • internal data • internal behaviour • Defined Interface • external data • external behaviour • Meta-Models define what the external data comprises • Ports define where the external data flows

  13. Scheduling/Synchronisation • ‘Data’ flow defines when transformation occurs • when the input models exist, then output gets created • Evolution identities (and {ordered} sets) define how • multiple concurrent match results are combined • multiple concurrent transform results are combined • Shared, read-only LHS • Shared, non-conflicting write-only RHS • Declarative, with causal constraints

  14. Re-usability • The UML to RDBMS example • http://dev.eclipse.org/viewcvs/indextech.cgi/gmt-home/doc/umlx/M4M03.pdf?rev=HEAD • 11 transforms in UMLX • multiple transforms/steps/rules/helpers in other approaches • UMLX transform unifies concepts • Rule/Step is a transform with inputs/outputs bound • steps may be factored out as (sub-)transformations • Helper is a transform with inputs bound • predicates may be factored out as (sub-)transformations • Graphics scalability problems soluble • factoring out sub-transformations with good clear names • use of embedded OCL

  15. UMLX Support • UMLX editor configured within GME • by defining a UMLX editing meta-model • UMLX compiler designed in UMLX • over 200 diagrams so far • UMLX execution engine designed in UMLX • over 100 diagrams so far • Bootstrap by manual transliteration to NiceXSL • human-friendly form of XSLT • Prototype generates XSLT code • currently for concurrent and sequential transforms on classes • ==> Fast, configurable, custom compiler-compiler

  16. Summary • UMLX is a natural extension of UML • opportunities for more elaborate/useful syntaxes • UMLX exhibits good composition properties • declarative transform sequencing • can degenerate to imperative • declarative transform concurrency • can be {ordered} • arbitrary OCL at innermost level • influence the QVT abstract syntax • UMLX tools progressing

More Related