UMLX : A Graphical Transformation Language for MDA - PowerPoint PPT Presentation

About This Presentation
Title:

UMLX : A Graphical Transformation Language for MDA

Description:

Platform Independent Model. specification of what needs to be done ... Platform (Description) Model. physical, virtual, intellectual resources ... – PowerPoint PPT presentation

Number of Views:47
Avg rating:3.0/5.0
Slides: 17
Provided by: edw109
Category:

less

Transcript and Presenter's Notes

Title: UMLX : A Graphical Transformation Language for MDA


1
UMLX A Graphical Transformation Language for MDA
  • E.D.Willink, EdWillink_at_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
  • OOPSLA2003, 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 gt association
  • forward gt backward
  • unity multiplicity gt 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-h
    ome/doc/umlx/M4M03.pdf?revHEAD
  • 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
  • gt 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
Write a Comment
User Comments (0)
About PowerShow.com