SlideShare a Scribd company logo
Playing with Refactoring
Identifying Extract Class
Opportunities through Game Theory
Gabriele Bavota*, Rocco Oliveto*, Andrea De Lucia*
Giuliano Antoniol✝, Yann-Gaël Guéhéneuc✝
* DMI, University of Salerno, Fisciano (SA), Italy
✝ DGIGL, École Polytechnique de Montreál, Québec, Canada
contents
Context
Refactoring Software Systems:Why and How
GameTheory Background
The Prisoner’s Dilemma
GameTheory meets SE
Game-based Extract Class Refactoring
GameTheory
Background
The Prisoner’s Dilemma
GameTheory
- is a branch of mathematics widely applied in
the social sciences
- capture behavior in strategic situations, in
which an individual’s success in making
choices depends on the choices of others
- a game consists of:
• a set of players (2 or more);
• a set of moves available to those players;
• payoffs for each combination of moves
The Prisoner’s Dilemma
TomTom
confess not confess
Sally
confess (5, 5) (0, 7)
Sally
not confess (7, 0) (4, 4)
The Prisoner’s Dilemma
TomTom
confess not confess
Sally
confess (5, 5) (0, 7)
Sally
not confess (7, 0) (4, 4)
NASHEQUILIBRIUM
GameTheory:Summarizing
- Natural application in strategic situations
- How to find a compromise between
contrasting goals (Nash Equilibrium)
- In software engineering:
• optimal solution to many problems
involves finding a compromise between
contrasting goals, e.g., create classes
with high cohesion and low coupling
Context
Refactoring Software Systems: Why and How
Refactoring...Why?
- Changing software without modifying its
external behaviour
- Improve non-functional attributes of the
software? - Software evolution ... continuous changes
- Changes cause a drift of the original design,
reducing its quality, e.g., Class Cohesion
Focusing on Class Cohesion
- How strongly related and focused the
various responsibilites of a class are
- High cohesion is desiderable...easier
maintenance
class
class
class
class
class
class
class
- Programmers often add wrong
responsibilities to a class
- The class becomes too complex and its
cohesion decreases
Focusing on Class Cohesion
- How strongly related and focused the
various responsibilites of a class are
- High cohesion is desiderable...easier
maintenance
classclass
class Extract Class Refactoring
Splitting a class with many responsibilities
into different classes
GameTheory
meets SE
Game-based Extract Class Refactoring
Playing with Refactoring
Modelling a
non-cooperative game
..choosing the better strategy
T
S
m2 m3 m4 N
m2
m3
m4
N
m1
m5
(-1.00, -1.00)
(-1.00, -1.00)
(0.49, 0.22) (0.70, 0.80) (0.70, 0.50)
(-0.49, -0.24) (0.21, 0.58) (0.21, 0.28)
(-0.21, -0.58)(-0.70, -0.80) (-1.00, -1.00) (0.00, -0.30)
(0.29, 0.22)(-0.20, 0.00) (0.50, 0.80) (-1.00, -1.00)
Playing with Refactoring
Modelling a
non-cooperative game
..choosing the better strategy
T
S
m2 m3 m4 N
m2
m3
m4
N
m1
m5
(-1.00, -1.00)
(-1.00, -1.00)
(0.49, 0.22) (0.70, 0.80) (0.70, 0.50)
(-0.49, -0.24) (0.21, 0.58) (0.21, 0.28)
(-0.21, -0.58)(-0.70, -0.80) (-1.00, -1.00) (0.00, -0.30)
(0.29, 0.22)(-0.20, 0.00) (0.50, 0.80) (-1.00, -1.00)
(-1, -1) if i = j
Playing with Refactoring
Modelling a
non-cooperative game
..choosing the better strategy
T
S
m2 m3 m4 N
m2
m3
m4
N
m1
m5
(-1.00, -1.00)
(-1.00, -1.00)
(0.49, 0.22) (0.70, 0.80) (0.70, 0.50)
(-0.49, -0.24) (0.21, 0.58) (0.21, 0.28)
(-0.21, -0.58)(-0.70, -0.80) (-1.00, -1.00) (0.00, -0.30)
(0.29, 0.22)(-0.20, 0.00) (0.50, 0.80) (-1.00, -1.00)
0.70 = sim(m1, m2) - sim(m1, m4)
Playing with Refactoring
Modelling a
non-cooperative game
..choosing the better strategy
T
S
m2 m3 m4 N
m2
m3
m4
N
m1
m5
(-1.00, -1.00)
(-1.00, -1.00)
(0.49, 0.22) (0.70, 0.80) (0.70, 0.50)
(-0.49, -0.24) (0.21, 0.58) (0.21, 0.28)
(-0.21, -0.58)(-0.70, -0.80) (-1.00, -1.00) (0.00, -0.30)
(0.29, 0.22)(-0.20, 0.00) (0.50, 0.80) (-1.00, -1.00)
0.70 = sim(m1, m2) - sim(m1, m4)
COHESION COUPLING
Playing with Refactoring
Modelling a
non-cooperative game
..choosing the better strategy
T
S
m2 m3 m4 N
m2
m3
m4
N
m1
m5
(-1.00, -1.00)
(-1.00, -1.00)
(0.49, 0.22) (0.70, 0.80) (0.70, 0.50)
(-0.49, -0.24) (0.21, 0.58) (0.21, 0.28)
(-0.21, -0.58)(-0.70, -0.80) (-1.00, -1.00) (0.00, -0.30)
(0.29, 0.22)(-0.20, 0.00) (0.50, 0.80) (-1.00, -1.00)
Playing with Refactoring
Modelling a
non-cooperative game
..choosing the better strategy
T
S
m2 m3 m4 N
m2
m3
m4
N
m1
m5
(-1.00, -1.00)
(-1.00, -1.00)
(0.49, 0.22) (0.70, 0.80) (0.70, 0.50)
(-0.49, -0.24) (0.21, 0.58) (0.21, 0.28)
(-0.21, -0.58)(-0.70, -0.80) (-1.00, -1.00) (0.00, -0.30)
(0.29, 0.22)(-0.20, 0.00) (0.50, 0.80) (-1.00, -1.00)
NASHEQUILIBRIUM
Playing with Refactoring
Modelling a
non-cooperative game
..choosing the better strategy
T
S
m2 m3 m4 N
m2
m3
m4
N
m1
m5
(-1.00, -1.00)
(-1.00, -1.00)
(0.49, 0.22) (0.70, 0.80) (0.70, 0.50)
(-0.49, -0.24) (0.21, 0.58) (0.21, 0.28)
(-0.21, -0.58)(-0.70, -0.80) (-1.00, -1.00) (0.00, -0.30)
(0.29, 0.22)(-0.20, 0.00) (0.50, 0.80) (-1.00, -1.00)
NASHEQUILIBRIUM
Playing with Refactoring
Modelling a
non-cooperative game
..choosing the better strategy
T
S
m2 m3
m4
N
m2
m3
m4
N
m1
m5
(-1.00, -1.00)
(-1.00, -1.00)
(0.49, 0.22) (0.70, 0.80) (0.70, 0.50)
(-0.49, -0.24) (0.21, 0.58) (0.21, 0.28)
(-0.21, -0.58)(-0.70, -0.80) (-1.00, -1.00) (0.00, -0.30)
(0.29, 0.22)(-0.20, 0.00) (0.50, 0.80) (-1.00, -1.00)
NASHEQUILIBRIUM
Playing with Refactoring
Modelling a
non-cooperative game
..choosing the better strategy
T
S
m2 m3
m4
N
m2
m3
m4
N
m1
m5
(-1.00, -1.00)
(-1.00, -1.00)
(0.49, 0.22) (0.70, 0.80) (0.70, 0.50)
(-0.49, -0.24) (0.21, 0.58) (0.21, 0.28)
(-0.21, -0.58)(-0.70, -0.80) (-1.00, -1.00) (0.00, -0.30)
(0.29, 0.22)(-0.20, 0.00) (0.50, 0.80) (-1.00, -1.00)
NASHEQUILIBRIUM
Playing with Refactoring
Modelling a
non-cooperative game
..choosing the better strategy
T
S m3 N
m3
N
m1
m5
(-1.00, -1.00) (0.21, 0.28)
(0.29, 0.22) (-1.00, -1.00)
m4
m2
Playing with Refactoring
Modelling a
non-cooperative game
..choosing the better strategy
T
S m3 N
m3
N
m1
m5
(-1.00, -1.00) (0.21, 0.28)
(0.29, 0.22) (-1.00, -1.00)
m4
m2
NASHEQUILIBRIUM
Playing with Refactoring
Modelling a
non-cooperative game
..choosing the better strategy
T
S
m3
N
m3
N
m1
m5
(-1.00, -1.00) (0.21, 0.28)
(0.29, 0.22) (-1.00, -1.00)
m4
m2
NASHEQUILIBRIUM
Playing with Refactoring
Modelling a
non-cooperative game
..choosing the better strategy
T
S N
m3
N
m1
m5
(-1.00, -1.00) (0.21, 0.28)
(0.29, 0.22) (-1.00, -1.00)
m4
m2
NASHEQUILIBRIUM
m3
Preliminary
Evaluation
Game-based Extract Class Refactoring
Case Study Design
Goal Systems Metrics
RQ1 Comparison with Pareto Optimum ArgoUML, JHotDraw F-measure
RQ2
Comparison with others Extract
Class Refactoring approaches
ArgoUML, JHotDraw F-measure
Experiment Execution
method1
...
methodn
attr1
...
attrm
Original
Class C1
method1
...
methods
attr1
...
attrm
Original
Class C1
method1
...
methodn
attr1
...
attrm
Original Class
Ci
method1
...
methodn
attr1
...
attrm
Original
Class C1
method1
...
methody
attr1
...
attrm
Original
Class C1
method1
...
methodn+s
attr1
...
attrm+k
Mutated Class
Ci + Cj
method1
...
methodn
attr1
...
attrm
Original
Class C1
method1
...
methods
attr1
...
attrm
Original
Class C1
method1
...
methodk
attr1
...
attrh
Refactored
Class C'i
Input
original system
System mutation
Comparision of orginal
and mutated system
mutated system
refactored system
System
refactoring
results
88%
F-MEASURE
Results
System
Game
Theory
Pareto
Optimum
MaxFlow
MinCut
ArgoUML 90% 88% 77%
JHotDraw 85% 82% 76%
Conclusion and
FutureWork
Conclusion...
The first recommendation system that
exploits game theory techniques
Conclusion...
Preliminary evaluation of the
proposed approach
...and FutureWork
investigate about other kind of games, e.g., cooperative game
direct comparison with clustering
and search-based approach
apply Game Theory to Software Re-modularization
Thank you!
Questions and/or
comments
Gabriele Bavota
PhD Student
DMI - University of Salerno
gbavota@unisa.it

More Related Content

PDF
Eight Regression Algorithms
PDF
Csmr wcre14.ppt
PDF
Csmr wcre14.ppt
PDF
Entering the world of Serious Games with Python
PDF
ICSM10b.ppt
PDF
Dynamic Programming and Reinforcement Learning applied to Tetris Game
PPTX
Overview of Reinforcement Learning with Tic Tac Toe and Python
PDF
(Alpha) Zero to Elo (with demo)
Eight Regression Algorithms
Csmr wcre14.ppt
Csmr wcre14.ppt
Entering the world of Serious Games with Python
ICSM10b.ppt
Dynamic Programming and Reinforcement Learning applied to Tetris Game
Overview of Reinforcement Learning with Tic Tac Toe and Python
(Alpha) Zero to Elo (with demo)

More from Yann-Gaël Guéhéneuc (20)

PDF
Rights, Copyrights, and Licences for Software Engineering Research v1.0
PDF
Evolution and Examples of Java Features, from Java 1.7 to Java 24
PDF
Projects Panama, Valhalla, and Babylon: Java is the New Python v0.9
PDF
Consequences and Principles of Software Quality v1.0
PDF
About Empirical Studies on Software Quality
PDF
A (Very) Brief History of Ethics for Software Engineering Research
PDF
Project Manifold (Forwarding and Delegation)
PDF
Reviewing Processes and Tools, Publishers, Open Access
PDF
Custom Annotations in Java with Project Lombok
PDF
Some Pitfalls with Python and Their Possible Solutions v1.0
PDF
Advice for writing a NSERC Discovery grant application v0.5
PDF
Ptidej Architecture, Design, and Implementation in Action v2.1
PDF
Evolution and Examples of Java Features, from Java 1.7 to Java 22
PDF
Consequences and Principles of Software Quality v0.3
PDF
Some Pitfalls with Python and Their Possible Solutions v0.9
PDF
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
PDF
An Explanation of the Halting Problem and Its Consequences
PDF
Are CPUs VMs Like Any Others? v1.0
PDF
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
PDF
Well-known Computer Scientists v1.0.2
Rights, Copyrights, and Licences for Software Engineering Research v1.0
Evolution and Examples of Java Features, from Java 1.7 to Java 24
Projects Panama, Valhalla, and Babylon: Java is the New Python v0.9
Consequences and Principles of Software Quality v1.0
About Empirical Studies on Software Quality
A (Very) Brief History of Ethics for Software Engineering Research
Project Manifold (Forwarding and Delegation)
Reviewing Processes and Tools, Publishers, Open Access
Custom Annotations in Java with Project Lombok
Some Pitfalls with Python and Their Possible Solutions v1.0
Advice for writing a NSERC Discovery grant application v0.5
Ptidej Architecture, Design, and Implementation in Action v2.1
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Consequences and Principles of Software Quality v0.3
Some Pitfalls with Python and Their Possible Solutions v0.9
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Halting Problem and Its Consequences
Are CPUs VMs Like Any Others? v1.0
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Well-known Computer Scientists v1.0.2
Ad

Recently uploaded (20)

PPTX
Oracle Fusion HCM Cloud Demo for Beginners
PDF
Designing Intelligence for the Shop Floor.pdf
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Nekopoi APK 2025 free lastest update
PPTX
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
PDF
Website Design Services for Small Businesses.pdf
PDF
Autodesk AutoCAD Crack Free Download 2025
DOCX
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
PDF
iTop VPN Free 5.6.0.5262 Crack latest version 2025
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Cost to Outsource Software Development in 2025
PPTX
AMADEUS TRAVEL AGENT SOFTWARE | AMADEUS TICKETING SYSTEM
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
17 Powerful Integrations Your Next-Gen MLM Software Needs
PDF
How AI/LLM recommend to you ? GDG meetup 16 Aug by Fariman Guliev
PPTX
Weekly report ppt - harsh dattuprasad patel.pptx
PDF
CapCut Video Editor 6.8.1 Crack for PC Latest Download (Fully Activated) 2025
PDF
Digital Systems & Binary Numbers (comprehensive )
PDF
Download FL Studio Crack Latest version 2025 ?
PDF
AutoCAD Professional Crack 2025 With License Key
Oracle Fusion HCM Cloud Demo for Beginners
Designing Intelligence for the Shop Floor.pdf
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Nekopoi APK 2025 free lastest update
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
Website Design Services for Small Businesses.pdf
Autodesk AutoCAD Crack Free Download 2025
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
iTop VPN Free 5.6.0.5262 Crack latest version 2025
CHAPTER 2 - PM Management and IT Context
Cost to Outsource Software Development in 2025
AMADEUS TRAVEL AGENT SOFTWARE | AMADEUS TICKETING SYSTEM
Design an Analysis of Algorithms II-SECS-1021-03
17 Powerful Integrations Your Next-Gen MLM Software Needs
How AI/LLM recommend to you ? GDG meetup 16 Aug by Fariman Guliev
Weekly report ppt - harsh dattuprasad patel.pptx
CapCut Video Editor 6.8.1 Crack for PC Latest Download (Fully Activated) 2025
Digital Systems & Binary Numbers (comprehensive )
Download FL Studio Crack Latest version 2025 ?
AutoCAD Professional Crack 2025 With License Key
Ad

Icsm10b.ppt

  • 1. Playing with Refactoring Identifying Extract Class Opportunities through Game Theory Gabriele Bavota*, Rocco Oliveto*, Andrea De Lucia* Giuliano Antoniol✝, Yann-Gaël Guéhéneuc✝ * DMI, University of Salerno, Fisciano (SA), Italy ✝ DGIGL, École Polytechnique de Montreál, Québec, Canada
  • 2. contents Context Refactoring Software Systems:Why and How GameTheory Background The Prisoner’s Dilemma GameTheory meets SE Game-based Extract Class Refactoring
  • 4. GameTheory - is a branch of mathematics widely applied in the social sciences - capture behavior in strategic situations, in which an individual’s success in making choices depends on the choices of others - a game consists of: • a set of players (2 or more); • a set of moves available to those players; • payoffs for each combination of moves
  • 5. The Prisoner’s Dilemma TomTom confess not confess Sally confess (5, 5) (0, 7) Sally not confess (7, 0) (4, 4)
  • 6. The Prisoner’s Dilemma TomTom confess not confess Sally confess (5, 5) (0, 7) Sally not confess (7, 0) (4, 4) NASHEQUILIBRIUM
  • 7. GameTheory:Summarizing - Natural application in strategic situations - How to find a compromise between contrasting goals (Nash Equilibrium) - In software engineering: • optimal solution to many problems involves finding a compromise between contrasting goals, e.g., create classes with high cohesion and low coupling
  • 9. Refactoring...Why? - Changing software without modifying its external behaviour - Improve non-functional attributes of the software? - Software evolution ... continuous changes - Changes cause a drift of the original design, reducing its quality, e.g., Class Cohesion
  • 10. Focusing on Class Cohesion - How strongly related and focused the various responsibilites of a class are - High cohesion is desiderable...easier maintenance class class class class class class class - Programmers often add wrong responsibilities to a class - The class becomes too complex and its cohesion decreases
  • 11. Focusing on Class Cohesion - How strongly related and focused the various responsibilites of a class are - High cohesion is desiderable...easier maintenance classclass class Extract Class Refactoring Splitting a class with many responsibilities into different classes
  • 13. Playing with Refactoring Modelling a non-cooperative game ..choosing the better strategy T S m2 m3 m4 N m2 m3 m4 N m1 m5 (-1.00, -1.00) (-1.00, -1.00) (0.49, 0.22) (0.70, 0.80) (0.70, 0.50) (-0.49, -0.24) (0.21, 0.58) (0.21, 0.28) (-0.21, -0.58)(-0.70, -0.80) (-1.00, -1.00) (0.00, -0.30) (0.29, 0.22)(-0.20, 0.00) (0.50, 0.80) (-1.00, -1.00)
  • 14. Playing with Refactoring Modelling a non-cooperative game ..choosing the better strategy T S m2 m3 m4 N m2 m3 m4 N m1 m5 (-1.00, -1.00) (-1.00, -1.00) (0.49, 0.22) (0.70, 0.80) (0.70, 0.50) (-0.49, -0.24) (0.21, 0.58) (0.21, 0.28) (-0.21, -0.58)(-0.70, -0.80) (-1.00, -1.00) (0.00, -0.30) (0.29, 0.22)(-0.20, 0.00) (0.50, 0.80) (-1.00, -1.00) (-1, -1) if i = j
  • 15. Playing with Refactoring Modelling a non-cooperative game ..choosing the better strategy T S m2 m3 m4 N m2 m3 m4 N m1 m5 (-1.00, -1.00) (-1.00, -1.00) (0.49, 0.22) (0.70, 0.80) (0.70, 0.50) (-0.49, -0.24) (0.21, 0.58) (0.21, 0.28) (-0.21, -0.58)(-0.70, -0.80) (-1.00, -1.00) (0.00, -0.30) (0.29, 0.22)(-0.20, 0.00) (0.50, 0.80) (-1.00, -1.00) 0.70 = sim(m1, m2) - sim(m1, m4)
  • 16. Playing with Refactoring Modelling a non-cooperative game ..choosing the better strategy T S m2 m3 m4 N m2 m3 m4 N m1 m5 (-1.00, -1.00) (-1.00, -1.00) (0.49, 0.22) (0.70, 0.80) (0.70, 0.50) (-0.49, -0.24) (0.21, 0.58) (0.21, 0.28) (-0.21, -0.58)(-0.70, -0.80) (-1.00, -1.00) (0.00, -0.30) (0.29, 0.22)(-0.20, 0.00) (0.50, 0.80) (-1.00, -1.00) 0.70 = sim(m1, m2) - sim(m1, m4) COHESION COUPLING
  • 17. Playing with Refactoring Modelling a non-cooperative game ..choosing the better strategy T S m2 m3 m4 N m2 m3 m4 N m1 m5 (-1.00, -1.00) (-1.00, -1.00) (0.49, 0.22) (0.70, 0.80) (0.70, 0.50) (-0.49, -0.24) (0.21, 0.58) (0.21, 0.28) (-0.21, -0.58)(-0.70, -0.80) (-1.00, -1.00) (0.00, -0.30) (0.29, 0.22)(-0.20, 0.00) (0.50, 0.80) (-1.00, -1.00)
  • 18. Playing with Refactoring Modelling a non-cooperative game ..choosing the better strategy T S m2 m3 m4 N m2 m3 m4 N m1 m5 (-1.00, -1.00) (-1.00, -1.00) (0.49, 0.22) (0.70, 0.80) (0.70, 0.50) (-0.49, -0.24) (0.21, 0.58) (0.21, 0.28) (-0.21, -0.58)(-0.70, -0.80) (-1.00, -1.00) (0.00, -0.30) (0.29, 0.22)(-0.20, 0.00) (0.50, 0.80) (-1.00, -1.00) NASHEQUILIBRIUM
  • 19. Playing with Refactoring Modelling a non-cooperative game ..choosing the better strategy T S m2 m3 m4 N m2 m3 m4 N m1 m5 (-1.00, -1.00) (-1.00, -1.00) (0.49, 0.22) (0.70, 0.80) (0.70, 0.50) (-0.49, -0.24) (0.21, 0.58) (0.21, 0.28) (-0.21, -0.58)(-0.70, -0.80) (-1.00, -1.00) (0.00, -0.30) (0.29, 0.22)(-0.20, 0.00) (0.50, 0.80) (-1.00, -1.00) NASHEQUILIBRIUM
  • 20. Playing with Refactoring Modelling a non-cooperative game ..choosing the better strategy T S m2 m3 m4 N m2 m3 m4 N m1 m5 (-1.00, -1.00) (-1.00, -1.00) (0.49, 0.22) (0.70, 0.80) (0.70, 0.50) (-0.49, -0.24) (0.21, 0.58) (0.21, 0.28) (-0.21, -0.58)(-0.70, -0.80) (-1.00, -1.00) (0.00, -0.30) (0.29, 0.22)(-0.20, 0.00) (0.50, 0.80) (-1.00, -1.00) NASHEQUILIBRIUM
  • 21. Playing with Refactoring Modelling a non-cooperative game ..choosing the better strategy T S m2 m3 m4 N m2 m3 m4 N m1 m5 (-1.00, -1.00) (-1.00, -1.00) (0.49, 0.22) (0.70, 0.80) (0.70, 0.50) (-0.49, -0.24) (0.21, 0.58) (0.21, 0.28) (-0.21, -0.58)(-0.70, -0.80) (-1.00, -1.00) (0.00, -0.30) (0.29, 0.22)(-0.20, 0.00) (0.50, 0.80) (-1.00, -1.00) NASHEQUILIBRIUM
  • 22. Playing with Refactoring Modelling a non-cooperative game ..choosing the better strategy T S m3 N m3 N m1 m5 (-1.00, -1.00) (0.21, 0.28) (0.29, 0.22) (-1.00, -1.00) m4 m2
  • 23. Playing with Refactoring Modelling a non-cooperative game ..choosing the better strategy T S m3 N m3 N m1 m5 (-1.00, -1.00) (0.21, 0.28) (0.29, 0.22) (-1.00, -1.00) m4 m2 NASHEQUILIBRIUM
  • 24. Playing with Refactoring Modelling a non-cooperative game ..choosing the better strategy T S m3 N m3 N m1 m5 (-1.00, -1.00) (0.21, 0.28) (0.29, 0.22) (-1.00, -1.00) m4 m2 NASHEQUILIBRIUM
  • 25. Playing with Refactoring Modelling a non-cooperative game ..choosing the better strategy T S N m3 N m1 m5 (-1.00, -1.00) (0.21, 0.28) (0.29, 0.22) (-1.00, -1.00) m4 m2 NASHEQUILIBRIUM m3
  • 27. Case Study Design Goal Systems Metrics RQ1 Comparison with Pareto Optimum ArgoUML, JHotDraw F-measure RQ2 Comparison with others Extract Class Refactoring approaches ArgoUML, JHotDraw F-measure
  • 28. Experiment Execution method1 ... methodn attr1 ... attrm Original Class C1 method1 ... methods attr1 ... attrm Original Class C1 method1 ... methodn attr1 ... attrm Original Class Ci method1 ... methodn attr1 ... attrm Original Class C1 method1 ... methody attr1 ... attrm Original Class C1 method1 ... methodn+s attr1 ... attrm+k Mutated Class Ci + Cj method1 ... methodn attr1 ... attrm Original Class C1 method1 ... methods attr1 ... attrm Original Class C1 method1 ... methodk attr1 ... attrh Refactored Class C'i Input original system System mutation Comparision of orginal and mutated system mutated system refactored system System refactoring results 88% F-MEASURE
  • 31. Conclusion... The first recommendation system that exploits game theory techniques
  • 33. ...and FutureWork investigate about other kind of games, e.g., cooperative game direct comparison with clustering and search-based approach apply Game Theory to Software Re-modularization
  • 34. Thank you! Questions and/or comments Gabriele Bavota PhD Student DMI - University of Salerno gbavota@unisa.it