Comparing approaches to analyze refactoring activity on software repositories

Comparing approaches to analyze refactoring activity on software repositories
复制标题

比较分析软件存储库重构活动的方法

DOI:
10.1016/j.jss.2012.10.040
复制
发表时间:
2013
期刊:
J. Syst. Softw.
影响因子:
--
通讯作者:
Brittany Johnson
Brittany Johnson
中科院分区:
--
文献类型:
--
作者:
Gustavo Soares;Rohit Gheyi;E. Murphy;Brittany Johnson

文献摘要

参考文献

被引文献

相似文献

一些方法已经被用来调查关于开发人员如何重构他们的代码的证据,重构活动是否可以减少错误数量,或者提高开发人员的生产率。然而,在之前的研究中,有一些相互矛盾的证据。例如,一些调查发现,与其他研究不同,有证据表明,如果重构变化的数量在前一时间段增加,缺陷数量就会减少。他们使用了不同的方法来评估重构活动。他们中的一些人通过使用手动分析、提交消息或动态分析来识别软件存储库中保留提交的行为的转换。其他人则专注于通过使用手动检查或静态分析来确定在两个程序之间应用了哪些重构。在这项工作中,我们基于手动分析、提交消息(Ratzinger方法)和动态分析(SafeRefactor方法)比较了三种不同的方法,以检测从行为保留的角度来看,一对版本是否决定了重构。此外,我们比较了两种方法(手动分析和Ref-Finder),以确定在每对版本中执行了哪些重构。我们通过在随机选择的40对JHotDraw版本和20对ApacheCommon Collection的样本中评估它们的准确性、精确度和召回率来执行这两种比较。虽然手动分析在两种比较中都提供了最好的结果,但它的可扩展性不如自动方法。Ratzinger的方法简单快速,但召回率较低;不同的是,SafeRefactor能够检测到大多数应用的重构,尽管其测试生成后端的限制导致某些类型的主题的精确值较低。在我们的评估中,Ref-Finder的准确率和召回率较低。
Some approaches have been used to investigate evidence on how developers refactor their code, whether refactorings activities may decrease the number of bugs, or improve developers’ productivity. However, there are some contradicting evidence in previous studies. For instance, some investigations found evidence that if the number of refactoring changes increases in the preceding time period the number of defects decreases, different from other studies. They have used different approaches to evaluate refactoring activities. Some of them identify committed behavior-preserving transformations in software repositories by using manual analysis, commit messages, or dynamic analysis. Others focus on identifying which refactorings are applied between two programs by using manual inspection or static analysis. In this work, we compare three different approaches based on manual analysis, commit message (Ratzinger's approach) and dynamic analysis (SafeRefactor's approach) to detect whether a pair of versions determines a refactoring, in terms of behavioral preservation. Additionally, we compare two approaches (manual analysis and Ref-Finder) to identify which refactorings are performed in each pair of versions. We perform both comparisons by evaluating their accuracy, precision, and recall in a randomly selected sample of 40 pairs of versions of JHotDraw, and 20 pairs of versions of Apache Common Collections. While the manual analysis presents the best results in both comparisons, it is not as scalable as the automated approaches. Ratzinger's approach is simple and fast, but presents a low recall; differently, SafeRefactor is able to detect most applied refactorings, although limitations in its test generation backend results for some kinds of subjects in low precision values. Ref-Finder presented a low precision and recall in our evaluation.
DOI: 10.1145/1449764.1449787
发表时间: 2008-10
期刊: Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
影响因子: --
作者:
Max Schäfer;Torbjörn Ekman;O. Moor
通讯作者: Max Schäfer;Torbjörn Ekman;O. Moor
DOI: 10.1145/1932682.1869485
发表时间: 2010
影响因子: --
作者:
Schaefer M
通讯作者: Schaefer M