Model-driven Development of Model Transformations

0 %
100 %
Information about Model-driven Development of Model Transformations

Published on June 25, 2008

Author: pvgorp

Source: slideshare.net

Description

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

“ Model-Driven Development of Model Transformations” Pieter Van Gorp Proefschrift ingediend tot het behalen van de graad van Doctor in de Wetenschappen

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

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 ? ? ?

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”

Modeling Language : Keep it Stable specify UML conforms- to conforms- to conforms- to Java C++ Programmer interpret specify specify…

Modeling Languages & Tools : Human Friendly Example: Decompose complex models into Views Association View Inheritance View Any other task-specific view Always keep track of the big picture Automatic Consistency Maintenance Mainstream: several industrial tools models

Example: Decompose complex models into Views

Association View

Inheritance View

Any other task-specific view

Always keep track of the big picture

Automatic Consistency Maintenance

Mainstream: several industrial tools

One Step Further: Multiple Software Models, Multiple Levels of Abstraction Purpose of Analysis model : conceptual data modeling Purpose of Design model : Choosing datatypes (linkedlist etc.) Optimizing performance (bidirectional references or not...) Evaluating architecture (MVC, ...) Clean separation between models  iterative development

Purpose of Analysis model :

conceptual data modeling

Purpose of Design model :

Choosing datatypes (linkedlist etc.)

Optimizing performance (bidirectional references or not...)

Evaluating architecture (MVC, ...)

Transformations in Conventional Software Development Drawbacks Manual!

Drawbacks

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 ...

Transformations in Model-Driven Software Development Rien ne se perd, rien ne se crée, tout se transforme!

Rien ne se perd, rien ne se crée,

tout se transforme!

Thesis Goals Model the Model Transformations Evaluate the UML Reuse expertise from the Application Modeling Specialize for Transformation modeling Similar to specializing UML for specific application domains (BPM, DM, ...) State-of-the-art Start Taxonomy: compare existing approaches, identify weaknesses Graph Transformation Languages Improve BUT: Maintain UML’s interoperability General Applicability: Refactoring, Synthesis, Synchronization Derive Implementation Automatically : Translate the Transformation Models automatically into an implementation Model-Driven Development of Model Transformations

Model the Model Transformations

Evaluate the UML

Reuse expertise from the Application Modeling

Specialize for Transformation modeling

Similar to specializing UML for specific application domains (BPM, DM, ...)

State-of-the-art

Start

Taxonomy: compare existing approaches, identify weaknesses

Graph Transformation Languages

Improve

BUT: Maintain UML’s interoperability

General Applicability:

Refactoring,

Synthesis,

Synchronization

Derive Implementation Automatically :

Translate the Transformation Models automatically into an implementation

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

Principles of Translation Hieroglyphic models Demotic models Thomas Young (1818): Demotic Alphabet Translation to Ancient Greek Jean-François Champollion (1824): Hieroglyphic Alphabet & Grammar Translation Rules to Demotic Alphabet, Grammar, Normalization, Translation Rules Need to describe: Structure of Demotic & Hieroglyphic languages Translation process a “Metamodel” = a Model of a Language Translation Process = Application of Transformations Noun, Verb, ... Substantif, Verbe, ...

Thomas Young (1818):

Demotic Alphabet

Translation to Ancient Greek

Jean-François Champollion (1824):

Hieroglyphic Alphabet & Grammar

Translation Rules to Demotic

Need to describe:

Structure of Demotic & Hieroglyphic languages

Translation process

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 …” UML2CSP : first normalize, then translate!

UML2CSP :

first normalize,

then translate!

A language for Modeling Translations... Metamodel Structural model of the translation program Model of the input/output Languages The language in which the input models are expressed Can be model of UML, BPML, YourOwnThing , ... Mainstream syntax: UML (MOF) Class Diagrams Standardized Translation Rules Behavioral model of the translation program Magnitude of new languages... Needs standardization ... Without re-inventing the wheel! >> Align with (1) >> Link to Class Diagrams

Metamodel

Structural model of the translation program

Model of the input/output Languages

The language in which the input models are expressed

Can be model of UML, BPML, YourOwnThing , ...

Mainstream syntax: UML (MOF) Class Diagrams

Standardized

Translation Rules

Behavioral model of the translation program

Magnitude of new languages...

Needs standardization ...

Without re-inventing the wheel!

>> Align with (1)

>> Link to Class Diagrams

Standard Syntax for Metamodeling Example: UML Metamodel UML Meta Model (of UML) UML Model (of racing game)

Standard Syntax for Metamodeling Example: UML Metamodel UML Meta Model (of UML) UML Model (of racing game)

Standard Syntax for Metamodeling Example: UML Metamodel UML Meta Model (of UML) UML Model (of racing game)

A language for Modeling Translations... Metamodel Structural model of the translation program Model of the input/output Languages The language in which the input models are expressed Can be model of UML, BPML, YourOwnThing , ... Mainstream syntax: Class Diagrams = Object-Oriented Structural Modeling Standardized Translation Rules Behavioral model of the translation program Magnitude of new languages... Needs standardization ... Without re-inventing the wheel! EXISTING N E W

Metamodel

Structural model of the translation program

Model of the input/output Languages

The language in which the input models are expressed

Can be model of UML, BPML, YourOwnThing , ...

Mainstream syntax: Class Diagrams

= Object-Oriented Structural Modeling

Standardized

Translation Rules

Behavioral model of the translation program

Magnitude of new languages...

Needs standardization ...

Without re-inventing the wheel!

Related Software Models: Correspondences in Detail Analysis Model Design Model

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

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

Modeling a Copy Operation Derivation IN/OUT metamodel OUTPUT model INPUT model <<copy>> IN-to-OUT Transformation read write

Modeling a Copy Operation Summary Transformation Modeling Language: (extension of) so-called “ Story Diagrams” , in Standard UML syntax

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) -

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

Thesis Goals Model the Model Transformations Evaluate the UML Reuse expertise from the Application Modeling Specialize for Transformation modeling Similar to specializing UML for specific application domains (BPM, DM, ...) State-of-the-art Start Taxonomy: compare existing approaches, identify weaknesses Graph Transformation Languages Improve BUT: Maintain UML’s interoperability General Applicability: Refactoring, Synthesis, Synchronization Derive Implementation Automatically : Translate the Transformation Models automatically into an implementation Model-Driven Development of Model Transformations

Model the Model Transformations

Evaluate the UML

Reuse expertise from the Application Modeling

Specialize for Transformation modeling

Similar to specializing UML for specific application domains (BPM, DM, ...)

State-of-the-art

Start

Taxonomy: compare existing approaches, identify weaknesses

Graph Transformation Languages

Improve

BUT: Maintain UML’s interoperability

General Applicability:

Refactoring,

Synthesis,

Synchronization

Derive Implementation Automatically :

Translate the Transformation Models automatically into an implementation

Towards Transformation Code… Higher Order Transformations Case Studies: Story Diagrams Copying

Higher

Order

Transformations

Case Studies:

Story Diagrams

Copying

From Story Diagrams to JMI Transformation Code From the Copy language to plain Story Diagrams 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!

From Story Diagrams to JMI Transformation Code

From the Copy language to plain Story Diagrams

Conclusions Modeling of Model Transformations Evaluation of UML Class & Activity diagrams sufficient for challenging transformation problems Most popular diagram types! Profiles are good for language prototyping State-of-the-art Start Taxonomy: compare existing approaches, identify weaknesses Graph Transformation Language (Story Diagrams) Standardize Interoperability (UML, XMI, JMI, MOF) Views on Transformation Models Improve Copy Operator Maintain interoperability: language extensions should be considered more! General Applicability: Refactoring, Synthesis, Synchronization Transformation of Model Transformations Final Conclusion Transformations do not require fundamentally different modeling techniques! Model & Transform Everything... but leverage mature languages and tools! Future Work Hybrid Modeling Languages Scheduling, Directionality, Change Propagation, Versatility Control flow Model-Driven Development of Model Transformations

Modeling of Model Transformations

Evaluation of UML

Class & Activity diagrams sufficient for challenging transformation problems

Most popular diagram types!

Profiles are good for language prototyping

State-of-the-art

Start

Taxonomy: compare existing approaches, identify weaknesses

Graph Transformation Language (Story Diagrams)

Standardize

Interoperability (UML, XMI, JMI, MOF)

Views on Transformation Models

Improve

Copy Operator

Maintain interoperability: language extensions should be considered more!

General Applicability:

Refactoring,

Synthesis,

Synchronization

Transformation of Model Transformations

Final Conclusion

Transformations do not require fundamentally different modeling techniques!

Model & Transform Everything... but leverage mature languages and tools!

Future Work

Hybrid Modeling Languages

Scheduling, Directionality, Change Propagation, Versatility

Control flow

Add a comment

Related pages

objectiF - Model-driven Development. By microTOOL.

Increase the pace of development. The key here are automatic model transformations: If you have described the technical aspects of a new application with ...
Read more

Model-Driven Development of Model Transformations - Springer

Abstract. The “model-driven development of model transformations” requires both a technique to model model transformations as well as a means to ...
Read more

Model-driven development of model transformations

In this paper we define a systematic model-driven development process for model transformations based on a precise semantics. We illustrate this process by ...
Read more

Model Patterns for Model Transformations in Model Driven ...

Model Patterns for Model Transformations in Model Driven Development Markus Scheidgen Institute of Computer Science, Humboldt-Universitat zu Berlin¨
Read more

Model Transformations in Model Driven Architecture

Model Transformations in Model Driven Architecture ... software design and development. Model transformation plays ... A model driven approach to model
Read more

Test-Driven Development of Model Transformations

Model transformations enable the automated development paradigm proposed by Model Driven Engineering. However, since the requirements for building a model ...
Read more

LNCS 5214 - Model-Driven Development of Model Transformations

Model-Driven Development of Model Transformations Pieter Van Gorp University of Antwerp pieter.vangorp@ua.ac.be Abstract. The “model-driven development ...
Read more

Using ATL to support Model-Driven Development of Model ...

development of model transformations. In particular, we adopt the idea collected in [4]. Handling model transformations as transformation models we can ...
Read more

Transformation Techniques in the Model-Driven Development ...

Transformation Techniques in the Model-Driven Development ... Model-driven development ... future plans on the implementation of the model transformations.
Read more

Model-driven architecture - Wikipedia

This requires mappings and transformations and ... including Model Driven Application Development, Model Based ... Model Driven Architecture: ...
Read more