Clone Management for Evolving Software

被引:64
|
作者
Hoan Anh Nguyen [1 ]
Tung Thanh Nguyen [1 ]
Pham, Nam H. [1 ]
Al-Kofahi, Jafar [1 ]
Nguyen, Tien N. [1 ]
机构
[1] Iowa State Univ, Ames, IA 50011 USA
基金
美国国家科学基金会;
关键词
Clone management; clone consistency analysis; clone synchronization; clone merging; CODE; DUPLICATION; ALGORITHMS;
D O I
10.1109/TSE.2011.90
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Recent research results suggest a need for code clone management. In this paper, we introduce JSync, a novel clone management tool. JSync provides two main functions to support developers in being aware of the clone relation among code fragments as software systems evolve and in making consistent changes as they create or modify cloned code. JSync represents source code and clones as (sub) trees in Abstract Syntax Trees, measures code similarity based on structural characteristic vectors, and describes code changes as tree editing scripts. The key techniques of JSync include the algorithms to compute tree editing scripts, to detect and update code clones and their groups, to analyze the changes of cloned code to validate their consistency, and to recommend relevant clone synchronization and merging. Our empirical study on several real-world systems shows that JSync is efficient and accurate in clone detection and updating, and provides the correct detection of the defects resulting from inconsistent changes to clones and the correct recommendations for change propagation across cloned code.
引用
收藏
页码:1008 / 1026
页数:19
相关论文
共 50 条
  • [1] Scalable and Incremental Clone Detection for Evolving Software
    Nguyen, Tung Thanh
    Nguyen, Hoan Anh
    Al-Kofahi, Jafar M.
    Pham, Nam H.
    Nguyen, Tien N.
    [J]. 2009 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, CONFERENCE PROCEEDINGS, 2009, : 491 - 494
  • [2] Frontiers of Software Clone Management
    Koschke, Rainer
    [J]. 2008 FRONTIERS OF SOFTWARE MAINTENANCE, 2008, : 119 - 128
  • [3] 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
  • [4] 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):
  • [5] 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
  • [6] CLONE-3 - PLASMID DRAWING AND CLONE MANAGEMENT SOFTWARE PROGRAM FOR MICROCOMPUTERS
    PETERSON, EA
    WARD, DF
    [J]. BIOTECHNIQUES, 1990, 8 (06) : 690 - 693
  • [7] Tool Support for Managing Clone Refactorings to Facilitate Code Review in Evolving Software
    Chen, Zhiyuan
    Mohanavilasam, Maneesh
    Kwon, Young-Woo
    Song, Myoungkyu
    [J]. 2017 IEEE 41ST ANNUAL COMPUTER SOFTWARE AND APPLICATIONS CONFERENCE (COMPSAC), VOL 1, 2017, : 288 - 297
  • [8] WORKING WITH CLONE SOFTWARE
    LISKIN, M
    [J]. PERSONAL COMPUTING, 1987, 11 (05): : 39 - &
  • [9] The Vision of Software Clone Management: Past, Present, and Future (Keynote Paper)
    Roy, Chanchal K.
    Zibran, Minhaz F.
    Koschke, Rainer
    [J]. 2014 SOFTWARE EVOLUTION WEEK - IEEE CONFERENCE ON SOFTWARE MAINTENANCE, REENGINEERING, AND REVERSE ENGINEERING (CSMR-WCRE), 2014, : 18 - +
  • [10] Evolving Software
    Mens, Tom
    Klein, Jacques
    [J]. ERCIM NEWS, 2012, (88): : 8 - 9