TY - JOUR
T1 - Rank-based refactoring decision support
T2 - Two studies
AU - Zhao, Liming
AU - Hayes, Jane Huffman
PY - 2011/9
Y1 - 2011/9
N2 - Refactoring can result in code with improved maintainability and is considered a preventive maintenance activity. Managers of large projects need ways to decide where to apply scarce resources when performing refactoring. There is a lack of tools for supporting such decisions. We introduce a rank-based software measure-driven refactoring decision support approach to assist managers. The approach uses various static measures to develop a weighted rank, ranking classes or packages that need refactoring. We undertook two case studies to examine the effectiveness of the approach. Specifically, we wanted to see if the decision support tool yielded results similar to those of human analysts/managers and in less time so that it can be used to augment human decision making. In the first study, we found that our approach identified classes as needing refactoring that were also identified by humans. In the second study, a hierarchical approach was used to identify packages that had actually been refactored in 15 releases of the open source project Tomcat. We examined the overlap between the tool's findings and the actual refactoring activities. The tool reached 100/86.7% recall on the package/class level. Though these studies were limited in size and scope, it appears that this approach is worthy of further examination.
AB - Refactoring can result in code with improved maintainability and is considered a preventive maintenance activity. Managers of large projects need ways to decide where to apply scarce resources when performing refactoring. There is a lack of tools for supporting such decisions. We introduce a rank-based software measure-driven refactoring decision support approach to assist managers. The approach uses various static measures to develop a weighted rank, ranking classes or packages that need refactoring. We undertook two case studies to examine the effectiveness of the approach. Specifically, we wanted to see if the decision support tool yielded results similar to those of human analysts/managers and in less time so that it can be used to augment human decision making. In the first study, we found that our approach identified classes as needing refactoring that were also identified by humans. In the second study, a hierarchical approach was used to identify packages that had actually been refactored in 15 releases of the open source project Tomcat. We examined the overlap between the tool's findings and the actual refactoring activities. The tool reached 100/86.7% recall on the package/class level. Though these studies were limited in size and scope, it appears that this approach is worthy of further examination.
KW - Decision support
KW - Maintainability
KW - Refactoring
KW - Software engineering
UR - http://www.scopus.com/inward/record.url?scp=80255135548&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=80255135548&partnerID=8YFLogxK
U2 - 10.1007/s11334-011-0154-3
DO - 10.1007/s11334-011-0154-3
M3 - Article
AN - SCOPUS:80255135548
SN - 1614-5046
VL - 7
SP - 171
EP - 189
JO - Innovations in Systems and Software Engineering
JF - Innovations in Systems and Software Engineering
IS - 3
ER -