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 条
  • [41] Evolving Software Systems Towards Adaptability
    Amoui, Mehdi
    16TH WORKING CONFERENCE ON REVERSE ENGINEERING (WCRE 2009), 2009, : 299 - 302
  • [42] Evolving Decision Trees for the Categorization of Software
    Hosic, Jasenko
    Tauritz, Daniel R.
    Mulder, Samuel A.
    2014 38TH ANNUAL IEEE INTERNATIONAL COMPUTER SOFTWARE AND APPLICATIONS CONFERENCE WORKSHOPS (COMPSACW 2014), 2014, : 337 - 342
  • [43] Software release planning for evolving systems
    Saliu, Omolade
    Ruhe, Guenther
    INNOVATIONS IN SYSTEMS AND SOFTWARE ENGINEERING, 2005, 1 (02) : 189 - 204
  • [44] MANAGING EVOLVING HARDWARE AND SOFTWARE REQUIREMENTS
    O'Donnell, Steven J.
    Zarcone, Antonino
    2009 IEEE AUTOTESTCON, 2009, : 128 - +
  • [45] MAINTAINING CONFIGURATIONS OF EVOLVING SOFTWARE SYSTEMS
    NARAYANASWAMY, K
    SCACCHI, W
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1987, 13 (03) : 324 - 334
  • [46] Evolving Software Building Blocks with FINCH
    Orlov, Michael
    PROCEEDINGS OF THE 2017 GENETIC AND EVOLUTIONARY COMPUTATION CONFERENCE COMPANION (GECCO'17 COMPANION), 2017, : 1539 - 1540
  • [47] AN ARCHITECTURAL BASIS FOR EVOLVING SOFTWARE SYSTEMS
    LEARY, JR
    JOURNAL OF SYSTEMS AND SOFTWARE, 1995, 30 (1-2) : 27 - 43
  • [48] Software change impacts - An evolving perspective
    Bohner, SA
    INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, PROCEEDINGS, 2002, : 263 - 272
  • [49] RAPIDLY EVOLVING SOFTWARE AND THE OVERSEE ENVIRONMENT
    WARTIK, S
    SIGPLAN NOTICES, 1987, 22 (01): : 77 - 83
  • [50] Operator interface software keeps evolving
    Cowan, J
    CONTROL ENGINEERING, 1997, 44 (03) : 40 - 41