Recode: Software package Refactoring via Community Detection in bipartite Software Networks.

Weifeng Pan,Bing Li,Bo Jiang,Kun Liu
DOI: https://doi.org/10.1142/S0219525914500064
2015-01-01
Advances in Complex Systems
Abstract:It is an intrinsic property of real-world software to evolve, which is usually accompanied by the increase of software complexity and deterioration of software quality. So successful software has to be reconditioned from time to time. Though many refactoring approaches have been proposed, only a few of them are performed at the package level. In this paper, we present a novel approach to refactor the package structure of object-oriented (OO) software. It uses weighted bipartite software networks to represent classes, packages, and their dependencies; it proposes a guidance community detection algorithm (GUIDA) to obtain the optimized package structure; and it finally provides a list of classes as refactoring candidates by comparing the optimized package structure with the real package structure. Through a set of experiments we have shown that the proposed approach is able to identify a majority of classes that experts recognize as refactoring candidates, and the benefits of our approach are illustrated in comparison with other two approaches.
What problem does this paper attempt to address?