• DocumentCode
    1312623
  • Title

    Clone Management for Evolving Software

  • Author

    Nguyen, Hoan Anh ; Nguyen, Tung Thanh ; Pham, Nam H. ; Al-Kofahi, Jafar ; Nguyen, Tien N.

  • Author_Institution
    Iowa State Univ., Ames, IA, USA
  • Volume
    38
  • Issue
    5
  • fYear
    2012
  • Firstpage
    1008
  • Lastpage
    1026
  • Abstract
    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.
  • Keywords
    Java; program compilers; JSync; abstract syntax trees; change propagation; clone management tool; code clone management; code fragments; evolving software; software systems; source code; structural characteristic vectors; tree editing scripts; Cloning; Databases; Feature extraction; Merging; Software systems; Synchronization; Vegetation; Clone management; clone consistency analysis; clone merging; clone synchronization;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.2011.90
  • Filename
    6007141