Tool Support for Managing Clone Refactorings to Facilitate Code Review in Evolving Software

被引:7
|
作者
Chen, Zhiyuan [1 ]
Mohanavilasam, Maneesh [2 ]
Kwon, Young-Woo [2 ]
Song, Myoungkyu [1 ]
机构
[1] Univ Nebraska, Omaha, NE 68182 USA
[2] Utah State Univ, Logan, UT 84322 USA
关键词
EVOLUTION;
D O I
10.1109/COMPSAC.2017.242
中图分类号
TP39 [计算机的应用];
学科分类号
081203 ; 0835 ;
摘要
Developers often perform copy-and-paste activities. This practice causes the similar code fragment (aka code clones) to be scattered throughout a code base. Refactoring for clone removal is beneficial, preventing clones from having negative effects on software quality, such as hidden bug propagation and unintentional inconsistent changes. However, recent research has provided evidence that factoring out clones is not always to reduce the risk of introducing defects, and it is often difficult or impossible to remove clones using standard refactoring techniques. To investigate which or how clones can be refactored, developers typically spend a significant amount of their time managing individual clone instances or clone groups scattered across a large code base. To address the problem, this paper presents a technique for managing clone refactorings, Pattern-based clone Refactoring Inspection (PRI), using refactoring pattern templates. By matching the refactoring pattern templates against a code base, it summarizes refactoring changes of clones, and detects the clone instances not consistently factored out as potential anomalies. PRI also provides novel visualization user interfaces specifically designed for inspecting clone refactorings. In the evaluation, PRI analyzes clone instances in six open source projects. It identifies clone refactorings with 94.1% accuracy and detects inconsistent refactorings with 98.4% accuracy. Our results show that PRI should help developers effectively inspect evolving clones and correctly apply refactorings to clone groups.
引用
收藏
页码:288 / 297
页数:10
相关论文
共 18 条
  • [1] Historical perspective of code clone refactorings in evolving software
    Kanwal, Jaweria
    Maqbool, Onaiza
    Basit, Hamid Abdul
    Sindhu, Muddassar Azam
    Inoue, Katsuro
    [J]. PLOS ONE, 2022, 17 (12):
  • [2] CloneMap: A Clone-aware Code Inspection Tool in Evolving Software
    Fish, Alex
    Thuy Linh Nguyen
    Song, Myoungkyu
    [J]. 2018 IEEE INTERNATIONAL CONFERENCE ON ELECTRO/INFORMATION TECHNOLOGY (EIT), 2018, : 368 - 372
  • [3] Tool support for managing repetitive program changes in evolving software
    Epuri, Vamshi Krishna
    Sakala, Sushma
    Ahn, Tae-Hyuk
    Song, Myoungkyu
    [J]. IET SOFTWARE, 2019, 13 (05) : 447 - 455
  • [4] Tool Support for Code Change Inspection with Deep Learning in Evolving Software
    Ayinala, Krishna Teja
    Cheng, Kwok Sun
    Oh, Kwangsung
    Song, Myoungkyu
    [J]. 2020 IEEE INTERNATIONAL CONFERENCE ON ELECTRO INFORMATION TECHNOLOGY (EIT), 2020, : 13 - 17
  • [5] ClemanX: Incremental Clone Detection Tool for Evolving Software
    Nguyen, Tung Thanh
    Nguyen, Hoan Anh
    Pham, Nam H.
    Al-Kofahi, Jafar M.
    Nguyen, Tien N.
    [J]. 2009 31ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, COMPANION VOLUME, 2009, : 437 - 438
  • [6] CloneTracker: Tool Support for Code Clone Management
    Duala-Ekoko, Ekwa
    Robillard, Martin P.
    [J]. ICSE'08 PROCEEDINGS OF THE THIRTIETH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 2008, : 843 - 846
  • [7] 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
  • [8] A software tool to facilitate the development of computerized decision support systems
    Folks, Russell
    Manatunga, Daya
    Garcia, Ernest
    Taylor, Andrew
    [J]. JOURNAL OF NUCLEAR MEDICINE, 2012, 53
  • [9] Code Inspection Support for Recurring Changes with Deep Learning in Evolving Software
    Ayinala, Krishna Teja
    Cheng, Kwok Sun
    Oh, Kwangsung
    Song, Teukseob
    Song, Myoungkyu
    [J]. 2020 IEEE 44TH ANNUAL COMPUTERS, SOFTWARE, AND APPLICATIONS CONFERENCE (COMPSAC 2020), 2020, : 931 - 942
  • [10] A tool to support perspective based approach to software code inspection
    Chan, L
    Jiang, K
    Karunasekera, S
    [J]. 2005 Australian Software Engineering Conference, Proceedings, 2005, : 110 - 117