Rank-based refactoring decision support: two studies

Rank-based refactoring decision support: two studies
复制标题

基于排名的重构决策支持:两项研究

DOI:
10.1007/s11334-011-0154-3
复制
发表时间:
2011
影响因子:
1.2
通讯作者:
J. Hayes
J. Hayes
中科院分区:
--
文献类型:
--
作者:
Liming Zhao;J. Hayes

文献摘要

被引文献

相似文献

重构可以提高代码的可维护性,被认为是一种预防性维护活动。大型项目的经理需要在执行重构时决定在哪里应用稀缺资源的方法。缺乏支持这种决定的工具。我们介绍了一个基于等级的软件度量驱动的重构决策支持方法,以协助管理人员。该方法使用各种静态度量来开发加权排名,对需要重构的类或包进行排名。我们进行了两个案例研究来检验该方法的有效性。具体来说,我们想看看决策支持工具是否能在更短的时间内产生与人类分析师/管理人员相似的结果,以便它可以用于增强人类决策。在第一项研究中,我们发现我们的方法识别出需要重构的类,这些类也被人类识别出来。在第二项研究中,使用分层方法来识别在开源项目Tomcat的15个版本中实际重构的包。我们检查了工具的发现和实际重构活动之间的重叠。该工具在包/类水平上达到100/86.7%的召回率。虽然这些研究的规模和范围有限,但这种方法似乎值得进一步研究。
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.