Comparing approaches to analyze refactoring activity on software repositories

被引:38
|
作者
Soares, Gustavo [1 ]
Gheyi, Rohit [1 ]
Murphy-Hill, Emerson [2 ]
Johnson, Brittany [2 ]
机构
[1] Univ Fed Campina Grande, Dept Comp & Syst, BR-58429900 Campina Grande, PB, Brazil
[2] N Carolina State Univ, Dept Comp Sci, Raleigh, NC 27695 USA
关键词
Refactoring; Repository; Manual analysis; Automated analysis;
D O I
10.1016/j.jss.2012.10.040
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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. (c) 2012 Elsevier Inc. All rights reserved.
引用
收藏
页码:1006 / 1022
页数:17
相关论文
共 50 条
  • [11] Mining software repositories
    1600, Japan Society for Software Science and Technology (30):
  • [12] Evaluating Three Approaches to Extracting Fault Data from Software Change Repositories
    Hall, Tracy
    Bowes, David
    Liebchen, Gernot
    Wernick, Paul
    PRODUCT-FOCUSED SOFTWARE PROCESS IMPROVEMENT, 2010, 6156 : 107 - +
  • [13] Beyond the refactoring browser:: Advanced tool support for software refactoring
    Mens, T
    Tourwé, T
    Muñoz, F
    SIXTH INTERNATIONAL WORKSHOP ON PRINCIPLES OF SOFTWARE EVOLUTION, PROCEEDINGS, 2003, : 39 - 44
  • [14] A game of refactoring. Studying the impact of gamification in software refactoring
    Elezi, Leonard
    Sali, Sara
    Demeyer, Serge
    Murgia, Alessandro
    Perez, Javier
    PROCEEDINGS OF THE XP2016 SCIENTIFIC WORKSHOPS, 2016,
  • [15] Improving the Quality of Software by Refactoring
    Kaur, Gurpreet
    Singh, Balraj
    2017 INTERNATIONAL CONFERENCE ON INTELLIGENT COMPUTING AND CONTROL SYSTEMS (ICICCS), 2017, : 185 - 191
  • [16] Drivers for software refactoring decisions
    Helsinki University of Technology, Software Business and Engineering Institute, P.O. Box 9210, 02015 TKK
    ACM Special Interest Group on Software Engineering, 1600, 297-306 (2006):
  • [17] Software Refactoring for System Modernization
    Santos, Bruno M.
    Garcia-Rodriguez de Guzman, Ignacio
    de Camargo, Valter V.
    Piattini, Mario
    Ebert, Christof
    IEEE SOFTWARE, 2018, 35 (06) : 62 - 67
  • [18] Software refactoring side effects
    AbuHassan, Amjad
    Alshayeb, Mohammad
    Ghouti, Lahouari
    JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS, 2024, 36 (01)
  • [19] Effective Software Refactoring Process
    Kaya, Mehmet
    Conley, Shannon
    Othman, Zhala S.
    Varol, Asaf
    2018 6TH INTERNATIONAL SYMPOSIUM ON DIGITAL FORENSIC AND SECURITY (ISDFS), 2018, : 197 - 202
  • [20] Green software: Refactoring approach
    Sehgal, Rajni
    Mehrotra, Deepti
    Nagpal, Renuka
    Sharma, Ramanuj
    JOURNAL OF KING SAUD UNIVERSITY-COMPUTER AND INFORMATION SCIENCES, 2022, 34 (07) : 4635 - 4643