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.

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

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.