henshin: a model transformation language and its use for ... part 2.pdf · case 2: scrum planning...
TRANSCRIPT
![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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/33.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/34.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/35.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/36.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/37.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/38.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/39.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/40.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/41.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/42.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/43.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/44.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/45.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/46.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/47.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/48.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/49.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/50.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/51.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/52.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/53.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/54.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/55.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/56.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/57.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/58.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/59.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/60.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071004/5fc1bb3b5e6f6f5fe83f7a5a/html5/thumbnails/61.jpg)
Summary of Part 2
105
Further information:www.eclipse.org/henshinmde-optimiser.github.io