Abstract

Refactoring is regarded as an effective way to address the software quality deterioration problem. Although many refactoring approaches have been proposed, there is little work at the package level. This paper proposes to use the community detection technique to refactor the packages of object-oriented software. It uses software class network to represent classes and their dependencies, proposes a genetic algorithm based community detection algorithm to obtain the optimised package structures, and finally provides a list of classes that should be moved by comparing the optimised package structures with the real package structures. The empirical evaluation of the proposed approach has been performed in two open source Java projects, and the benefits of our approach are illustrated in comparison with the only one software refactoring approach at the package level viz. adaptive k-nearest neighbour algorithm, and other five community detection algorithms used in the complex networks literature.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call