Your SlideShare is downloading. ×
0
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Model-driven Development of Model Transformations
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Model-driven Development of Model Transformations

1,931

Published on

Slides supporting the public defense of the Ph.D. thesis entitled \"Model-driven Development of Model Transformations\".

Slides supporting the public defense of the Ph.D. thesis entitled \"Model-driven Development of Model Transformations\".

Published in: Economy & Finance, Technology
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total Views
1,931
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
87
Comments
1
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Transcript

    • 1. “ Model-Driven Development of Model Transformations” Pieter Van Gorp Proefschrift ingediend tot het behalen van de graad van Doctor in de Wetenschappen
    • 2. Model Everything The System (part of the real world) Model of the external structure Model of the internal structure Model of the electricity models models models Omit details Support a purpose
    • 3. Language Evolution in Software Development Java 1 CORBA BPEL.XML EJB JMS, JCA, WSIF, … CORBA CORBA BPEL.XML BPEL.XML VB C++ VB.NET C# Bla 1 Bla 3 Bla 2 The next best thing The next best thing The next best thing ? ? ?
    • 4. Escaping from Language evolution & extinction? 1954 - FORTRAN 1958 - LISP 1958 - ALGOL 58 1959 - COBOL 1962 - APL 1962 - Simula 1964 - BASIC 1964 - PL/I 1970 - Pascal 1970 - Forth 1972 - C 1972 - Smalltalk 1972 - Prolog 1973 - ML 1978 - SQL 1983 - Ada 1983 - C++ 1985 - Eiffel 1987 - Perl 1989 - FL (Backus) 1990 - Haskell 1990 - Python 1991 - Java 1993 - Ruby 1995 - PHP 2000 - C# … Java RMI JDBC JMS EJB 1 Hibernate EJB 2 Generics … OO Modeling UML DataSets NHibernate ODX Gentle.NET Ubik Persist.NET ... Keep it stable “ Human Friendly”
    • 5. Modeling Language : Keep it Stable specify UML conforms- to conforms- to conforms- to Java C++ Programmer interpret specify specify…
    • 6. Modeling Languages & Tools : Human Friendly <ul><li>Example: Decompose complex models into Views </li></ul><ul><ul><li>Association View </li></ul></ul><ul><ul><li>Inheritance View </li></ul></ul><ul><ul><li>Any other task-specific view </li></ul></ul><ul><ul><li>Always keep track of the big picture </li></ul></ul><ul><ul><li>Automatic Consistency Maintenance </li></ul></ul><ul><ul><ul><li>Mainstream: several industrial tools </li></ul></ul></ul>models
    • 7. One Step Further: Multiple Software Models, Multiple Levels of Abstraction <ul><li>Purpose of Analysis model : </li></ul><ul><ul><li>conceptual data modeling </li></ul></ul><ul><li>Purpose of Design model : </li></ul><ul><ul><li>Choosing datatypes (linkedlist etc.) </li></ul></ul><ul><ul><li>Optimizing performance (bidirectional references or not...) </li></ul></ul><ul><ul><li>Evaluating architecture (MVC, ...) </li></ul></ul>Clean separation between models  iterative development
    • 8. Transformations in Conventional Software Development <ul><li>Drawbacks </li></ul>Manual!
    • 9. Doing the transformations by hand is expensive and error-prone ! If only we could automatically transform those models into whatever the machine requires! Anno 2000 ... and we do them over and over for each project ...
    • 10. Transformations in Model-Driven Software Development <ul><li>Rien ne se perd, rien ne se crée, </li></ul><ul><li>tout se transforme! </li></ul>
    • 11. Thesis Goals <ul><li>Model the Model Transformations </li></ul><ul><ul><li>Evaluate the UML </li></ul></ul><ul><ul><ul><li>Reuse expertise from the Application Modeling </li></ul></ul></ul><ul><ul><ul><li>Specialize for Transformation modeling </li></ul></ul></ul><ul><ul><ul><ul><ul><li>Similar to specializing UML for specific application domains (BPM, DM, ...) </li></ul></ul></ul></ul></ul><ul><ul><li>State-of-the-art </li></ul></ul><ul><ul><ul><li>Start </li></ul></ul></ul><ul><ul><ul><ul><ul><li>Taxonomy: compare existing approaches, identify weaknesses </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Graph Transformation Languages </li></ul></ul></ul></ul></ul><ul><ul><ul><li>Improve </li></ul></ul></ul><ul><ul><ul><ul><ul><li>BUT: Maintain UML’s interoperability </li></ul></ul></ul></ul></ul><ul><ul><li>General Applicability: </li></ul></ul><ul><ul><ul><ul><ul><li>Refactoring, </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Synthesis, </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Synchronization </li></ul></ul></ul></ul></ul><ul><li>Derive Implementation Automatically : </li></ul><ul><ul><li>Translate the Transformation Models automatically into an implementation </li></ul></ul>Model-Driven Development of Model Transformations
    • 12. Principles of Translation conforms-to conforms-to conforms-to Hieroglyphic models Demotic Ancient Greek models ... models describing the repealing of various taxes and instructions to erect statues in temples describing the repealing of various taxes and instructions to erect statues in temples describing the repealing of various taxes and instructions to erect statues in temples
    • 13. Principles of Translation Hieroglyphic models Demotic models <ul><li>Thomas Young (1818): </li></ul><ul><li>Demotic Alphabet </li></ul><ul><li>Translation to Ancient Greek </li></ul><ul><li>Jean-François Champollion (1824): </li></ul><ul><li>Hieroglyphic Alphabet & Grammar </li></ul><ul><li>Translation Rules to Demotic </li></ul>Alphabet, Grammar, Normalization, Translation Rules <ul><li>Need to describe: </li></ul><ul><li>Structure of Demotic & Hieroglyphic languages </li></ul><ul><li>Translation process </li></ul>a “Metamodel” = a Model of a Language Translation Process = Application of Transformations Noun, Verb, ... Substantif, Verbe, ...
    • 14. Translation LV PV O PV O LV Normalization “ Switch position of Subject and Verb” Translation “ LV PV O maps to …”` Translation “ LV PV O maps to …” <ul><li>UML2CSP : </li></ul><ul><li>first normalize, </li></ul><ul><li>then translate! </li></ul>
    • 15. A language for Modeling Translations... <ul><li>Metamodel </li></ul><ul><ul><li>Structural model of the translation program </li></ul></ul><ul><ul><li>Model of the input/output Languages </li></ul></ul><ul><ul><ul><li>The language in which the input models are expressed </li></ul></ul></ul><ul><ul><ul><li>Can be model of UML, BPML, YourOwnThing , ... </li></ul></ul></ul><ul><ul><li>Mainstream syntax: UML (MOF) Class Diagrams </li></ul></ul><ul><ul><li>Standardized </li></ul></ul><ul><li>Translation Rules </li></ul><ul><ul><li>Behavioral model of the translation program </li></ul></ul><ul><ul><li>Magnitude of new languages... </li></ul></ul><ul><ul><li>Needs standardization ... </li></ul></ul><ul><ul><li>Without re-inventing the wheel! </li></ul></ul><ul><ul><ul><ul><ul><li>>> Align with (1) </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>>> Link to Class Diagrams </li></ul></ul></ul></ul></ul>
    • 16. Standard Syntax for Metamodeling Example: UML Metamodel UML Meta Model (of UML) UML Model (of racing game)
    • 17. Standard Syntax for Metamodeling Example: UML Metamodel UML Meta Model (of UML) UML Model (of racing game)
    • 18. Standard Syntax for Metamodeling Example: UML Metamodel UML Meta Model (of UML) UML Model (of racing game)
    • 19. A language for Modeling Translations... <ul><li>Metamodel </li></ul><ul><ul><li>Structural model of the translation program </li></ul></ul><ul><ul><li>Model of the input/output Languages </li></ul></ul><ul><ul><ul><li>The language in which the input models are expressed </li></ul></ul></ul><ul><ul><ul><li>Can be model of UML, BPML, YourOwnThing , ... </li></ul></ul></ul><ul><ul><li>Mainstream syntax: Class Diagrams </li></ul></ul><ul><ul><ul><li>= Object-Oriented Structural Modeling </li></ul></ul></ul><ul><ul><li>Standardized </li></ul></ul><ul><li>Translation Rules </li></ul><ul><ul><li>Behavioral model of the translation program </li></ul></ul><ul><ul><li>Magnitude of new languages... </li></ul></ul><ul><ul><li>Needs standardization ... </li></ul></ul><ul><ul><li>Without re-inventing the wheel! </li></ul></ul>EXISTING N E W
    • 20. Related Software Models: Correspondences in Detail Analysis Model Design Model
    • 21. Modeling Transformation Rules INPUT model OUTPUT model INPUT metamodel OUTPUT metamodel Match, Create, Destroy, Copy in terms of the metamodels Class Diagrams too! Class Diagrams conforms to conforms to Copying fragments of models is complex! » Example
    • 22. IN/OUT metamodel conforms to conforms to OUTPUT model INPUT model processed by processed by IN-to-OUT Transformation read write Modeling a Copy Operation Derivation
    • 23. Modeling a Copy Operation Derivation IN/OUT metamodel OUTPUT model INPUT model <<copy>> IN-to-OUT Transformation read write
    • 24. Modeling a Copy Operation Summary Transformation Modeling Language: (extension of) so-called “ Story Diagrams” , in Standard UML syntax
    • 25. Cognitive Evaluation (of Transformation Modeling Language) + T. R. G. Green. Cognitive dimensions of notations . In Alistair Sutcliffe and Linda Macaulay, editors, People and Computers V, pages 443–460, New York, NY, USA,1989. Cambridge University Press. Consistency (able to infer <<onCopy>> <<destroy>>) Diffuseness (however: issue of input/output metamodels!) Secondary Notation (2D layout, color, …) Progressive Evaluation (tool issue?) Role-Expressiveness (edges: relation to whole) Juxtaposition (embedding… native Fujaba) Closeness of Mapping (syntax ~ metamodeling) -
    • 26. Generality ( of Transformation Modeling Language) Synthesis Refactoring Synthesis Refactoring UML2CSP CM2RM Copy2GT Pull Up Method Extract Interface Push Down Method Model Synchronization Model Synchronization Operational Declarative, Hybrid: >> outline for future work Normalization Normalization UML2CSP Chaining Chaining UML2CSP
    • 27. Thesis Goals <ul><li>Model the Model Transformations </li></ul><ul><ul><li>Evaluate the UML </li></ul></ul><ul><ul><ul><li>Reuse expertise from the Application Modeling </li></ul></ul></ul><ul><ul><ul><li>Specialize for Transformation modeling </li></ul></ul></ul><ul><ul><ul><ul><ul><li>Similar to specializing UML for specific application domains (BPM, DM, ...) </li></ul></ul></ul></ul></ul><ul><ul><li>State-of-the-art </li></ul></ul><ul><ul><ul><li>Start </li></ul></ul></ul><ul><ul><ul><ul><ul><li>Taxonomy: compare existing approaches, identify weaknesses </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Graph Transformation Languages </li></ul></ul></ul></ul></ul><ul><ul><ul><li>Improve </li></ul></ul></ul><ul><ul><ul><ul><ul><li>BUT: Maintain UML’s interoperability </li></ul></ul></ul></ul></ul><ul><ul><li>General Applicability: </li></ul></ul><ul><ul><ul><ul><ul><li>Refactoring, </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Synthesis, </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Synchronization </li></ul></ul></ul></ul></ul><ul><li>Derive Implementation Automatically : </li></ul><ul><ul><li>Translate the Transformation Models automatically into an implementation </li></ul></ul>Model-Driven Development of Model Transformations
    • 28. Towards Transformation Code… <ul><li>Higher </li></ul><ul><li>Order </li></ul><ul><li>Transformations </li></ul><ul><li>Case Studies: </li></ul><ul><li>Story Diagrams </li></ul><ul><li>Copying </li></ul>
    • 29. <ul><li>From Story Diagrams to JMI Transformation Code </li></ul><ul><li>From the Copy language to plain Story Diagrams </li></ul>Higher Order Transformations ModelTransformer.ftl TransFlow.ftl TransPrimitive.ftl <<success>>, <<failure>>, <<each time>> <<success>>, <<failure>>, <<each time>> <<create>>, <<destroy>> <<copy>> , <<create>>, <<destroy>> <<success>>, <<failure>>, <<each time>> <<create>>, <<destroy>> Again as Story Diagrams! Eat your own dogfood JMI, EMF, Java2, ... getClasses(): FCollection remove(), add(LinkedList l), … MDA Standardization of the state-of-the-art (Fujaba 3) Improvement of the state-of-the-art (Graph Transformation, QVT) Independent of the modeling platform!
    • 30. Conclusions <ul><li>Modeling of Model Transformations </li></ul><ul><ul><li>Evaluation of UML </li></ul></ul><ul><ul><ul><li>Class & Activity diagrams sufficient for challenging transformation problems </li></ul></ul></ul><ul><ul><ul><ul><ul><li>Most popular diagram types! </li></ul></ul></ul></ul></ul><ul><ul><ul><li>Profiles are good for language prototyping </li></ul></ul></ul><ul><ul><li>State-of-the-art </li></ul></ul><ul><ul><ul><li>Start </li></ul></ul></ul><ul><ul><ul><ul><ul><li>Taxonomy: compare existing approaches, identify weaknesses </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Graph Transformation Language (Story Diagrams) </li></ul></ul></ul></ul></ul><ul><ul><ul><li>Standardize </li></ul></ul></ul><ul><ul><ul><ul><ul><li>Interoperability (UML, XMI, JMI, MOF) </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Views on Transformation Models </li></ul></ul></ul></ul></ul><ul><ul><ul><li>Improve </li></ul></ul></ul><ul><ul><ul><ul><ul><li>Copy Operator </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Maintain interoperability: language extensions should be considered more! </li></ul></ul></ul></ul></ul><ul><ul><li>General Applicability: </li></ul></ul><ul><ul><ul><ul><ul><li>Refactoring, </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Synthesis, </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Synchronization </li></ul></ul></ul></ul></ul><ul><li>Transformation of Model Transformations </li></ul><ul><li>Final Conclusion </li></ul><ul><ul><li>Transformations do not require fundamentally different modeling techniques! </li></ul></ul><ul><ul><li>Model & Transform Everything... but leverage mature languages and tools! </li></ul></ul><ul><li>Future Work </li></ul><ul><ul><li>Hybrid Modeling Languages </li></ul></ul><ul><ul><ul><ul><ul><li>Scheduling, Directionality, Change Propagation, Versatility </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Control flow </li></ul></ul></ul></ul></ul>Model-Driven Development of Model Transformations

    ×