Journal
EMPIRICAL SOFTWARE ENGINEERING
Volume 19, Issue 6, Pages 1617-1664Publisher
SPRINGER
DOI: 10.1007/s10664-013-9256-x
Keywords
Extract class refactoring; Cohesion; Coupling; Graph clustering algorithms
Categories
Funding
- US National Science Foundation [CCF-0845706, CCF-1017263]
- Division of Computing and Communication Foundations
- Direct For Computer & Info Scie & Enginr [1017263] Funding Source: National Science Foundation
Ask authors/readers for more resources
During software evolution the internal structure of the system undergoes continuous modifications. These continuous changes push away the source code from its original design, often reducing its quality, including class cohesion. In this paper we propose a method for automating the Extract Class refactoring. The proposed approach analyzes (structural and semantic) relationships between the methods in a class to identify chains of strongly related methods. The identified method chains are used to define new classes with higher cohesion than the original class, while preserving the overall coupling between the new classes and the classes interacting with the original class. The proposed approach has been first assessed in an artificial scenario in order to calibrate the parameters of the approach. The data was also used to compare the new approach with previous work. Then it has been empirically evaluated on real Blobs from existing open source systems in order to assess how good and useful the proposed refactoring solutions are considered by software engineers and how well the proposed refactorings approximate refactorings done by the original developers. We found that the new approach outperforms a previously proposed approach and that developers find the proposed solutions useful in guiding refactorings.
Authors
I am an author on this paper
Click your name to claim this paper and add it to your profile.
Reviews
Recommended
No Data Available