![Page 1: ICMT 2016: Search-Based Model Transformations with MOMoT](https://reader036.vdocuments.site/reader036/viewer/2022070603/587102951a28ab5f528b75bd/html5/thumbnails/1.jpg)
Search-Based Model Transformations with MOMoT
http://martin-fleck.github.io/momot/
ICMT, Vienna4th July 2016
A Tool Demonstration
Martin Fleck, Javier Troya, Manuel Wimmer
![Page 2: ICMT 2016: Search-Based Model Transformations with MOMoT](https://reader036.vdocuments.site/reader036/viewer/2022070603/587102951a28ab5f528b75bd/html5/thumbnails/2.jpg)
Problem Statement
2
Solving Complex Optimization Problems
Example: Class Responsibility Assignment Problem Modularization of features into classes
![Page 3: ICMT 2016: Search-Based Model Transformations with MOMoT](https://reader036.vdocuments.site/reader036/viewer/2022070603/587102951a28ab5f528b75bd/html5/thumbnails/3.jpg)
Problem Statement
2
Solving Complex Optimization Problems
Example: Class Responsibility Assignment Problem Modularization of features into classes
1 2 5 15 52 203 …
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 201
100
10,000
1,000,000
100,000,000
10,000,000,000
1,000,000,000,000
100,000,000,000,000
Number of Features
Num
ber o
f Pos
sibili
ties
![Page 4: ICMT 2016: Search-Based Model Transformations with MOMoT](https://reader036.vdocuments.site/reader036/viewer/2022070603/587102951a28ab5f528b75bd/html5/thumbnails/4.jpg)
Metamodel?
Problem Statement
3
Solving Complex Optimization Problems
ClassModel
name : EString
Feature
name : EString
Class
name : EString
features
classes isEncapsulatedBy
dataDep
0..*
0..*
0..*
0..*
0..1
0..*
AttributeMethod
encapsulates
funcDep
![Page 5: ICMT 2016: Search-Based Model Transformations with MOMoT](https://reader036.vdocuments.site/reader036/viewer/2022070603/587102951a28ab5f528b75bd/html5/thumbnails/5.jpg)
Trans-formations?
Problem Statement
3
Solving Complex Optimization Problems
Rule createClass(className: EString)
«preserve»: ClassModel
«forbid»: Classname = className
«create»: Classname = className
«create»
classesclasses
«forbid»
Rule assignFeature(feature: Feature, class: Class) @ClassModel«preserve»feature : Feature
«forbid»: Class
«preserve»class : Class
«create»moduleclass
«forbid»
![Page 6: ICMT 2016: Search-Based Model Transformations with MOMoT](https://reader036.vdocuments.site/reader036/viewer/2022070603/587102951a28ab5f528b75bd/html5/thumbnails/6.jpg)
Problem Statement
3
Solving Complex Optimization Problems
Coupling?Cohesion?
?
![Page 7: ICMT 2016: Search-Based Model Transformations with MOMoT](https://reader036.vdocuments.site/reader036/viewer/2022070603/587102951a28ab5f528b75bd/html5/thumbnails/7.jpg)
Manually solving problems intelligently requires detailed knowledge Effect of transformation rules on output model Conflicting and supporting rules Rule parameterization Rule scheduling: Order of rules Conflicting output characteristics
Problem Statement
3
Solving Complex Optimization Problems
Rule createClass(className: EString)
«preserve»: ClassModel
«forbid»: Classname = className
«create»: Classname = className
«create»
classesclasses
«forbid»
Rule assignFeature(feature: Feature, class: Class) @ClassModel«preserve»feature : Feature
«forbid»: Class
«preserve»class : Class
«create»moduleclass
«forbid»
???
![Page 8: ICMT 2016: Search-Based Model Transformations with MOMoT](https://reader036.vdocuments.site/reader036/viewer/2022070603/587102951a28ab5f528b75bd/html5/thumbnails/8.jpg)
Manually solving problems intelligently requires detailed knowledge Effect of transformation rules on output model Conflicting and supporting rules Rule parameterization Rule scheduling: Order of rules Conflicting output characteristics
Complex problem with large or even infinite transformation space Automatic transformation orchestration
Problem Statement
3
Solving Complex Optimization Problems
Rule createClass(className: EString)
«preserve»: ClassModel
«forbid»: Classname = className
«create»: Classname = className
«create»
classesclasses
«forbid»
Rule assignFeature(feature: Feature, class: Class) @ClassModel«preserve»feature : Feature
«forbid»: Class
«preserve»class : Class
«create»moduleclass
«forbid»
???
![Page 9: ICMT 2016: Search-Based Model Transformations with MOMoT](https://reader036.vdocuments.site/reader036/viewer/2022070603/587102951a28ab5f528b75bd/html5/thumbnails/9.jpg)
Search-Based Model Transformations
4
Overview
Model-DrivenEngineering
(MDE)
Search-BasedOptimization
(SBO)
Search-Based Model Transformations
![Page 10: ICMT 2016: Search-Based Model Transformations with MOMoT](https://reader036.vdocuments.site/reader036/viewer/2022070603/587102951a28ab5f528b75bd/html5/thumbnails/10.jpg)
Aim: Automatic transformation orchestration for complex problems Utilize abstraction capabilities of MDE Benefit from declarative exploration capabilities of SBO methods
Search-Based Model Transformations
5
Overview
![Page 11: ICMT 2016: Search-Based Model Transformations with MOMoT](https://reader036.vdocuments.site/reader036/viewer/2022070603/587102951a28ab5f528b75bd/html5/thumbnails/11.jpg)
Aim: Automatic transformation orchestration for complex problems Utilize abstraction capabilities of MDE Benefit from declarative exploration capabilities of SBO methods
Search-Based Exploration Example: Population-based search method
Search-Based Model Transformations
5
Overview
Population(size = 10)
![Page 12: ICMT 2016: Search-Based Model Transformations with MOMoT](https://reader036.vdocuments.site/reader036/viewer/2022070603/587102951a28ab5f528b75bd/html5/thumbnails/12.jpg)
Aim: Automatic transformation orchestration for complex problems Utilize abstraction capabilities of MDE Benefit from declarative exploration capabilities of SBO methods
Search-Based Exploration Example: Population-based search method
Search-Based Model Transformations
5
Overview
Select krandom(k = 4)
= 1= 3= 2= 4
Population(size = 10)
![Page 13: ICMT 2016: Search-Based Model Transformations with MOMoT](https://reader036.vdocuments.site/reader036/viewer/2022070603/587102951a28ab5f528b75bd/html5/thumbnails/13.jpg)
Aim: Automatic transformation orchestration for complex problems Utilize abstraction capabilities of MDE Benefit from declarative exploration capabilities of SBO methods
Search-Based Exploration Example: Population-based search method
Search-Based Model Transformations
5
Overview
Select krandom(k = 4)
Choose nbest
(n = 2)
= 1= 3= 2= 4
Population(size = 10)
![Page 14: ICMT 2016: Search-Based Model Transformations with MOMoT](https://reader036.vdocuments.site/reader036/viewer/2022070603/587102951a28ab5f528b75bd/html5/thumbnails/14.jpg)
Aim: Automatic transformation orchestration for complex problems Utilize abstraction capabilities of MDE Benefit from declarative exploration capabilities of SBO methods
Search-Based Exploration Example: Population-based search method
Search-Based Model Transformations
5
Overview
Select krandom(k = 4)
Choose nbest
(n = 2)Recombine
= 1= 3= 2= 4
Population(size = 10)
Cut Point
![Page 15: ICMT 2016: Search-Based Model Transformations with MOMoT](https://reader036.vdocuments.site/reader036/viewer/2022070603/587102951a28ab5f528b75bd/html5/thumbnails/15.jpg)
Aim: Automatic transformation orchestration for complex problems Utilize abstraction capabilities of MDE Benefit from declarative exploration capabilities of SBO methods
Search-Based Exploration Example: Population-based search method
Search-Based Model Transformations
5
Overview
Select krandom(k = 4)
Choose nbest
(n = 2)Recombine Mutate
= 1= 3= 2= 4
Population(size = 10)
Cut Point
![Page 16: ICMT 2016: Search-Based Model Transformations with MOMoT](https://reader036.vdocuments.site/reader036/viewer/2022070603/587102951a28ab5f528b75bd/html5/thumbnails/16.jpg)
Aim: Automatic transformation orchestration for complex problems Utilize abstraction capabilities of MDE Benefit from declarative exploration capabilities of SBO methods
Search-Based Exploration Example: Population-based search method
Idea: Define generic encoding based on model transformations Transformation as sequence of transformation units Parameters set automatically and randomly
Search-Based Model Transformations
5
Overview
Select krandom(k = 4)
Choose nbest
(n = 2)Recombine Mutate
= 1= 3= 2= 4
Population(size = 10)
Cut Point
Transformation Units = Decision Variables
rule = createClassname = 'Class A'
rule = assignFeatureclass = Class Afeature = Feature A
Placeholder
rule = createClass
name = 'Class B'
![Page 17: ICMT 2016: Search-Based Model Transformations with MOMoT](https://reader036.vdocuments.site/reader036/viewer/2022070603/587102951a28ab5f528b75bd/html5/thumbnails/17.jpg)
Marrying Optimization and Model Transformations Based on Eclipse platform Eclipse EMF as modeling environment Henshin as graph transformation engine MOEA Framework for SBO algorithms
Search-Based Model Transformations
6
Marrying Optimization and Model Transformations (MOMoT)
MOMoT
Problem Instance Model
Objectives
Constraints
Transformation Rules
Exploration Configuration
Result Models
Objective ValuesGeneric
EncodingSearch-based
ExplorationResult
Generation
Constraint Values
Rule Orchestrations
Exploration Statistics
Objective and Constraint Evaluation
TransformationOrchestration
[1] MOMoT Project: http://martin-fleck.github.io/momot/ [2] Eclipse Modeling Framework: https://eclipse.org/modeling/emf/ [3] Henshin Project: https://www.eclipse.org/henshin/[4] MOEA Framework: http://moeaframework.org/
MOEA
![Page 18: ICMT 2016: Search-Based Model Transformations with MOMoT](https://reader036.vdocuments.site/reader036/viewer/2022070603/587102951a28ab5f528b75bd/html5/thumbnails/18.jpg)
Search-Based Model Transformations
7
Demo
Demo(linked in next slide and available at https://www.youtube.com/watch?v=BQDz6OmxABE
)
![Page 19: ICMT 2016: Search-Based Model Transformations with MOMoT](https://reader036.vdocuments.site/reader036/viewer/2022070603/587102951a28ab5f528b75bd/html5/thumbnails/19.jpg)
Summary Transformation orchestration is a non-trivial task Smart exploration of transformation space to solve complex problems Generic: Problem- and SBO method-agnostic approach Transparent: Input and output provided directly on model level Declarative: Objectives and constraints specified using MDE techniques Supportive: Dedicated configuration language for model engineers
Search-Based Model Transformations
8
Summary
MOMoT
Problem Instance Model
Objectives
Constraints
Transformation Rules
Exploration Configuration
Result Models
Objective ValuesGeneric
EncodingSearch-based
ExplorationResult
Generation
Constraint Values
Rule Orchestrations
Exploration Statistics
Objective and Constraint Evaluation
TransformationOrchestration
![Page 20: ICMT 2016: Search-Based Model Transformations with MOMoT](https://reader036.vdocuments.site/reader036/viewer/2022070603/587102951a28ab5f528b75bd/html5/thumbnails/20.jpg)
Interesting Research Lines Application on out-place transformations Support of memetic algorithms Integration of optimization method languages
Search-Based Model Transformations
9
Further Research
MOMoT
Problem Instance Model
Objectives
Constraints
Transformation Rules
Exploration Configuration
Result Models
Objective ValuesGeneric
EncodingSearch-based
ExplorationResult
Generation
Constraint Values
Rule Orchestrations
Exploration Statistics
Objective and Constraint Evaluation
TransformationOrchestration
![Page 21: ICMT 2016: Search-Based Model Transformations with MOMoT](https://reader036.vdocuments.site/reader036/viewer/2022070603/587102951a28ab5f528b75bd/html5/thumbnails/21.jpg)
Search-Based Model Transformations with MOMoT
http://martin-fleck.github.io/momot/
ICMT, Vienna4th July 2016
A Tool Demonstration
Martin Fleck, Javier Troya, Manuel Wimmer