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 条
  • [31] Ubiquitous, decentralized, and evolving software: Challenges for software engineering
    Ghezzi, C
    GRAPH TRANSFORMATIONS, PROCEEDINGS, 2002, 2505 : 1 - 5
  • [32] A Study of Software Clone Detection Techniques for Better Software Maintenance and Reliability
    Ralhan, Chavi
    Malik, Navneet
    2021 INTERNATIONAL CONFERENCE ON COMPUTING SCIENCES (ICCS 2021), 2021, : 249 - 253
  • [33] Software Clone Detection Using Clustering Approach
    Joshi, Bikash
    Budhathoki, Puskar
    Woon, Wei Lee
    Svetinovic, Davor
    NEURAL INFORMATION PROCESSING, PT II, 2015, 9490 : 520 - 527
  • [34] Clone Detection in Reuse of Software Technical Documentation
    Koznov, Dmitrij
    Luciv, Dmitry
    Basit, Hamid Abdul
    Lieh, Ouh Eng
    Smirnov, Mikhail
    PERSPECTIVES OF SYSTEM INFORMATICS, PSI 2015, 2016, 9609 : 170 - 185
  • [35] Micro-clones in Evolving Software
    Mondal, Manishankar
    Roy, Chanchal K.
    Schneider, Kevin A.
    2018 25TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION AND REENGINEERING (SANER 2018), 2018, : 50 - 60
  • [36] Coherent Software Cities Supporting Comprehension of Evolving Software Systems
    Steinbrueckner, Frank
    2010 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, 2010,
  • [37] Safety analysis of an evolving software architecture
    de Lemos, R
    FIFTH IEEE INTERNATIONAL SYMPOSIUM ON HIGH ASSURANCE SYSTEMS ENGINEERING, PROCEEDINGS, 2000, : 159 - 168
  • [38] Specifying features of an evolving software system
    Tun, Thein Than
    Trew, Tim
    Jackson, Michael
    Laney, Robin
    Nuseibeh, Bashar
    SOFTWARE-PRACTICE & EXPERIENCE, 2009, 39 (11): : 973 - 1002
  • [39] Addressing the Challenges of Software Growth and Rapidly Evolving Software Technologies
    Heil, Joe W.
    NAVAL ENGINEERS JOURNAL, 2010, 122 (04) : 45 - 58
  • [40] KERIS: evolving software with extensible modules
    Zenger, M
    JOURNAL OF SOFTWARE MAINTENANCE AND EVOLUTION-RESEARCH AND PRACTICE, 2005, 17 (05): : 333 - 362