Historical perspective of code clone refactorings in evolving software

被引:0
|
作者
Kanwal, Jaweria [1 ,2 ]
Maqbool, Onaiza [2 ]
Basit, Hamid Abdul [3 ]
Sindhu, Muddassar Azam [2 ]
Inoue, Katsuro [4 ]
机构
[1] Natl Univ Moderns Languages, Software Engn Dept, Islamabad, Pakistan
[2] Quaid I Azam Univ, Comp Sci Dept, Islamabad, Pakistan
[3] Prince Sultan Univ, Coll Comp & Informat Sci, Riyadh, Saudi Arabia
[4] Osaka Univ, Grad Sch Informat Sci & Technol, Osaka, Japan
来源
PLOS ONE | 2022年 / 17卷 / 12期
关键词
CONTEXT;
D O I
10.1371/journal.pone.0277216
中图分类号
O [数理科学和化学]; P [天文学、地球科学]; Q [生物科学]; N [自然科学总论];
学科分类号
07 ; 0710 ; 09 ;
摘要
Cloning in software is generally perceived as a threat to its maintenance and that is why it needs to be managed properly. Understanding clones from a historical perspective is essential for effective clone management. Analysis of code refactorings performed on clones in previous releases will help developers in taking decisions about clone refactoring in future releases. In this paper we perform a longitudinal study on the evolution of clone refactorings in various versions of five software systems. To perform a systematic study on clone refactoring evolution, we define clone evolution patterns for studying refactorings in a formal notation. Our results show that only a small proportion of code clones are refactored between the versions and most of the refactorings are inconsistent within clone classes. Moreover, clone refactorings may cause clone removal. Analysis of the source code of refactored clones reveals similar reasons of inconsistent refactorings and clone removal for five Java systems. This analysis will help in devising appropriate strategies for managing clone refactorings in software and hence provide foundation for devising better clone management tools.
引用
收藏
页数:26
相关论文
共 50 条
  • [31] Prioritizing refactorings for security-critical code
    Abid, Chaima
    Alizadeh, Vahid
    Kessentini, Marouane
    Dhaouadi, Mouna
    Kazman, Rick
    [J]. AUTOMATED SOFTWARE ENGINEERING, 2021, 28 (02)
  • [32] A Code Inspection Tool by Mining Recurring Changes in Evolving Software
    Fish, Alex
    Thuy Linh Nguyen
    Song, Myoungkyu
    [J]. 6TH INTERNATIONAL WORKSHOP ON SOFTWARE MINING (SOFTWAREMINING), 2017, : 48 - 51
  • [33] Evolving Software Trace Links between Requirements and Source Code
    Rahimi, Mona
    Cleland-Huang, Jane
    [J]. 2019 IEEE/ACM 10TH INTERNATIONAL WORKSHOP ON SOFTWARE AND SYSTEMS TRACEABILITY (SST 2019), 2019, : 12 - 12
  • [34] Evolving software trace links between requirements and source code
    Rahimi, Mona
    Cleland-Huang, Jane
    [J]. EMPIRICAL SOFTWARE ENGINEERING, 2018, 23 (04) : 2198 - 2231
  • [35] Mining Performance Regression Inducing Code Changes in Evolving Software
    Luo, Qi
    Poshyvanyk, Denys
    Grechanik, Mark
    [J]. 13TH WORKING CONFERENCE ON MINING SOFTWARE REPOSITORIES (MSR 2016), 2016, : 25 - 36
  • [36] Evolving software trace links between requirements and source code
    Mona Rahimi
    Jane Cleland-Huang
    [J]. Empirical Software Engineering, 2018, 23 : 2198 - 2231
  • [37] CodeSmellExplorer: Tangible Exploration of Code Smells and Refactorings
    Raab, Felix
    [J]. 2012 IEEE SYMPOSIUM ON VISUAL LANGUAGES AND HUMAN-CENTRIC COMPUTING (VL/HCC), 2012, : 261 - 262
  • [38] Prioritizing refactorings for security-critical code
    Chaima Abid
    Vahid Alizadeh
    Marouane Kessentini
    Mouna Dhaouadi
    Rick Kazman
    [J]. Automated Software Engineering, 2021, 28
  • [39] Evolving Concept of Law in Korea: A Historical and Comparative Perspective
    Lee, Eric Yong Joong
    [J]. ASIA PACIFIC LAW REVIEW, 2013, 21 (01) : 77 - 101
  • [40] Recommending Refactorings to Reverse Software Architecture Erosion
    Terra, Ricardo
    Valente, Marco Tulio
    Czarnecki, Krzysztof
    Bigonha, Roberto S.
    [J]. 2012 16TH EUROPEAN CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING (CSMR), 2012, : 335 - 340