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 条
  • [21] Refactoring, way for software maintenance
    Arora, Madhulika
    Sarangdevot, S.S.
    Rathore, Vikram Singh
    Deegwal, Jitendra
    Arora, Sonia
    International Journal of Computer Science Issues, 2011, 8 (02): : 565 - 570
  • [22] Emerging topics in mining software repositories: Machine learning in software repositories and datasets
    Güemes-Peña D.
    López-Nozal C.
    Marticorena-Sánchez R.
    Maudes-Raedo J.
    Progress in Artificial Intelligence, 2018, 7 (3) : 237 - 247
  • [23] Comparing Configuration Approaches for Dynamic Software Product Lines
    Guedes, Gabriela
    Silva, Carla
    Soares, Monique
    XXXI BRAZILIAN SYMPOSIUM ON SOFTWARE ENGINEERING (SBES 2017), 2017, : 134 - 143
  • [24] Classification of model refactoring approaches
    Mohamed, Maddeh
    Romdhani, Mohamed
    Ghedira, Khaled
    JOURNAL OF OBJECT TECHNOLOGY, 2009, 8 (06): : 143 - 158
  • [25] Comparing Repositories Visually with RepoGrams
    Rozenberg, Daniel
    Beschastnikh, Ivan
    Kosmale, Fabian
    Poser, Valerie
    Becker, Heiko
    Palyart, Marc
    Murphy, Gail C.
    13TH WORKING CONFERENCE ON MINING SOFTWARE REPOSITORIES (MSR 2016), 2016, : 109 - 120
  • [26] Application of Software Analytics Techniques in Software Repositories
    de Oliveira Rodrigues, Bruno Rafael
    Parreiras, Fernando Silva
    ABAKOS, 2018, 6 (02): : 36 - 54
  • [27] REPOSITORIES FOR SOFTWARE REUSE - THE SOFTWARE INFORMATION BASE
    CONSTANTOPOULOS, P
    DOERR, M
    VASSILIOU, Y
    INFORMATION SYSTEM DEVELOPMENT PROCESS, 1993, 30 : 285 - 307
  • [28] Software engineering knowledge repositories
    Jedlitschka, A
    Nick, M
    EMPIRICAL METHODS AND STUDIES IN SOFTWARE ENGINEERING: EXPERIENCE FROM ESERNET, 2003, 2765 : 55 - 80
  • [29] Querying Versioned Software Repositories
    Christopeit, Dietrich
    Boehlen, Michael
    Kanne, Carl-Christian
    Mazeika, Arturas
    ADVANCES IN DATABASES AND INFORMATION SYSTEMS, 2011, 6909 : 42 - 55
  • [30] Mining Open Software Repositories
    Alonso Abad, Jesus
    Lopez Nozal, Carlos
    Maudes Raedo, Jesus M.
    ERCIM NEWS, 2014, (99): : 23 - 24