Extract Package Refactoring in ARIES

16
Extract Package Refactoring in ARIES Fabio Palomba*, Michele Tufano , Gabriele Bavota # , Rocco Oliveto , Andrian Marcus , Denys Poshyvanyk , Andrea De Lucia* * University of Salerno The College of William and Mary # Free University of Bozen-Bolzano University of Molise University of Texas

Transcript of Extract Package Refactoring in ARIES

Extract Package Refactoring in ARIESFabio Palomba*, Michele Tufano❊, Gabriele Bavota#, Rocco Oliveto✢, Andrian Marcus†, Denys Poshyvanyk❊, Andrea De Lucia*

* University of Salerno❊ The College of William and Mary# Free University of Bozen-Bolzano✢ University of Molise† University of Texas

CohesionCoupling

SOFTWARE QUALITY DESIGN DECREASES OVER TIME

How to solve the problem?

Big Bang Software re-modularizationA complete re-organization of the system’s classes into packages

“Big- Bang” re-modularization is not a viable solution since even for modest systems, the

number of changes required to apply it is in the order of thousands of lines of code”

M. Hall, M. Khojaye, N. Walkinshaw, and P. McMinn “Establishing the source code disruption caused by automated remodularization tools”

ICSME 2014

How to solve the problem?

Thus, re-modularization efforts need to be localized,

and aimed at solving specific design issues.

G. Bavota, A. De Lucia, A. Marcus, R. Oliveto“Using Structural and Semantic Measures to Improve Software Modularization”

EMSE

A Graph-theory based Approach for Extract Package Refactoring

A Graph-theory based Approach for Extract Package Refactoring

n classes

Package P

A Graph-theory based Approach for Extract Package Refactoring

class-by-classmatrix construction

c2........

cn

c1

n classes

Package Pc1 c2 ........ Cn

A Graph-theory based Approach for Extract Package Refactoring

class-by-classmatrix construction

c2........

cn

CCBC ICPConceptual Coupling

Between ClassesInformation flow-based

Coupling

c1

n classes

Package Pc1 c2 ........ Cn

A Graph-theory based Approach for Extract Package Refactoring

class-by-classmatrix construction

c2........

cn

CCBC ICPConceptual Coupling

Between ClassesInformation flow-based

Coupling

ci,j = wCCBC · CCBC + wICP · ICP

c1

n classes

Package Pc1 c2 ........ Cn

A Graph-theory based Approach for Extract Package Refactoring

c2........

cn

c1c1 c2 ........ Cn

class-by-class matrixfiltering and transitive clousure

0.8

0.70.5

0.70.6

Chain 1

Chain 2Chain 3

A Graph-theory based Approach for Extract Package Refactoring

c2........

cn

c1c1 c2 ........ Cn

class-by-class matrixfiltering and transitive clousure

0.8

0.70.5

0.70.6

Chain 1

Chain 2Chain 3

A Graph-theory based Approach for Extract Package Refactoring

c2........

cn

c1c1 c2 ........ Cn

class-by-class matrixfiltering and transitive clousure

0.8

0.70.5

0.70.6

Chain 1

Chain 2Chain 3

0.8

0.70.5

0.70.6

Chain 1

Chain 2Chain 3

merging trivialchains

Chain 1

Candidate Package 1

Chain 2 Chain 3

Candidate Package 2

An Eclipse Plugin to Automate Refactoring Operations

Extract Package Refactoring in ARIES

Fabio PalombaUniversity of [email protected]/fpalomba

Michele TufanoThe College of William and Mary

[email protected]/~mtufano/

Q&AThank you!