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 条
  • [21] The evolving object of software development
    Adler, PS
    ORGANIZATION, 2005, 12 (03) : 401 - 435
  • [22] Software architecture for evolving environment
    Kral, Jaroslav
    Zemlicka, Michal
    13TH IEEE INTERNATIONAL WORKSHOP ON SOFTWARE TECHNOLOGY AND ENGINEERING PRACTICE, PROCEEDINGS, 2006, : 49 - +
  • [23] Evolving Patches for Software Repair
    Ackling, Thomas
    Alexander, Brad
    Grunert, Ian
    GECCO-2011: PROCEEDINGS OF THE 13TH ANNUAL GENETIC AND EVOLUTIONARY COMPUTATION CONFERENCE, 2011, : 1427 - 1434
  • [24] Evolving Robot Software and Hardware
    Eiben, A. E.
    2020 IEEE/ACM 15TH INTERNATIONAL SYMPOSIUM ON SOFTWARE ENGINEERING FOR ADAPTIVE AND SELF-MANAGING SYSTEMS, SEAMS, 2020, : 1 - 4
  • [25] Evolving Better Software Parameters
    Langdon, William B.
    Petke, Justyna
    SEARCH-BASED SOFTWARE ENGINEERING, SSBSE 2018, 2018, 11036 : 363 - 369
  • [26] Evolving software agent behaviours
    Maskell, B
    Wilby, M
    IEEE GLOBECOM 1996 - CONFERENCE RECORD, VOLS 1-3: COMMUNICATIONS: THE KEY TO GLOBAL PROSPERITY, 1996, : 90 - 94
  • [27] On managing classes for evolving software
    Li, LW
    SEVENTH INTERNATIONAL WORKSHOP ON PROGRAM COMPREHENSION, PROCEEDINGS, 1999, : 144 - 150
  • [28] CONTROL SOFTWARE IS STILL EVOLVING
    DRAPER, MS
    CONTROL AND INSTRUMENTATION, 1986, 18 (06): : 77 - 77
  • [29] Comparing Software Bugs in Clone and Non-clone Code: An Empirical Study
    Islam, Judith F.
    Mondal, Manishankar
    Roy, Chanchal K.
    Schneider, Kevin A.
    INTERNATIONAL JOURNAL OF SOFTWARE ENGINEERING AND KNOWLEDGE ENGINEERING, 2017, 27 (9-10) : 1507 - 1527
  • [30] Prioritizing Code Clone Detection Results for Clone Management
    Venkatasubramanyam, Radhika D.
    Gupta, Shrinath
    Singh, Himanshu Kumar
    2013 7TH INTERNATIONAL WORKSHOP ON SOFTWARE CLONES (IWSC), 2013, : 30 - 36