ON COMBINING TRIPLE GRAPH GRAMMARS AND LINEAR OPTIMISATION - - PowerPoint PPT Presentation

on combining triple graph grammars and linear
SMART_READER_LITE
LIVE PREVIEW

ON COMBINING TRIPLE GRAPH GRAMMARS AND LINEAR OPTIMISATION - - PowerPoint PPT Presentation

Erhan Leblebici, Anthony Anjorin, Andy Schrr ON COMBINING TRIPLE GRAPH GRAMMARS AND LINEAR OPTIMISATION TECHNIQUES A Real-World Example: Overview Robin Oppermann: A Configurable, Model-Driven Approach to Optimal Scheduling using Triple


slide-1
SLIDE 1

ON COMBINING TRIPLE GRAPH GRAMMARS AND LINEAR OPTIMISATION TECHNIQUES

Erhan Leblebici, Anthony Anjorin, Andy Schürr

slide-2
SLIDE 2

A Real-World Example: Overview

2

Robin Oppermann:
 A Configurable, Model-Driven Approach to Optimal Scheduling using Triple Graph Grammars and Linear Progamming. Ongoing Master’s Thesis, Paderborn University in collaboration with dSpace

slide-3
SLIDE 3

A Real-World Example: Overview

2

Robin Oppermann:
 A Configurable, Model-Driven Approach to Optimal Scheduling using Triple Graph Grammars and Linear Progamming. Ongoing Master’s Thesis, Paderborn University in collaboration with dSpace

A series of recurring manual tests have to be executed.

slide-4
SLIDE 4

A Real-World Example: Overview

2

Robin Oppermann:
 A Configurable, Model-Driven Approach to Optimal Scheduling using Triple Graph Grammars and Linear Progamming. Ongoing Master’s Thesis, Paderborn University in collaboration with dSpace

A series of recurring manual tests have to be executed. A test manager has to create a test schedule assigning test items to developers.

slide-5
SLIDE 5

A Real-World Example: Overview

2

Robin Oppermann:
 A Configurable, Model-Driven Approach to Optimal Scheduling using Triple Graph Grammars and Linear Progamming. Ongoing Master’s Thesis, Paderborn University in collaboration with dSpace

A series of recurring manual tests have to be executed. A test manager has to create a test schedule assigning test items to developers. Developers are only available for this purpose a few hours a week due to other responsibilities.

slide-6
SLIDE 6

A Real-World Example: Overview

2

Robin Oppermann:
 A Configurable, Model-Driven Approach to Optimal Scheduling using Triple Graph Grammars and Linear Progamming. Ongoing Master’s Thesis, Paderborn University in collaboration with dSpace

A series of recurring manual tests have to be executed. A test manager has to create a test schedule assigning test items to developers. Developers are only available for this purpose a few hours a week due to other responsibilities. Developers are also on vacation now and then…

slide-7
SLIDE 7

A Real-World Example: Overview

2

Robin Oppermann:
 A Configurable, Model-Driven Approach to Optimal Scheduling using Triple Graph Grammars and Linear Progamming. Ongoing Master’s Thesis, Paderborn University in collaboration with dSpace

A series of recurring manual tests have to be executed. A test manager has to create a test schedule assigning test items to developers. Developers are only available for this purpose a few hours a week due to other responsibilities. Developers are also on vacation now and then… … and might not have the required expertise for all tasks.

slide-8
SLIDE 8

A Real-World Example: Metamodels

3

duration: EInt Execution Area Task Responsibility Person hours: EInt week: WEEKS Availability

slide-9
SLIDE 9

A Real-World Example: Metamodels

3

duration: EInt Execution Area Task Responsibility Person hours: EInt week: WEEKS Availability

There are predefined areas and people in charge of these areas.

slide-10
SLIDE 10

A Real-World Example: Metamodels

3

duration: EInt Execution Area Task Responsibility Person hours: EInt week: WEEKS Availability

There are predefined areas and people in charge of these areas. A test schedule maps executions to availabilities.

slide-11
SLIDE 11

A Real-World Example: Allocation Rules

4

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

slide-12
SLIDE 12

A Real-World Example: Allocation Rules

4

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

In general, anyone can do anything as long as they have the time for it…

slide-13
SLIDE 13

A Real-World Example: Allocation Rules

5

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

ar:Area r:Responsibility p’:Person

slide-14
SLIDE 14

A Real-World Example: Allocation Rules

5

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

ar:Area r:Responsibility p’:Person

Only test things that are not in your area of responsibility?

slide-15
SLIDE 15

A Real-World Example: Allocation Rules

6

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

ar:Area r:Responsibility p’:Person

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

ar:Area r:Responsibility

slide-16
SLIDE 16

A Real-World Example: Allocation Rules

6

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

ar:Area r:Responsibility p’:Person

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

ar:Area r:Responsibility

Or perhaps being an expert makes you the best tester possible?

slide-17
SLIDE 17

A Real-World Example: Allocation Rules

7

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

ar:Area r:Responsibility p’:Person t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

ar:Area r:Responsibility

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

e’:Execution a’:Availability

slide-18
SLIDE 18

A Real-World Example: Allocation Rules

7

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

ar:Area r:Responsibility p’:Person t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

ar:Area r:Responsibility

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

e’:Execution a’:Availability

Should the same person test as many executions of the same task as possible? Or is this a terrible idea?

slide-19
SLIDE 19

A Real-World Example: Allocation Rules

8

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

ar:Area r:Responsibility p’:Person

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

ar:Area r:Responsibility t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

e’:Execution a’:Availability

slide-20
SLIDE 20

Similar Application Domains

9

slide-21
SLIDE 21

Similar Application Domains

9

  • 1. Allocation Engineering:
  • Tasks to resources
  • Programs to ECUs
  • Functions to nodes in a network
slide-22
SLIDE 22

Similar Application Domains

9

  • 1. Allocation Engineering:
  • Tasks to resources
  • Programs to ECUs
  • Functions to nodes in a network
  • 2. Traceability Maintenance:
  • Suggest traceability links
  • Check manually created traceability links
  • Flag “suspect links” after changes
slide-23
SLIDE 23

Similar Application Domains

9

  • 1. Allocation Engineering:
  • Tasks to resources
  • Programs to ECUs
  • Functions to nodes in a network
  • 2. Traceability Maintenance:
  • Suggest traceability links
  • Check manually created traceability links
  • Flag “suspect links” after changes
  • 3. Model Synchronisation:
  • Start with existing, independently

created models

  • Identify inconsistencies
slide-24
SLIDE 24

Our Approach

10

Erhan Leblebici, Anthony Anjorin, Andy Schürr:
 Inter-model Consistency Checking Using Triple Graph Grammars and Linear Optimization Techniques. FASE 2017: 191-207 Erhan Leblebici:
 Inter-Model Consistency Checking and Restoration with Triple Graph Grammars. PhD Thesis, Darmstadt University of Technology, Germany 2018

2017: 2018:

Nils Weidmann:
 Consistency Management via a Combination of Triple Graph Grammars and Integer Linear Programming. Master’s Thesis, Paderborn University, Germany 2018

2018:

Erhan Leblebici:
 Towards a Graph Grammar-Based Approach to Inter-Model Consistency Checks with Traceability Support. Bx@ETAPS 2016: 35-39

2016:

slide-25
SLIDE 25

Our Approach

10

Erhan Leblebici, Anthony Anjorin, Andy Schürr:
 Inter-model Consistency Checking Using Triple Graph Grammars and Linear Optimization Techniques. FASE 2017: 191-207 Erhan Leblebici:
 Inter-Model Consistency Checking and Restoration with Triple Graph Grammars. PhD Thesis, Darmstadt University of Technology, Germany 2018

2017: 2018:

Nils Weidmann:
 Consistency Management via a Combination of Triple Graph Grammars and Integer Linear Programming. Master’s Thesis, Paderborn University, Germany 2018

2018:

Erhan Leblebici:
 Towards a Graph Grammar-Based Approach to Inter-Model Consistency Checks with Traceability Support. Bx@ETAPS 2016: 35-39

2016:

slide-26
SLIDE 26

Our Approach

10

Erhan Leblebici, Anthony Anjorin, Andy Schürr:
 Inter-model Consistency Checking Using Triple Graph Grammars and Linear Optimization Techniques. FASE 2017: 191-207 Erhan Leblebici:
 Inter-Model Consistency Checking and Restoration with Triple Graph Grammars. PhD Thesis, Darmstadt University of Technology, Germany 2018

2017: 2018:

Nils Weidmann:
 Consistency Management via a Combination of Triple Graph Grammars and Integer Linear Programming. Master’s Thesis, Paderborn University, Germany 2018

2018:

Erhan Leblebici:
 Towards a Graph Grammar-Based Approach to Inter-Model Consistency Checks with Traceability Support. Bx@ETAPS 2016: 35-39

2016:

Basic idea of how to perform consistency checking with TGGs

slide-27
SLIDE 27

Our Approach

11

Erhan Leblebici, Anthony Anjorin, Andy Schürr:
 Inter-model Consistency Checking Using Triple Graph Grammars and Linear Optimization Techniques. FASE 2017: 191-207 Erhan Leblebici:
 Inter-Model Consistency Checking and Restoration with Triple Graph Grammars. PhD Thesis, Darmstadt University of Technology, Germany 2018

2017: 2018:

Nils Weidmann:
 Consistency Management via a Combination of Triple Graph Grammars and Integer Linear Programming. Master’s Thesis, Paderborn University, Germany 2018

2018:

Erhan Leblebici:
 Towards a Graph Grammar-Based Approach to Inter-Model Consistency Checks with Traceability Support. Bx@ETAPS 2016: 35-39

2016:

Full details, implementation, and evaluation in eMoflon

slide-28
SLIDE 28

Our Approach

12

Erhan Leblebici, Anthony Anjorin, Andy Schürr:
 Inter-model Consistency Checking Using Triple Graph Grammars and Linear Optimization Techniques. FASE 2017: 191-207 Erhan Leblebici:
 Inter-Model Consistency Checking and Restoration with Triple Graph Grammars. PhD Thesis, Darmstadt University of Technology, Germany 2018

2017: 2018:

Nils Weidmann:
 Consistency Management via a Combination of Triple Graph Grammars and Integer Linear Programming. Master’s Thesis, Paderborn University, Germany 2018

2018:

Erhan Leblebici:
 Towards a Graph Grammar-Based Approach to Inter-Model Consistency Checks with Traceability Support. Bx@ETAPS 2016: 35-39

2016:

Remaining formal proofs, industrial case with Siemens

slide-29
SLIDE 29

Our Approach

13

Erhan Leblebici, Anthony Anjorin, Andy Schürr:
 Inter-model Consistency Checking Using Triple Graph Grammars and Linear Optimization Techniques. FASE 2017: 191-207 Erhan Leblebici:
 Inter-Model Consistency Checking and Restoration with Triple Graph Grammars. PhD Thesis, Darmstadt University of Technology, Germany 2018

2017: 2018:

Nils Weidmann:
 Consistency Management via a Combination of Triple Graph Grammars and Integer Linear Programming. Master’s Thesis, Paderborn University, Germany 2018

2018:

Erhan Leblebici:
 Towards a Graph Grammar-Based Approach to Inter-Model Consistency Checks with Traceability Support. Bx@ETAPS 2016: 35-39

2016:

Generalisation of the approach to

  • ther consistency management

tasks (work in progress)

slide-30
SLIDE 30

Step 1: Collect all Candidates

14

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

ar:Area r:Responsibility p’:Person

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

ar:Area r:Responsibility t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

e’:Execution a’:Availability

slide-31
SLIDE 31

Step 1: Collect all Candidates

14

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

ar:Area r:Responsibility p’:Person

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

ar:Area r:Responsibility t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

e’:Execution a’:Availability

Use allocation rules (derived from a TGG) to create all possible correspondence links.

slide-32
SLIDE 32

Step 1: Collect all Candidates

14

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

ar:Area r:Responsibility p’:Person

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

ar:Area r:Responsibility t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

e’:Execution a’:Availability

Use allocation rules (derived from a TGG) to create all possible correspondence links.

slide-33
SLIDE 33

Step 1: Collect all Candidates

14

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

ar:Area r:Responsibility p’:Person

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

ar:Area r:Responsibility t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

e’:Execution a’:Availability

Use allocation rules (derived from a TGG) to create all possible correspondence links. While these links are

  • nly candidates, they

still make sense locally

slide-34
SLIDE 34

Step 1: Collect all Candidates

14

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

ar:Area r:Responsibility p’:Person

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

ar:Area r:Responsibility t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

e’:Execution a’:Availability

Use allocation rules (derived from a TGG) to create all possible correspondence links. While these links are

  • nly candidates, they

still make sense locally This step requires a necessary and sufficient condition for termination!

slide-35
SLIDE 35

Step 1: Collect all Candidates

14

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

ar:Area r:Responsibility p’:Person

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

ar:Area r:Responsibility t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

e’:Execution a’:Availability

Use allocation rules (derived from a TGG) to create all possible correspondence links. While these links are

  • nly candidates, they

still make sense locally This step exploits an incremental graph pattern matcher This step requires a necessary and sufficient condition for termination!

slide-36
SLIDE 36

Step 2: Derive ILP

15

slide-37
SLIDE 37

Step 2: Derive ILP

15

slide-38
SLIDE 38

Step 2: Derive ILP

15

max ⃗ c ⋅ ⃗ x A ⃗ x ≤ ⃗ b

slide-39
SLIDE 39

Step 2: Derive ILP

16

max ⃗ c ⋅ ⃗ x A ⃗ x ≤ ⃗ b

Which candidates will be part of the solution?

⃗ x ∈ ℤn

2

slide-40
SLIDE 40

Step 2: Derive ILP

17

max ⃗ c ⋅ ⃗ x A ⃗ x ≤ ⃗ b

Domain-specific weights for each candidate

⃗ c ∈ ℝn

slide-41
SLIDE 41

Step 2: Derive ILP

17

max ⃗ c ⋅ ⃗ x A ⃗ x ≤ ⃗ b

Domain-specific weights for each candidate

⃗ c ∈ ℝn

E.g., prefer assigning multiple executions of the same task to the same person

slide-42
SLIDE 42

Step 2: Derive ILP

18

max ⃗ c ⋅ ⃗ x A ⃗ x ≤ ⃗ b

Constraints to ensure that the chosen solution is in the language of the TGG.

slide-43
SLIDE 43

Step 2: Derive ILP

19

max ⃗ c ⋅ ⃗ x A ⃗ x ≤ ⃗ b

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

e’:Execution a’:Availability

slide-44
SLIDE 44

Step 2: Derive ILP

19

max ⃗ c ⋅ ⃗ x A ⃗ x ≤ ⃗ b

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

e’:Execution a’:Availability

E.g, let’s assume all candidates for creating this link are:

x1, x2, x3

slide-45
SLIDE 45

Step 2: Derive ILP

19

max ⃗ c ⋅ ⃗ x A ⃗ x ≤ ⃗ b

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

e’:Execution a’:Availability

E.g, let’s assume all candidates for creating this link are:

x1, x2, x3

This candidate requires at least one of them to exist:

x4 ⇒ x1 ∨ x2 ∨ x3 x4 ≤ x1 + x2 + x3

slide-46
SLIDE 46

Step 2: Derive ILP

19

max ⃗ c ⋅ ⃗ x A ⃗ x ≤ ⃗ b

t:Task p:Person e:Execution a:Availability

e.duration ≤ a.hours ++

e’:Execution a’:Availability

E.g, let’s assume all candidates for creating this link are:

x1, x2, x3

This candidate requires at least one of them to exist:

x4 ⇒ x1 ∨ x2 ∨ x3 x4 ≤ x1 + x2 + x3

All such inequalities are collected to form:

A ∈ ℝm×n, b ∈ ℝn

slide-47
SLIDE 47

Step 3: Solve (Optimise) ILP and Interpret Solution

20

max ⃗ c ⋅ ⃗ x A ⃗ x ≤ ⃗ b

⃗ x *

slide-48
SLIDE 48

Step 3: Solve (Optimise) ILP and Interpret Solution

20

max ⃗ c ⋅ ⃗ x A ⃗ x ≤ ⃗ b

⃗ x *

This step exploits mature ILP solvers

slide-49
SLIDE 49

Step 3: Solve (Optimise) ILP and Interpret Solution

21

⃗ x *

slide-50
SLIDE 50

Step 3: Solve (Optimise) ILP and Interpret Solution

21

⃗ x *

slide-51
SLIDE 51

Step 3: Solve (Optimise) ILP and Interpret Solution

21

⃗ x *

slide-52
SLIDE 52

Step 3: Solve (Optimise) ILP and Interpret Solution

21

⃗ x *

Our approach is tolerant in the sense that we can determine partial solutions (all variables are set to 0 in the worst case)

slide-53
SLIDE 53

Ongoing and Future Work

22

Operation Source Corr Target CC mark create mark CO mark mark mark FWD_OPT mark create create BWD_OPT create create mark

slide-54
SLIDE 54

Ongoing and Future Work

22

Operation Source Corr Target CC mark create mark CO mark mark mark FWD_OPT mark create create BWD_OPT create create mark

Our initial focus (Consistency Check via correspondence link creation)

slide-55
SLIDE 55

Ongoing and Future Work

23

Operation Source Corr Target CC mark create mark CO mark mark mark FWD_OPT mark create create BWD_OPT create create mark

Check Only: Check existing triple for consistency

slide-56
SLIDE 56

Ongoing and Future Work

24

Operation Source Corr Target CC mark create mark CO mark mark mark FWD_OPT mark create create BWD_OPT create create mark

Normal initial (batch) fwd and bwd transformations; but now complete, tolerant, and optimal wrt. to an objective function

slide-57
SLIDE 57

Ongoing and Future Work

25

Operation Source Corr Target CC mark create mark CO mark mark mark FWD_OPT mark create create BWD_OPT create create mark

All definitions, proofs, and most parts of the implementation can be formulated generically and configured for each case using the entries in this table!

slide-58
SLIDE 58

Try it out! www.emoflon.org

26