model transformations in the viatra2 framework

73
Budapest University of Technology and Economics Fault-tolerant Systems Research Group Model Transformations in the VIATRA2 Framework Budapest University of Technology and Economics Dept. of Measurement and Information Systems István Ráth PhD candidate Dániel Varró Associate professor 1

Upload: istvan-rath

Post on 14-Jun-2015

243 views

Category:

Technology


5 download

DESCRIPTION

A tool demo session for the SENSORIA summer school. Basic level introduction to VIATRA2.

TRANSCRIPT

Page 1: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Model Transformations in theVIATRA2 Framework

Budapest University of Technology and EconomicsDept. of Measurement and Information Systems

István RáthPhD candidate

Dániel VarróAssociate professor

1

Page 2: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Overview - Outline Introduction− Motivation for model transformations− Main concepts of MTs

The VIATRA2 transformation language− Models and Metamodels− Graph Patterns and Graph transformation− Controlled transformations (Abstract state machines)

Advanced Transformation concepts− Synchronization with Event-driven Transformations− Constraint satisfaction problems over models− Model simulation

Applications in practice: Model-driven tool integration− SENSORIA− Embedded domain

2

Page 3: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Challenges for Software Development

3

Page 4: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Challenges for Software Development A typical design process of a large system involves− Many stakeholders− Many development teams− Many manmonths− MANY TOOLS

● Requirements, Analysis, Design, Testing, Maintenance, …

3

Page 5: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Challenges for Software Development A typical design process of a large system involves− Many stakeholders− Many development teams− Many manmonths− MANY TOOLS

● Requirements, Analysis, Design, Testing, Maintenance, …

Tool integration is a major challenge− Design of Embedded / Critical systems:

Cost of tool integration ≈ Cost of the tools themselves

3

Page 6: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Challenges for Software Development A typical design process of a large system involves− Many stakeholders− Many development teams− Many manmonths− MANY TOOLS

● Requirements, Analysis, Design, Testing, Maintenance, …

Tool integration is a major challenge− Design of Embedded / Critical systems:

Cost of tool integration ≈ Cost of the tools themselves Why?− Continuous evolution / changes of tools − Each having its own (modeling / programming) language− Difficult to build correct and robust bridges between them

3

Page 7: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Challenges for Software Development A typical design process of a large system involves− Many stakeholders− Many development teams− Many manmonths− MANY TOOLS

● Requirements, Analysis, Design, Testing, Maintenance, …

Tool integration is a major challenge− Design of Embedded / Critical systems:

Cost of tool integration ≈ Cost of the tools themselves Why?− Continuous evolution / changes of tools − Each having its own (modeling / programming) language− Difficult to build correct and robust bridges between them

3

Page 8: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Model Transformation for Tool Integration

High-levelSystemModel

(UML, BPM, DSL)

System design

4

Page 9: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Model Transformation for Tool Integration

High-levelSystemModel

(UML, BPM, DSL)

System design

Model generation

4

Page 10: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Model Transformation for Tool Integration

High-levelSystemModel

(UML, BPM, DSL)

System design

Model generation

List of inconsistencies

4

Page 11: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Model Transformation for Tool Integration

High-levelSystemModel

(UML, BPM, DSL)

System design

Model generation

List of inconsistencies

Refinement

4

Page 12: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Model Transformation for Tool Integration

High-levelSystemModel

(UML, BPM, DSL)

System design

Model generation

List of inconsistencies

Refinement

4

Page 13: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Model Transformation for Tool Integration

High-levelSystemModel

(UML, BPM, DSL)

System design

Mathematicalmodel

Model generation

Mathematical analysis

List of inconsistencies Analysis

Refinement

4

Page 14: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Model Transformation for Tool Integration

High-levelSystemModel

(UML, BPM, DSL)

System design

Mathematicalmodel

Model generation

Mathematical analysis

List of inconsistencies Analysis

Refinement

VIATRA2

4

Page 15: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Model Transformation for Tool Integration

High-levelSystemModel

(UML, BPM, DSL)

System design

Mathematicalmodel

Model generation

Mathematical analysis

List of inconsistencies Analysis

Refinement

Implementation

Code gen

VIATRA2

4

Page 16: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Dependable platform

Model Transformation for Tool Integration

High-levelSystemModel

(UML, BPM, DSL)

System design

Mathematicalmodel

Model generation

Mathematical analysis

List of inconsistencies Analysis

Refinement

Implementation

Code genAuto-

Deployment

Deployment desc

VIATRA2

4

Page 17: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

IT MonitoringSystem

Dependable platform

Model Transformation for Tool Integration

High-levelSystemModel

(UML, BPM, DSL)

System design

Mathematicalmodel

Model generation

Mathematical analysis

List of inconsistencies Analysis

Refinement

Implementation

Code genAuto-

Deployment

Deployment desc

VIATRA2

Runtimemonitoring

Monitorgeneration

4

Page 18: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

THE MODEL TRANSFORMATION PROBLEM

5

Page 19: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Native (Ad Hoc) Model Transformations

Vendor’s own tool

Manually writtennative program

Native Source model

Native Target model

6

Page 20: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Native (Ad Hoc) Model Transformations

Vendor’s own tool

Manually writtennative program

Native Source model

Native Target model

Native source models: • EMF • XML documents• Databases • Domain-specific models• UML

6

Page 21: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Native (Ad Hoc) Model Transformations

Vendor’s own tool

Manually writtennative program

Native Source model

Native Target model

Native source models: • EMF • XML documents• Databases • Domain-specific models• UML

Native target models: • EMF• App source code• XML deployment descript.• Databases • Analysis tools

6

Page 22: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

VIATRA Model Space (VPM)

Models, Metamodels, Transformations

Vendor’s own tool

Source model

Source metamodel

Target model

Target metamodel

Xform. rules (GT+ASM)

Native Source model

Native Target model

7

Page 23: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

VIATRA Model Space (VPM)

Models, Metamodels, Transformations

Vendor’s own tool

Source model

Source metamodel

Target model

Target metamodel

Xform. rules (GT+ASM)

Native Source model

Native Target model

Model: Description of a concrete system (see Eclipse EMF)

7

Page 24: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

VIATRA Model Space (VPM)

Models, Metamodels, Transformations

Vendor’s own tool

Source model

Source metamodel

Target model

Target metamodel

Xform. rules (GT+ASM)

Native Source model

Native Target model

Metamodel: Precise spec of a modeling language (see Eclipse EMF - Ecore)

Model: Description of a concrete system (see Eclipse EMF)

7

Page 25: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

VIATRA Model Space (VPM)

Models, Metamodels, Transformations

Vendor’s own tool

Source model

Source metamodel

Target model

Target metamodel

Xform. rules (GT+ASM)

Native Source model

Native Target model

Metamodel: Precise spec of a modeling language (see Eclipse EMF - Ecore)

Model: Description of a concrete system (see Eclipse EMF)

Transformation: How to generate a target equivalent of an arbitrary source model

7

Page 26: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Eclipse framework

VIATRA2 Model Transformation Plug-in

VIATRA Model Space (VPM)

Transformation Engine

Vendor’s own tool

Source model

Source metamodel

Target model

Target metamodel

Xform. rules (GT+ASM)

Xform engine

Native Source model

Native Target model

8

Page 27: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Eclipse framework

VIATRA2 Model Transformation Plug-in

VIATRA Model Space (VPM)

Transformation Engine

Vendor’s own tool

Source model

Source metamodel

Target model

Target metamodel

Xform. rules (GT+ASM)

Xform engine

Native Source model

Native Target model

Transformation engine: Support for querying and manipulating large models

8

Page 28: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Eclipse framework

VIATRA2 Model Transformation Plug-in

VIATRA Model Space (VPM)

Standalone Transformation Plugins

Vendor’s own tool

Native Source model

Native XForm Plugin

Native Target model

Source model

Source metamodel

Target model

Target metamodel

Xform. rules (GT+ASM)

Xform engine

Meta XForm

9

Page 29: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Eclipse framework

VIATRA2 Model Transformation Plug-in

VIATRA Model Space (VPM)

Standalone Transformation Plugins

Vendor’s own tool

Native Source model

Native XForm Plugin

Native Target model

Source model

Source metamodel

Target model

Target metamodel

Xform. rules (GT+ASM)

Xform engine

Meta XFormStandalone transformation: Independent of transformation development environment

9

Page 30: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

VPM Metamodeling Core

Source PIM model

PIM metamodel

Target SCADE model

SCADE metamodel

Xform. rules (UML/QVT)

Xform engine(ASM+GraTra)

Eclipse framework

VIATRA2 Model Transformation Plug-in

The VIATRA2 framework

Native PIM model

Native XForm Plugin

Native SCADE model

Vendor’s own tool

Meta XFormTransformation Design

Transformation Execution

10

Page 31: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

VIATRA2 Model Transformation Service

VIATRA Model Space (VPM)

Traceability of Transformations

Service Consumer

Source model

Source metamodel

Target model

Target metamodel

Native Source model

Native Target model

Reference metamodel

Reference model

11

Page 32: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

VIATRA2 Model Transformation Service

VIATRA Model Space (VPM)

Traceability of Transformations

Service Consumer

Source model

Source metamodel

Target model

Target metamodel

Native Source model

Native Target model

Reference metamodel

Reference model

Traceability: • Show the source element for a target element• Show the target element for a source element

11

Page 33: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research GroupModeling Tool

VIATRA2 Model Transformation Service

VIATRA Model Space (VPM)

Back-Annotation of Analysis Results

Analysis Tool

Source model

Source metamodel

Target model

Target metamodel

Native Source model

Native Result model

Reference metamodel

Reference model

12

Page 34: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research GroupModeling Tool

VIATRA2 Model Transformation Service

VIATRA Model Space (VPM)

Back-Annotation of Analysis Results

Analysis Tool

Source model

Source metamodel

Target model

Target metamodel

Native Source model

Native Result model

Reference metamodel

Reference model

12

Page 35: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

The VIATRA2 Framework @ Eclipse

http://www.eclipse.org/gmt/VIATRA2

13

Page 36: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

The VIATRA2 Approach Model management:− Model space: Unified, global view of

models, metamodels and transformations● Hierarchical graph model ● Complex type hierarchy● Multilevel metamodeling

Model manipulation and transformations: integration of two mathematically precise, rule and pattern-based formalisms − Graph patterns (GP): structural conditions− Graph transformation (GT): elementary xform steps − Abstract state machines (ASM): complex xform programs

Code generation:− Special model transformations with − Code templates and code formatters

14

Page 37: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

The VIATRA2 Approach Model management:− Model space: Unified, global view of

models, metamodels and transformations● Hierarchical graph model ● Complex type hierarchy● Multilevel metamodeling

Model manipulation and transformations: integration of two mathematically precise, rule and pattern-based formalisms − Graph patterns (GP): structural conditions− Graph transformation (GT): elementary xform steps − Abstract state machines (ASM): complex xform programs

Code generation:− Special model transformations with − Code templates and code formatters

14

Page 38: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Personfirstname:Stringlastname:String

Man Woman

FamilyfamilyName:String

members*

parent mother refines parent

father refines parent

husband

wife

Metamodeling in VIATRA2 (VTML)entity(family) { relation(members, family, person); isAggregation(members, true); }entity(person) { relation(parent,person,person); relation(father,person,man); multiplicity(father, many_to_one); supertypeOf(parent,father); relation(firstname, person,

datatypes.String);}entity(woman) { relation(husband, woman, man); multiplicity(husband, one_to_one);}supertypeOf(person,woman);entity(man) { relation(wife, man, woman);

EntityEntity

RelationRelation

15

Page 39: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Personfirstname:Stringlastname:String

Man Woman

FamilyfamilyName:String

members*

parent mother refines parent

father refines parent

husband

wife

Metamodeling in VIATRA2 (VTML)entity(family) { relation(members, family, person); isAggregation(members, true);}entity(person) { relation(parent,person,person); relation(father,person,man); multiplicity(father, many_to_one); supertypeOf(parent,father); relation(firstname, person,

datatypes.String);}entity(woman) { relation(husband, woman, man); multiplicity(husband, one_to_one);}supertypeOf(person,woman);entity(man) { relation(wife, man, woman);Supertype

RelationAggregation

RelationMultiplicity

16

Page 40: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Models in VIATRA2 (VTML)namespace people.models;import people.metamodel;

family('Varro1') { man('Gyozo') { man.wife(wf1, Gyozo, Maria); } woman('Maria') { woman.husband(hb1, Maria, Gyozo); } man('Daniel'); entity('Gergely'); instanceOf(Gergely, man); person.father(f1,'Gergely','Gyozo'); person.mother(m1,'Gergely','Maria'); family.members(mb1, 'Varro1', 'Gyozo'); family.members(mb2, 'Varro1', 'Maria'); family.members(mb3, 'Varro1', 'Gergely'); family.members(mb4, 'Varro1', 'Daniel');

motherfatherwife/husband

man

woman

Explicit instance-of

Instance definition

Namespace, Imports

Value OO datatype

Family Varro1

Daniel Gergely

Gyozo Maria

17

Page 41: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

motherfatherwife/husband

man

woman

Family Varro1

Daniel Gergely

Gyozo Maria

Containment ViewGraphical notation

Graph view

Daniel:Man Gergely:Man

Gyozo:Man Maria:Woman

f1:father

m1:mother

f1:fatherm1:mother

Varro1:Familymb2:members

str:String "Varro"fn:familyname

mb1:membersmb4:members mb3:members

18

Page 42: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Comparison to EMFEMF VPM / VIATRA

Namespace Only for metamodels

Both models and metamodels

Navigation As explicitly defined Always bidirectional

Generalization Only for classes Boths for classes and references

Containment Along references Independent from references

Generics Uni-directional instance-of

Bi-directional instance-of

19

Page 43: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

The VIATRA2 Approach Model management:− Model space: Unified, global view of

models, metamodels and transformations● Hierarchical graph model ● Complex type hierarchy● Multilevel metamodeling

Model manipulation and transformations: integration of two mathematically precise, rule and pattern-based formalisms − Graph patterns (GP): structural conditions− Graph transformation (GT): elementary xform steps − Abstract state machines (ASM): complex xform programs

Code generation:− Special model transformations with − Code templates and code formatters

20

Page 44: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

motherfatherwife/husband

man

woman

Family Varro1

Daniel Gergely

Gyozo Maria

X B

P

Daniel:Man Gergely:Man

Gyozo:Man Maria:Woman

f1:father

m1:mother

f2:fatherm2:mother

X: Person B: Man

P: Person

P1:person P2:person

pattern brother(X,B)

check (X != B)

Instance Model

Graphical notationPattern definition

matching Graph Pattern: − Structural condition that have to be

fulfilled by a part of the model space Graph pattern matching:

− A model (i.e. part of the model space) can satisfy a graph pattern,

− if the pattern can be matched to a subgraph of the model

21

Page 45: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Graph patterns (VTCL)// B is a brother of X pattern brother(X, B) = { person(X); person.parent(P1, X, P); person(P); person.parent(P2, B, P); man(B);

X: Person B: Man

P: Person

P1:person P2:person

pattern brother(X,B)

check (X != B)

22

Page 46: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Graph patterns (VTCL)// B is a brother of X pattern brother(X, B) = { person(X); person.parent(P1, X, P); person(P); person.parent(P2, B, P); man(B);

OR pattern

X: Person B: Man

P: Person

P1:person P2:person

pattern brother(X,B)

check (X != B)

X: Person S:Woman

F: Man

P1:father P2:father

pattern sister(X,S, F)

OR

X: Person S:Woman

M: Mother

P1:mother P2:mother

// S is a sister of X pattern sister(X, S, F) = { person(X) in F; person.father(P1, X, M); man(M) in F; person.father(P2, S, M); woman(S) in F;} or { person(X) in F; person.mother(P1, X, W); woman(W) in F; person.mother(P2, S, W);

OR pattern

22

Page 47: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Negative patterns (VTCL)pattern mayMarry(X, D) = { man(M); family(F1); family.members(MB1, F1, M); woman(W); family(F2); family.members(MB2, F2, W); neg find married(M); neg find married(W); check (F1 != F2);}

pattern married(X) = { man(X); man.wife(WF, X, W); woman(W); } or { woman(X);

Negative pattern

M: Man W:Woman

F1: Family

MB1:members

pattern mayMarry(M,W)

neg find married

X

F2: Family

MB2:members

neg find married

X

check (F1 != F2)

X: Man W: WomanP1:person

pattern married(X)

OR

M: Man X: WomanP1:person

23

Page 48: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Recursive patterns (VTCL)

pattern descendants(X, D) = { person(X); person.parent(P2, Ch, X); person(Ch); find descendants(Ch, D) person(D);} or { person(X); person.parent(P1, D, X); person(D);

OR pattern

Ch: Person D:Person

X: PersonP1:father

pattern descendants(X,D)

OR

D: Person X: Person

P1:parent

Recursive pattern

find descendantsX D

24

Page 49: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Graph transformation rules (VTCL)

gtrule marry(in M, in W, out F) =precondition patternlhs(M,W,F1,MB1,F2,MB2) = { family(F1); family.members(MB1, F1, M); man(M); family(F2); family.members(MB2, F2, W); woman(W); neg find married(M);

postcondition patternrhs(M,W,F1,MB1,F2,MB2) = { family(F1); man(M); family(F2); woman(W); family(F); family.members(MB3, F, M); family.members(MB4, F, W);

Precondition pattern

M: Man W:Woman

F1: Family

MB1:members

precondition pattern lhs(M,W,F1,MB1,F2,MB2)

neg find married

X

F2: Family

MB2:members

neg find married

X

M: Man W:Woman

F1: Family

MB1:members

postcondition pattern rhs(M,W,F1,MB1,F2,MB2,F)

F2: Family

MB4:members

F: Family

Postcondition pattern

25

Page 50: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Graph transformation rules (VTCL)

gtrule marry(in M, in W, out F) =precondition patternlhs(M,W,F1,MB1,F2,MB2) = { family(F1); family.members(MB1, F1, M); man(M); family(F2); family.members(MB2, F2, W); woman(W); neg find married(M);

action { delete(MB1); delete(MB2); new(family(F)); new(family.members(MB3, F, M)); new(family.members(MB4, F, W));

Precondition pattern

M: Man W:Woman

F1: Family

MB1:members

precondition pattern lhs(M,W,F1,MB1,F2,MB2)

neg find married

X

F2: Family

MB2:members

neg find married

X

Action Part

26

Page 51: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Structure of GT rules

gtrule myRule(X,Y) Interface with ASM

− Input variables− Output variables− (in Prolog style)

All parameters can be typed

NEG LHS RHS

Input Output

X

X X Y

Y

X Z

27

Page 52: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Generic GT rules (VTCL)

precondition lhs(Par,Child)

Par:Class

P1:parent

Child:Class

postcondition rhs(Par,Child)

Par:Class Child:Class

gtrule parentIsAncR(Par,Child)

precondition lhs(Par, Child, P1 ClsE,ParR,AncR)

Par:entityP1:relation

Child:entity

gtrule parentIsAncR(Par,Child,ClsE,ParR,AncR)

ClsE:entityAncR:relation

ParR:relation

postcondition rhs(Par, Child, P1 ClsE,ParR,AncR)

Par:entityP1:relation

Child:entity

ClsE:entityAncR:relation

ParR:relation

E:relation

E:anc

P1:parent

28

Page 53: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Abstract State Machines ASM: high-level

specification language− Control structure for xform− Integrated with GT rules

Examples− update location = term;− parallel {…} / seq {…}− let var = term in rule;− if (formula) rule1; else rule2;− iterate rule;− forall/choose variables

with formula do rule;− forall/choose variables

apply gtrule do rule;

forall X below people.models, B below people.models with find brother(X, B) do seq { print(name(X) + "->" + name(B)); }

let X = people.models.Varro1.Daniel,Y = people.models.Gyapay1.Szilvia, F = undef, F2 = undef in

choose Z below people.models apply marry(X, Y, F) do seq {

rename(F, "Varro2"); move(F, people.models); iterate choose M below people.models,

W below people.models apply marry(M, GT extensions to ASMs

• Permanent states (models) + elementary model manipulation29

Page 54: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Iterate choose vs. Forall Executes a GT rule as

long as possible Potential nontermination

Executes a GT rule for each match one by one

Potentially conflicting effects

Executes a GT rule as long as possible

Potential nontermination

Executes a GT rule for each match one by one

Potentially conflicting effects

// This may cause a conflict when X and B // are both man, and they are brothers

forall X, B with find brother(X, B) do seq { delete(X); }

// This may cause nontermination if the same // match for X and B is enabled after the // body of seq is executediterate choose X, B with find brother(X, B) do

seq {

}

30

Page 55: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

The VIATRA2 Approach Model management:− Model space: Unified, global view of

models, metamodels and transformations● Hierarchical graph model ● Complex type hierarchy● Multilevel metamodeling

Model manipulation and transformations: integration of two mathematically precise, rule and pattern-based formalisms − Graph patterns (GP): structural conditions− Graph transformation (GT): elementary xform steps − Abstract state machines (ASM): complex xform programs

Code generation:− Special model transformations driven by graph patterns− Code templates and/or print rules

31

Page 56: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Code templates (Ongoing) Code generation− Code templates− Code formatters

Code templates (alpha)− Text block with references

to GTASM patterns, rules− Compiled into GTASM

programs with prints≈ Velocity templates

Code formatters− Split output code into

multiple files− Pretty printing

template printClass(in C) ={public class $C {#(forall At,Typ with attrib(C,At,Typ) do seq{)private $Typ $At;#(})}}

// Resultrule printClass(in C) = seq { print("public class " + C + "{"); forall At,Typ with attrib(C,At,Typ) do seq { print("private " + Typ + " " + At + ";"); } print("}");

32

Page 57: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Other advanced MT issues Reusability− Pattern composition (find)− Rule calls (call)

Traceability− Reference metamodels− Explicit storage of reference models

Extensibility− Native transformations:

written in Java, called from MT programs− Integration of domain-specific models

33

Page 58: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

ADVANCED TRANSFORMATION CONCEPTS

34

Page 59: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Incremental graph pattern matching … previous talk

35

Page 60: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

What really is the incremental pattern matcher?

Graph patterns ~ complex constraint sets−Matching set: overlay of “valid” elements

RETE: a complex overlay cache of the model graph− Stores matching sets explicitly

A historical cache− Can store “previous” overlay states

36

Page 61: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

What really is the incremental pattern matcher?

Graph patterns ~ complex constraint sets−Matching set: overlay of “valid” elements

RETE: a complex overlay cache of the model graph− Stores matching sets explicitly

A historical cache− Can store “previous” overlay states

36

Page 62: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Idea Use the historical overlay to− Easily compute non-trivial change information (beyond

elementary changes)● Detect high-level “events”● Detect (the net effect of) complex change sequences

− Assign actions to these changes● Event-Condition-Action formalism in rule-based systems● event-driven transformations

− Or, easily track the validity set of constraints as the model is evolving● constraint satisfaction solving

− Or, easily track enabledness conditions for simulation rules● stochastic model simulation

37

Page 63: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Event-­‐driven  and  live  transforma1ons

Core  idea:  represent  events  as  changes  in  the  matching  set  of  a  pa3ern.− More  general  than  previous  approaches− Use  events  and  reac:ons  as  transforma:on  specifica:on

Live  transforma:ons− maintain  the  context  (variable  values,  global  variables,  …);− run  as  a  “daemon”,  react  whenever  necessary;− as  the  models  change,  the  system  can  react  instantly,  since  everything  needed  is  there  in  the  RETE  network:  no  re-­‐computa/on  is  necessary.  

Paper  at  ICMT2008:  Live  model  transforma:ons  driven  by  incremental  pa3ern  matching.

38

Page 64: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Change-driven transformations Generalization of the live transformation approach New formalism supports more precise change queries− To distinguish between various execution trajectories that

result in the same net change− A more complete adaptation of the ECA approach to graph

transformations Application scenarios− Incremental model synchronization for non-materialized

models (paper at MODELS2009: Change-driven transformations)

− Back-annotation of simulation traces (paper at SEFM2010)

39

Page 65: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Constraint satisfaction over models Motivation

− Very pragmatic problem area: constraint evaluation, “quick fix” computation, design or configuration-space exploration etc.

− CLP(FD) limited: only finite problems can be formulated● Problematic: object birth-and-death

− CLP(FD) difficult to use GT-based approaches

− Easier-to-use formalism− Infinite (dynamic) problems− “Traditional” problem: scalability

Our aim: combine ease-of-use and flexibility with performance

40

Page 66: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

CSP(M) Described by (M0,C,G,L)

− M0 initial model (typed graph)− C set of global constraints (graph

patterns)− G set of goals (graph patterns)− L set of labeling rules (GT rules)

Goal: Find a model Ms which satisfies all global constraints and goals (One, All, Optimal solutions)

Extensions− Flexible CSP

● Strong-weak constraints● Quality metrics

− Dynamic CSP: Add-remove constraints, goals, labeling rules on-the-fly● Re-use already traversed state

space

Performance “Pure” and “Flexible” CSP(M)

− Execution times significantly faster than KORAT or GROOVE

Dynamic CSP(M)− We can even beat Prolog CLP(FD)

in some cases In general

− VERY problem specific results− Lots of potential for future research

41

Page 67: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Stochastic simulation by graph transformation Joint work with prof. Reiko Heckel’s group (University of

Leicester) Conceptually similar to the CSP engine

− Simulation rule: precondition + transformation− Assign probability distributions to simulation rules− Execute as-long-as-possible− Observe system state changes

Papers− FASE2010: P. Torrini, R. Heckel, I. Ráth: Stochastic simulation of graph

transformation systems− GT-VMT2010: P. Torrini, R. Heckel, I. Ráth, G. Bergmann: Stochastic

graph transformation with regions− ASMTA2010: A. Khan, P. Torrini, R. Heckel and I. Ráth: Model-based

stochastic simulation of P2P VoIP using graph transformation

42

Page 68: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Applications VoIP P2P network behavioral simulation (Skype) Other simulation scenarios− Social networks− Traffic networks− Crystal growth

Evaluation− +: Scales well (comparable to dedicated simulators)− +: GT is a high-level behavioral specification formalism that is

easy-to-use− -: does not (yet) support certain topological constraints (e.g.

transitive closure)

43

Page 69: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Summary of VIATRA VIATRA: provides a rule and pattern-based language

for uni-directional model transformations Main concepts − multi-level metamodeling + model space− transformation language

● graph transformation● abstract state machines

− template-based code generation. Added value:− Rich specification language− Advanced and extensible execution strategies− Usable for tool integration problems in practice

44

Page 70: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

VIATRA2 IN TOOL INTEGRATION

45

Page 71: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Main Application Fields Analysis of Business Process Models

− Verification by MC, Fault simulation, Security analysis(Bell-LaPadula)

− Optimization (ILog Solver) IBM Faculty Awards

MDD in the Enterprise− Incremental correspondence

maintenance between Requirements models and● Architecture models● Design models

− Change impact analysis SecureChange IP

Domain-specific modeling languages− Design and transformation of domain

specific languages− Model simulation and stochastic

simulation ( GraSS) − Model-based generation of graphical

user interfaces

SOA− Performance & Availability analysis− Configuration generation− Service Analysis and Deployment

descriptor generation− Verification by MC (BPEL2SAL and

back) SA Forum + SENSORIA IP

Embedded Systems− PIM & PSM for dependable embedded

systems− PIM & PSM model store− PIM-to-PSM mapping− PIM & PSM validation− Middleware code generation− Test generation using SAL-ATG− Valid PSM generation based on

constraints ( CSP(M)) DECOS, DIANA, MOGENTES IP

46

Page 72: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

Summary Tool integration by precise model transformations: feasible in

− Service-oriented applications− Dependable embedded systems− Enterprise applications

Transformations can be specified by a combination of formal techniques − Graph transformation− Abstract State Machines

MDD tools− Can be built on open tool platforms− Integrate a large set of tools

Our approach− Open, customizable− Highly adaptive (new modeling standards, platforms, V&V tools, …)

47

Page 73: Model transformations in the VIATRA2 framework

Budapest University of Technology and Economics

Fault-tolerant Systems Research Group

THANK YOU FOR YOUR ATTENTION

Many thanks toD. Varró, G. Bergmann, Á. Horváth, Á. Hegedüs, Z. Ujhelyi, G. Varró A. Pataricza, A. Balogh, L. Gönczy, B. Polgár, D. Tóth Z. Balogh, A. Ökrös, Zs. Déri And many more students

48