Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning...

61
Henshin: A Model Transformation Language and its Use for Search-Based Model Optimisation in MDEOptimiser Daniel Strüber 1 , Alexandru Burdusel 2 , Stefan John 3 , Steffen Zschaler 2 1 Universität Koblenz-Landau, 2 King’s College London, 3 Philipps-Universität Marburg Fachtagung Modellierung February 21, 2018 45 Part 2

Transcript of Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning...

Page 1: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Henshin:A Model Transformation Languageand its Use for Search-Based Model

Optimisation in MDEOptimiser

Daniel Strüber1, Alexandru Burdusel2, Stefan John3, Steffen Zschaler2

1 Universität Koblenz-Landau,2 King’s College London, 3 Philipps-Universität Marburg

Fachtagung ModellierungFebruary 21, 2018

45

Part 2

Page 2: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Overview

Part 1: Henshin: A Guided Tour Language In Action (interactive) Features Applications

Part 2: Henshin in Search-Based Model Optimization Background MDEOptimiser In Action

Case 1: Class Responsibility Assignment (interactive) Case 2: SCRUM Planning (interactive)

46

Page 3: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Optimization problems in software engineering

47

Componentdeployment

Architecturerefactoring

Sprintplanning

Page 4: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Optimization problems in software engineering

48

Componentdeployment

Architecturerefactoring

Sprintplanning

Common task: find an optimal solutionamong a vast number of candidates

Page 5: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Optimization problems in software engineering

49

Componentdeployment

Architecturerefactoring

Sprintplanning

Solutions

Optimality

Page 6: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Optimization problems in software engineering

50

Componentdeployment

Architecturerefactoring

Sprintplanning

Solutions

Optimality

AssignmentClasses→ Packages

Page 7: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Optimization problems in software engineering

51

Componentdeployment

Architecturerefactoring

Sprintplanning

Solutions

Optimality

AssignmentClasses→ Packages

max. Cohesionmin. Coupling

Page 8: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Optimization problems in software engineering

52

Componentdeployment

Architecturerefactoring

Sprintplanning

Solutions

Optimality

AssignmentClasses→ Packages

AssignmentWork Items→

Sprints

max. Cohesionmin. Coupling

Page 9: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Optimization problems in software engineering

53

Componentdeployment

Architecturerefactoring

Sprintplanning

Solutions

Optimality

AssignmentClasses→ Packages

AssignmentWork Items→

Sprints

max. Cohesionmin. Coupling

max. Items/Sprint max. Customer

Satisfaction

Page 10: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Optimization problems in software engineering

54

Componentdeployment

Architecturerefactoring

Sprintplanning

Solutions

Optimality

AssignmentClasses→ Packages

AssignmentWork Items→

Sprints

AssignmentComponents→

Hosts

max. Cohesionmin. Coupling

max. Items/Sprintmax. Customer

Satisfaction

Page 11: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Optimization problems in software engineering

55

Componentdeployment

Architecturerefactoring

Sprintplanning

Solutions

Optimality

AssignmentClasses→ Packages

AssignmentWork Items→

Sprints

AssignmentComponents→

Hosts

max. Cohesionmin. Coupling

max. Items/Sprintmax. Customer

Satisfaction

min. Pricemin. Overhead

Page 12: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Example: Class Responsibility Assignment (CRA)

56

Courtesy of Flecket al. [TTC 2016]

Page 13: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Example: Class Responsibility Assignment (CRA)

57

Input model

Courtesy of Fleck et al. [TTC 2016]

Task: Assign methods+attributesto classes

Page 14: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Example: Class Responsibility Assignment (CRA)

58

Input model Example solution

Courtesy of Fleck et al. [TTC 2016]

Task: Assign methods+attributesto classes

Page 15: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Example: Class Responsibility Assignment (CRA)

59

Input model Example solution

Courtesy of Fleck et al. [TTC 2016]

Task: Assign methods+attributesto classes

Page 16: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Example: Class Responsibility Assignment (CRA)

60

Input model Example solution

Courtesy of Fleck et al. [TTC 2016]

Task: Assign methods+attributesto classes

Page 17: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Example: Class Responsibility Assignment (CRA)

61

Input model Example solution

Quality

Courtesy of Fleck et al. [TTC 2016]

Task: Assign methods+attributesto classes

Page 18: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Example: Class Responsibility Assignment (CRA)

62

Input model Example solution

Quality

Courtesy of Fleck et al. [TTC 2016]

Task: Assign methods+attributesto classes

Page 19: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Example: Class Responsibility Assignment (CRA)

63

Input model Example solution

Quality

Courtesy of Fleck et al. [TTC 2016]

Task: Assign methods+attributesto classes

Objective combining cohesion + coupling

Page 20: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Example: Class Responsibility Assignment (CRA)Fitness function

64

Courtesy of Flecket al. [TTC 2016]

Page 21: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Example: Class Responsibility Assignment (CRA)Fitness function

65

Courtesy of Flecket al. [TTC 2016]

Page 22: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

66

Problem: Search space usually too large to enumerate all solutions Solution: Guided search can explore space more efficiently than humans

Mutation Crossover Selection

Fitnesscriteria

based on

Genetic algorithm

Search-based software engineering

Page 23: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

67

Problem: Search space usually too large to enumerate all solutions Solution: Guided search can explore space more efficiently than humans

Mutation Crossover Selection

Fitnesscriteria

based on

Genetic algorithm

Cost: Search algorithms need to be customized to problem at hand; substantial expertise required

Search-based software engineering

Page 24: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Optimalsolutionmodels

Solution: Search-based model optimisation Use models to describe solutions Standard manipulations available (model transformations!) Move optimisation knowledge from humans to tools

68

Domain expert

Problemspecification

Optimalsolutionmodels

has domainknowledge

encodes optimisationknowledge

Optimization tooluses

transformationtechnology

Page 25: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Search-based model optimisation: what‘s needed?

69

Domain expert

Solutionmeta-model

Constraints

Fitness functions

1. What dosolutions look

like?

2. Whatmakes a good

solution?3. How cansolutions be

derived?

Optimization tool

Optimalsolutionmodels

has domainknowledge

encodes optimisationknowledge

uses modelingtechnology

Page 26: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Overview

Part 1: Henshin: A Guided Tour Language In Action (interactive) Features Applications

Part 2: Henshin in Search-Based Model Optimization Background MDEOptimiser In Action

Case 1: Class Responsibility Assignment (interactive) Case 2: SCRUM Planning (interactive)

70

Page 27: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

MDE Optimiser Multi-objective optimization Directly over models (no separate solution encoding) Specification language + kernel Uses Henshin to specify evolutionary operators

71

Page 28: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

MDE Optimiser

72

Domain expert

Solutionmeta-model

Constraints

Fitness functions

Domainknowledge

MOEAFramework

MDEOptimiser

Optimalsolutionmodels

.moptfile

Mutation operator

Henshin

Cross-overoperator

Page 29: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Problem specification in MDEOptimiser: CRA

Page 30: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Pre-defined mutation rules for CRA

74

Page 31: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Pre-defined objective function for CRA

75

Page 32: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Pre-defined constraint for CRA

76

Page 33: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Pre-defined constraint for CRA

77

Solution‘s „fitness“ w.r.t. a constraint:How far is the solution away from fulfilling the constraint?

Page 34: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Problem specification in MDEOptimiser: CRA

Page 35: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Problem specification in MDEOptimiser: CRA

„Depth“ of the search,runtime vs. effectivenesstrade-off

Page 36: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Overview

Part 1: Henshin: A Guided Tour Language In Action (interactive) Features Applications

Part 2: Henshin in Search-Based Model Optimization Background MDEOptimiser In Action

Case 1: Class Responsibility Assignment (interactive) Case 2: SCRUM Planning (interactive)

80

Page 37: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

81

MDEOptimiser in action: CRA case

1. Import projects

2. View the specification of CRA case

3. Set up and apply run configuration

4. View created results

5. Design a good mutation operator

Page 38: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

82

MDEOptimiser in action: CRA case

1. Import projects

2. View the specification of CRA case

3. Set up and apply run configuration

4. View created results

5. Design a good mutation operator

Page 39: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

In Eclipse, do File Import… General Existing Projects Into Workspace Next Do Select Archive File Choose optimization-cases.zip By now, you should be an expert on importing projects. :-)

83

Import projects

Page 40: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

84

MDEOptimiser in action: CRA case

1. Import projects

2. View the specification of CRA case

3. Set up and apply run configuration

4. View created results

5. Design a good mutation operator

Page 41: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

85

View the specification of CRA case

In the Package Explorer, navigate to project uk.ac.kcl.mdeoptimise.cra.solutions, folder src/models.cra

Have a look at the files:

MDEOptimiser spec: cra-solution.moptmeta-model: architectureCRA.ecorefive input models: TTC_InputRDG_<A-E>.xmiobjective function: MaximiseCRA.xtendconstraint: NoClasslessFeatures.xtendmutation operators: craEvolvers.henshin_diagram

Page 42: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

86

MDEOptimiser in action: CRA case

1. Import projects

2. View the specification of CRA case

3. Set up and apply run configuration

4. View created results

5. Design a good mutation operator

Page 43: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

87

Set up and apply run configurationTo execute cra-solution.mopt, create a new run configuration: Click on the triangle next to the Run Icon,

select Run Configurations… Right click on MDEOptimiser Search,

select New. As Name for theconfiguration, enter: CRA Do Browse Workspace ->

Select Source cra-solution.mopt In the Classpath tab, add the

current project as a User Entry, using Add Projects… Hit Apply and Run. If everything

works correctly, you will seeconsole output like on the right.

Page 44: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

88

MDEOptimiser in action: CRA case

1. Import projects

2. View the specification of CRA case

3. Set up and apply run configuration

4. View created results

5. Design a good mutation operator

Page 45: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

89

View created results

After approximately 15 seconds, therun is finished: No new console outputs,„Terminate“ switch has turned gray.

Results are in a newly created folder:In the Package Explorer, click on mde-results,hit F5 (refresh) and find the folder.

Open overall-results.txt. This shows theexecution time and an overview of thebest solution with its CRA index.

Page 46: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

90

MDEOptimiser in action: CRA case

1. Import projects

2. View the specification of CRA case

3. Set up and apply run configuration

4. View created results

5. Design a good mutation operator

Page 47: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

91

Design a good mutation operator

Problem: Search is time-consuming.Solution: Improve the search by designing good evolutionaryoperators.

A mutation operator m1 is better than a mutationoperator m2, if the solutions found using m1 are betterthan those found using m2 (assuming an otherwiseequal configuration).

Task: Design a better mutation operator for the CRA casethan the given one.

Reference values:

Hint: What are desirable structures from the perspectiveof the objective function, and how to create them?

Model A B C D E

CRA 1.6 2.2 1.8 2.4 -11.6

Page 48: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Overview

Part 1: Henshin: A Guided Tour Language In Action (interactive) Features Applications

Part 2: Henshin in Search-Based Model Optimization Background MDEOptimiser In Action

Case 1: Class Responsibility Assignment (interactive) Case 2: SCRUM Planning (interactive)

92

Page 49: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

SCRUM Planning

93

Have a backlog of workitems for differentcustomers.Need to allocate workitems to sprints.

Goals: Be fast andkeep customers satisfied.Multi-objective optimisation

problem: pareto front instead of one best solution

Page 50: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

SCRUM Planning

Henshin - Gabriele Taentzer 94

Meta-modelStakeholder 1

Backlog

Item AImp: 3Eff: 10

Item DImp: 5Eff: 30

Item BImp: 3Eff: 10

Item EImp: 3Eff: 15

Item CImp: 3Eff: 10

Item FImp: 1Eff: 15

Example model(without sprints)

Stakeholder 2

Page 51: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

SCRUM Planning: Objectives and constraints

Henshin - Gabriele Taentzer 95

Backlog

Example model(without sprints)

Constraint 1: Numberof sprints is below a given maximum

Constraint 2: Every workitem is assigned to a sprint.

Objective 2: Maximizecustomer satisfaction -> next slide

Objective 1: Sprints areas balanced as possible.Stakeholder 1

Stakeholder 2

Item AImp: 3Eff: 10

Item DImp: 5Eff: 30

Item BImp: 3Eff: 10

Item EImp: 3Eff: 15

Item CImp: 3Eff: 10

Item FImp: 1Eff: 15

Page 52: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

SCRUM Planning: Customer satisfaction index

96

Low means good:Indicates low standard deviation

Sprint 1 Capacity: 28 Sprint 2 Capacity: 27

Sprint 1 Capacity: 28 Sprint 2 Capacity: 27

Page 53: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

SCRUM Planning: Customer satisfaction index

97𝑐𝑐𝑐𝑐𝑐𝑐 𝑝𝑝 = 𝑐𝑐𝑠𝑠𝑠𝑠.𝑠𝑠𝑑𝑑𝑣𝑣𝑐𝑐∈𝑝𝑝.𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐(𝑐𝑐𝑠𝑠𝑠𝑠.𝑠𝑠𝑑𝑑𝑣𝑣𝑐𝑐∈𝑝𝑝.𝑐𝑐𝑝𝑝𝑐𝑐𝑠𝑠𝑠𝑠𝑐𝑐𝑐𝑐 (𝑐𝑐𝑠𝑠𝑠𝑠(𝑐𝑐, 𝑐𝑐)))

𝑐𝑐𝑠𝑠𝑠𝑠 𝑐𝑐, 𝑐𝑐 = ∑𝑠𝑠∈𝑐𝑐.𝑠𝑠𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐,𝑠𝑠.𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐=𝑐𝑐 𝑐𝑐. 𝑐𝑐𝑖𝑖𝑝𝑝𝑖𝑖𝑖𝑖𝑠𝑠𝑠𝑠𝑖𝑖𝑐𝑐𝑑𝑑Satisfaction of customer c in sprint s

Customer satisfaction index of plan p

Sprint 1 Capacity: 28 Sprint 2 Capacity: 27

Page 54: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Problem specification in MDEOptimiser: SCRUM

Page 55: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

99

MDEOptimiser in action: SCRUM case

1. View the specification of SCRUM case

2. Set up and apply run configuration

3. View created results

Page 56: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

100

View the specification of the SCRUM case

In the Package Explorer, navigate to project uk.ac.kcl.mdeoptimise.scrum.planning.solutions, folder src/models.scrum

Have a look at the files:

MDEOptimiser spec: scrum-planning.moptmeta-model: planning.ecoreinput models: input directoryobjective functions: MinimiseSprintEffortDeviation.xtend

and MinimiseCustomerSatisfactionIndex.xtendconstraints: HasTheAllowedMaximalNumberOfSprints.xtend

and HasNoUnassignedWorkItems.xtendmutation operators: sprint-repair.henshin_diagram

Page 57: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

101

MDEOptimiser in action: SCRUM case

1. View the specification of SCRUM case

2. Set up and apply run configuration

3. View created results

Page 58: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Set up and apply run configuration

Similar to the CRA case, create a new configurationName: SCRUMSource: scrum-planning.moptMake sure to add the corresponding classpath entry:

Page 59: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

103

MDEOptimiser in action: SCRUM case

1. View the specification of SCRUM case

2. Set up and apply run configuration

3. View created results

Page 60: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

104

View created results

Results are, again, in a newly created folder:In the Package Explorer, click on mde-results,hit F5 (refresh) and find the folder.

Open overall-results.txt. This shows theexecution time and an overview of thebest solutions with their objective values.

Since we have multiple solutions ingeneral, an image file batch-0-pareto-front.jpeg is generatedshowing the pareto front.

Page 61: Henshin: A Model Transformation Language and its Use for ... Part 2.pdf · Case 2: SCRUM Planning (interactive) 46. Optimization problems in software engineering 47 Component deployment

Summary of Part 2

105

Further information:www.eclipse.org/henshinmde-optimiser.github.io