State of the Art and Future Directions in Model Management Research - - PowerPoint PPT Presentation

state of the art and future directions in model
SMART_READER_LITE
LIVE PREVIEW

State of the Art and Future Directions in Model Management Research - - PowerPoint PPT Presentation

State of the Art and Future Directions in Model Management Research Japan-Austria Joint Workshop on ICT, October 18-19, 2010 Gerti Kappel Business Informatics Group Institute of Software Technology and Interactive Systems Vienna University of


slide-1
SLIDE 1

Business Informatics Group Institute of Software Technology and Interactive Systems Vienna University of Technology Favoritenstraße 9-11/188-3, 1040 Vienna, Austria phone: +43 (1) 58801-18804 (secretary), fax: +43 (1) 58801-18896

  • ffice@big.tuwien.ac.at, www.big.tuwien.ac.at

State of the Art and Future Directions in Model Management Research

Japan-Austria Joint Workshop on ICT, October 18-19, 2010

Gerti Kappel

slide-2
SLIDE 2

Content

2

Introduction

  • Model-Driven Engineering and Model Management

Model Management Use Case I: Model Versioning Model Management Use Case II: Model Co-Evolution Résumé

Introduction Model Versioning Model Co-Evolution Rèsumè

slide-3
SLIDE 3

Content

3

Introduction

  • Model-Driven Engineering and Model Management

Model Management Use Case I: Model Versioning Model Management Use Case II: Model Co-Evolution Résumé

Introductio n Model Versioning Model Co-Evolution Rèsumè

slide-4
SLIDE 4

Model-Driven Engineering (MDE)

Models, Models, Models, ...

Jean Bézivin. On the Unification Power of Models. Software and System Modeling 4(2), pages 171-188, 2005.

4

"Everything is a model"

Design Model Analysis Model Diff Model Transformation Model Weaving Model Test Model Metamodel Change Model … Metametamodel

slide-5
SLIDE 5

Model-Driven Engineering (MDE)

5

Models, Models, Models, ...

Mapping Feature A model is based on an original (=system) Reduction Feature A model only reflects a (relevant) selection

  • f an original‘s properties

Pragmatic Feature A model needs to be usable in place of an

  • riginal with respect to some purpose

Herbert Stachowiak. Allgemeine Modelltheorie. Springer, Wien, 1973.

Model

represents

System

slide-6
SLIDE 6

Model-Driven Engineering (MDE)

6

Building Block #1: Metamodeling

Thomas Kühne. Matters of (Meta-)Modeling. Software and System Modeling 5(4), pages 369-385, 2006.

Meta- Metamodel Meta- Language

defines

Metamodel Language

defines

Model

represents

System

«instanceOf» «instanceOf» e x p r e s s e d u s i n g e x p r e s s e d u s i n g

slide-7
SLIDE 7

Model-Driven Engineering (MDE)

7

Building Block #2: Model Transformations

Transformatio n Specification Model Metamodel

«instanceOf»

Model Metamodel

«instanceOf» Krzysztof Czarnecki, Simon Helsen. Feature-based survey of model transformation approaches. IBM Systems Journal 45(3), pages 621-646, 2006.

Transformatio n Engine

writes reads executes

slide-8
SLIDE 8

Model-Driven Engineering (MDE)

Building Block #3: Model Management

8

"Everything is a model" "No model is an island"

instanceOf generatedFrom abstractionOf refinementOf

  • verlappingWith

equivalentWith sameAs crossCuttingWith …

slide-9
SLIDE 9

Model-Driven Engineering (MDE)

Building Block #3: Model Management

Model of "No model is an island"

Model

dependencies 0..*

9

slide-10
SLIDE 10

Model Management

Old wine in new bottles?

Origin: Data Engineering

Research issue for decades since integration of heterogeneous databases (1970)

Current Status: Model Management 2.0

Well-documented kinds of heterogeneities Global Model Management Operators

Diff, Merge, Match, Compose, ModelGen, TransGen, Inverse, …

Much progress, but still many challenges

Ongoing Work: Model Management 3.0 = Model Management 2.0 + Model Engineering

Raising the level of abstraction

Too many data models, formats, technologies, tools, …

Built on top of powerful model engineering technologies

10

  • P. Bernstein, S. Melnik. Model Management 2.0:

Manipulating Richer Mappings. ACM SIGMOD 2007 Keynote, China, June 2007.

slide-11
SLIDE 11

Model Management

11

Old wine in new bottles? Data Engineering Model Engineering

XMLSchema DataModel Relational DataModel UML aUML Model aSysML Model

  • 1
  • 1
  • 1

SysML

MOF No explicit formalism

  • 1

M1 M2 M3 M0 aRelational Model anXMLSchema Model Legend

Correspondences Transformation InstanceOf

slide-12
SLIDE 12

Model Management in a Nutshell

Model Management 2.0

Predefined set of generic operators

  • Act upon models and produce models

Limited set of model types

  • Models and Maps

Model management scripts

  • Composition of given model management operators
  • 1. Extensions for Model Management 3.0

Scripts are object-oriented programs Models are typed based on their metamodels Operators are tied to metamodels Operators expect typed models as input and produce typed models as

  • utput

Thomas Reiter, Kerstin Altmanninger, Werner Retschitzegger. Think Global, Act Local: Implementing Model Management with Domain-Specific Integration Languages. Revised Selected Papers of Workshops and Symposia at MoDELS 2006, Springer LNCS 4363, pages 263-276, 2007.

12

slide-13
SLIDE 13

Model Management

Motivating example: Exogenous merge

A.mark(); B.mark(); Ecore AB = A.merge(B); FullEquiv wa = AB.Fe_match(A); FullEquiv wb = AB.Fe_match(B); Transformation ta = wa.generate(); Transformation tb = wb.generate(); AB a? = a.ta(); AB b? = b.tb(); AB ab? = a?.merge(b?); 1 2 3 4 5 6

AB* AB* a a b? b? b b ab? ab? a? a?

2

merge

6

merge FullEquiv

3 4 5 5 4 3

FullEquiv

A.mark(); B.mark(); Ecore AB = A.merge(B); FullEquiv wa = AB.Fe_match(A ); FullEquiv wb = AB.Fe_match(B ); Transformation ta = w a .generate(); Transformation tb = wb.generate(); AB a? = a.ta(); AB b? = b.tb(); AB ab?= a?.merge(b?); 1 2 3 4 5 6 Ecore A = … Ecore B = … Ecore AB = A.merge(B); FullEquiv mapa = AB.FE_match(A ); FullEquiv mapb = AB.FE_match(B ); Transformation ta=

a.genTrafo();

Transformation tb =

b.genTrafo

(); AB a' = a.ta(); AB b' = b.tb(); AB ab' = a' .merge(b'); 1 2 3 3 4 4 5 5 6 6

AB* AB* a a b? b? b b ab? ab? a? a?

2

merge

6

merge FullEquiv

3 4 5 5 4 3

FullEquiv

Ecore AB a a b? b' b b ab? ab' a? a'

2

merge

6 6

merge FullEquiv

3 3 4 4 5 5 5 5 4 4 3 3

FullEquiv

„Exogenous Merge“ Script

Model a = … Model b = …

B A

1 1 1 1 map map 1 1 1 1

13

slide-14
SLIDE 14

Content

14

Introduction

  • Modeling, Model-Driven Engineering, and Model Management

Model Management Use Case I: Model Versioning Model Management Use Case II: Model Co-Evolution Résumé

Introduction Model Versioning Model Co-Evolution Rèsumè

slide-15
SLIDE 15

Model Management Use Case I: Model Versioning

15

Motivation

Some definitions of Software Engineering (SE)

SE is defined as the multi-person construction of multi-version software – David Lorge Parnas SE deals with the building of software systems that are so large or so complex that they are built by teams of engineers – Carlo Ghezzi, Mehdi Jazayeri, and Dino Mandrioli

Implication for Model Engineering: Models must be built in teams!

Supportive Conflict Resolution Precise Conflict Detection

slide-16
SLIDE 16

The Model Versioning Process Revised

16

A A A A A A A A C C A A C A A
slide-17
SLIDE 17

Example 1: Contradicting Change

17

Person Person getName() Person

slide-18
SLIDE 18

Example 2: Equivalent Change

18

Person Employee Person Employee Person Employee Person

slide-19
SLIDE 19

Example 2: Equivalent Change

19

Harder than we thought!?

Employee Person Employee Person Employee Person

  • Employee

Person Employee Person Employee Person

  • Class

superClass

Generalization

subClasses UML Metamodel V2 1..1 1..* name:String

Class

superClasses 0..* UML Metamodel V1 name:String name=“Person“

c1:Class

name=“Employee“

c2:Class

name=“Employee“

c3:Class

name=“Person“

c1:Class

Sally Harry name=“Person“

c1:Class

name=“Employee“

c2:Class g1:Generalization

name=“Person“

c1:Class

name=“Employee“

c3:Class g2:Generalization

Sally Harry

Metamodel Model (AS) Model (CS)

  • 1, o2 | o1.id = o2.id
  • 1 ∈ Class, o2 ∈ Class | o1.name = o2.name
slide-20
SLIDE 20

Car Engine

has

1

*

Car Engine

has 1

Example 3: Syntactic Inconsistency

20

Car Engine

has

Car Engine

has

*

1

slide-21
SLIDE 21

The AMOR Approach

21

Overview

Supportive Conflict Resolution Precise Conflict Detection Adaptable Versioning Framework

www.modelversioning.org

Gerti Kappel et al. Adaptable Model Versioning in Action. In Proc. of Modellierung 2010, GI, LNI 161, pages 221-236, 2010.

slide-22
SLIDE 22

Active

Versioning Example

22

State-based and generic merging

V0 V0’ V0’’ V1

Idle DialTon e Dialing

lift dial dial hang_up hang_up

Idle DialTon e Dialing

lift dial dial cancel cancel

Connect

cancel valid

Idle DialTon e

lift dial dial hang_up

Dialing

slide-23
SLIDE 23

Active

Versioning Example

23

State-based and generic merging

V0 V0’ V0’’ V1

Idle DialTon e Dialing

lift dial dial hang_up hang_up

Idle DialTon e Dialing

lift dial dial cancel cancel

Connect

cancel valid

Idle

lift hang_up hang_up

Delete / Update

Active Idle

lift cancel

Connect

cancel valid

Update / Update

  • DialTon

e

dial dial

Dialing DialTon e

dial dial

Dialing

slide-24
SLIDE 24

Active

Versioning Example

24

State-based and generic merging

V0 V0’ V0’’ V1

Idle DialTon e Dialing

lift dial dial hang_up hang_up

Idle DialTon e Dialing

lift dial dial cancel cancel

Connect

cancel valid

Idle

lift hang_up hang_up

Delete / Update

Active Idle

lift cancel

Connect

cancel valid

Update / Update

  • DialTon

e

dial dial

Dialing DialTon e

dial dial

Dialing Atomic changes:

  • Addition “Connect”
  • Rename of “hang_up”s

Refactoring:

  • Introduce Composite State
slide-25
SLIDE 25

Versioning Example

25

Operation-based and refactoring-aware merging

V0

Idle DialTon e Dialing

lift dial dial hang_up hang_up

Idle DialTon e Dialing

lift dial dial cancel cancel

Connect

cancel valid

Atomic changes:

  • Addition “Connect”
  • Rename of “hang_up”s

Active Idle

lift dial dial cancel

Dialing Connect

valid

Refactoring:

  • Introduce Composite State
  • DialTon

e

slide-26
SLIDE 26

Active

Versioning Example

26

Operation-based and refactoring-aware merging

V0 V0’ V0’’ V1

Idle DialTon e Dialing

lift dial dial hang_up hang_up

Idle DialTon e Dialing

lift dial dial cancel cancel

Connect

cancel valid

Idle

lift hang_up

Active Idle DialTon e

lift dial dial cancel

Dialing Connect

valid

  • DialTon

e

dial dial

Dialing

slide-27
SLIDE 27

Summary: Status Quo in Model Versioning Research

27

Few initial approaches No common terminology No common problem definition No exactly formulated research goals No test cases for comparison of model versioning systems

»Pre-Knowledge« Implicit Knowledge Community Knowledge Explicit Knowledge

Gerti Kappel et al. Why Model Versioning Research is needed!?. In Proc. of the Joint MoDSE- MCCM Workshop @ ModELS'09, 2009.

slide-28
SLIDE 28

Content

28

Introduction

  • Model-Driven Engineering, and Model Management

Model Management Use Case I: Model Versioning Model Management Use Case II: Model Co-Evolution Résumé

Introduction Model Versioning Model Co-Evolution Rèsumè

slide-29
SLIDE 29

Model Management Use Case II: Model Co-Evolution

29

Motivation

Term “Co-Evolution” borrowed from Biology

Biological co-evolution is the change of a biological entity triggered by the change of a related entity

One-to-one Relationships: Predator/Prey, Host/Symbiont, Host/Parasite, … Diffuse Relationships: An entity evolves in response to a number of other entities, each of which is also evolving in response to a set of entities

Co-Evolution in MDE

Co-evolution is the change of a model triggered by the change of a related model Current View

Relationship: r(a,b) a → a’ b → b’ | r(a’,b’) Challenge: Relationship Reconciliation

Current research focus is on one-to-one relationships a a' b b'

Δ Δ

slide-30
SLIDE 30

Metamodeling Level

30

Metamodels are the central artefacts

Metamodel

Textual Concrete Syntax Graphical Concrete Syntax Models Model 2 Model Transformations Model 2 Code Transformations OCL Constraints Simulators

slide-31
SLIDE 31

Metamodeling Level

31

Only models, i.e., instances of metamodels, are currently co-evolved!

Metamodel

Textual Concrete Syntax Graphical Concrete Syntax Models Model 2 Model Transformations Model 2 Code Transformations OCL Constraints Simulators

slide-32
SLIDE 32

Metamodel/Model (Co-)Evolution

32

Example

A D B D1 D2

Metamodel A

a1: A a2: A b1: B b2: B a1: A

a2:A c1:C c2:C

Instance of Metamodel A Instance of Metamodel A’

A D C D1 D2

Metamodel A‘

Δ rename(B,

C)

Δ cast(b:B,

c:C) Assumption: Renamed Class does not represent a new modeling concept! Metamodel Models conformsTo

Gerti Kappel et al. On using Inplace Transformations for Model Co-Evolution. In Proc. of the 2nd International Workshop on Model Transformations with ATL (MtATL) @ ICMT’10, 2010.

slide-33
SLIDE 33

Metamodel/Transformation (Co-)Evolution

33

Initial example

MMa MMb

Source Metamodel Targte Metamodel

t1

t1 … Forward Transformation

slide-34
SLIDE 34

34 MMa MMb MMb‘

Source Metamodel Targte Metamodel

Evolution

t1 t2

t1 … Forward Transformation t2 … Migration Transformation

v2.0 v3.0

Metamodel/Transformation (Co-)Evolution

Target metamodel evolution

slide-35
SLIDE 35

Metamodel/Transformation (Co-)Evolution

35

Transformation composition for evolving existing transformations

MMa MMb MMb‘

Source Metamodel Targte Metamodel

Evolution

t1 t2

t1 … Forward Transformation t2 … Migration Transformation

v2.0 v3.0 t3 = t1 • t2

slide-36
SLIDE 36

Metamodel/Transformation (Co-)Evolution

36

First initial results for composing graph transformations

MMa MMb MMb‘

Source Metamodel Targte Metamodel

Evolution

t1 t2

Requirements on t3 (1)Soundness and completeness (2)Elimination (3)Transitivity

v2.0 v3.0 t3 = t1 • t2

Manuel Wimmer et al. Towards Transformation Rule Composition. In Proc. of the 4th International Workshop on Multi-Paradigm Modeling (MPM) @ MoDELS‘10, 2010.

slide-37
SLIDE 37

Modeling Level using UML

37

Question 1: Are class diagrams in the centre of the development process?

Class Diagram

Use Case Diagram Composite Structure Diagram Component Diagram Activity Diagram Sequence Diagram OCL Constraints State Diagram Object Diagram

slide-38
SLIDE 38

Modeling Level using UML

38

Question 1: Are class diagrams in the centre of the development process?

Class Diagram

Use Case Diagram Composite Structure Diagram Component Diagram Activity Diagram Sequence Diagram OCL Constraints State Diagram Object Diagram

slide-39
SLIDE 39

Modeling Level using UML

39

Question 2: Do we have one-to-one relationships or diffuse relationships?

Class Diagram

Use Case Diagram Composite Structure Diagram Component Diagram Activity Diagram Sequence Diagram OCL Constraints State Diagram Object Diagram

slide-40
SLIDE 40

Modeling Level using UML

40

Question 2: Do we have one-to-one relationships or diffuse relationships?

Class Diagram

Use Case Diagram Composite Structure Diagram Component Diagram Activity Diagram Sequence Diagram OCL Constraints State Diagram Object Diagram

slide-41
SLIDE 41

Modeling Level using UML

41

Question 2: Do we have one-to-one relationships or diffuse relationships? Class Diagram Use Case Diagram Composite Structure Diagram Component Diagram Activity Diagram Sequence Diagram OCL Constraints State Diagram Object Diagram

«component» Change Propagator

slide-42
SLIDE 42

Modeling Level using UML

42

Question 3: Who is the host and who is the parasite?

Class Diagram

Object Diagram

Traditional Database Engineering View

Use the schema for populating the instances!

Consequence

Each change in the Class Diagram has to be propagated to the Object Diagram

slide-43
SLIDE 43

Modeling Level using UML

43

Question 3: Who is the host and who is the parasite?

Object Diagram

Class Diagram

Prototype-based Engineering View

Abstract the schema from the instances!

Consequence

Some changes in the Object Diagram have to be to propagated to the Class Diagram

slide-44
SLIDE 44

Summary: Status Quo in Model Co-Evolution Research

44

Several initial approaches Metamodel/model (co-)evolution has been solved for syntactical issues Huge number of different co-evolution scenarios Often no exactly formulated relationships between models No publicly accessible model repositories for studying model co- evolution

»Pre-Knowledge« Implicit Knowledge Community Knowledge Explicit Knowledge

slide-45
SLIDE 45

Content

45

Introduction

  • Modeling, Model-Driven Engineering, and Model Management

Model Management Use Case I: Model Versioning Model Management Use Case II: Model Co-Evolution Résumé

Introduction Model Versioning Model Co-Evolution Rèsumè

slide-46
SLIDE 46

Résumé

46

Model management infrastructure is the prerequisite for tackling evolution issues

Find a basic set of model management operators

Diff, Merge, Patch, … Explore variations and properties of these operators

Extend existing tools with model management capabilities

Provide a set of predefined operators Provide a common programming model for script development

Based on these scripting languages, provide tool support for

Versioning, Co-evolution, Merging, … Users should be enabled to adapt predefined scripts

slide-47
SLIDE 47

Résumé

Model management: lessons learned

  • Provides terminology for evolution concerns
  • Allows to reason on a high-level of abstraction
  • Variations of operators are a must
  • Says nothing about implementation of operators
  • Some operators seem to be magical (e.g., match, merge, …)
  • No approved programming model for script development

47

slide-48
SLIDE 48

Résumé

Future work needed!

Many research questions remain open in the field of MDE

What are the most important model management/evolution scenarios? What is the sufficient set of model management operators? What is an appropriate programming model for model management scripts? How to implement model management operators? How to verify model management operators? Is a generic model management approach feasible?

48

slide-49
SLIDE 49

»Pre-Knowledge« Practice of MDE

Appropriateness of

some standards questionable (QVT, UML2) – not yet adopted

CASE-tool vendors

jump on the MDE bandwagon

State of the Art in MDÉ 2010 Implicit Knowledge Research in MDE

Many different proposals,

application areas and goals

E.g., Model Management,

Mega-Modeling, Runtime Models, AOM, MDWE, DSM, …

Community Knowledge Explicit Knowledge

Consolidation, Verification and Industrialization

Résumé

49

Model Management in Model-Driven Engineering – Still enough to do :-!

slide-50
SLIDE 50

Thanks to …

Petra Brosch Horst Kargl Philip Langer Thomas Reiter Werner Retschitzegger Wieland Schwinger Martina Seidl Konrad Wieland Manuel Wimmer and many more …

50