Towards convenient management of software clone codes in practice: an integrated approach

Software code cloning is inevitable during software development and unmanaged cloning practice can create substantial problems for software maintenance and evolution. Current research in the area software clones includes, but is not limited to: finding ways to manage clones; gaining more control over clone generation; and, studying clone evolution and its effects on the evolution of software. In this study, we investigate tools and techniques for detecting, managing, and understanding the evolution of clones, as well as design a convenient tool to make those techniques available to a developer's software development environment. Towards the goal of promoting the practical use of code clone research and to provide better support for managing clones in software systems, we first developed SimEclipse: a clone-aware software development platform, and then, using the tool, we performed a study to investigate the usefulness of using a number clone based technologies in an integrated platform rather than using those discretely. Finally, a small scale user study is performed to evaluate SimEclipse's effectiveness, usability and information management with respect to some pre-defined clone management activities. We believe that both researchers and developers would enjoy and utilize the benefits of using SimEclipse for different aspects of code clone research as well as for managing cloned code in software systems.

[1]  Hajimu Iida,et al.  SHINOBI: A Tool for Automatic Code Clone Detection in the IDE , 2009, 2009 16th Working Conference on Reverse Engineering.

[2]  Chanchal Kumar Roy,et al.  The vision of software clone management: Past, present, and future (Keynote paper) , 2014, 2014 Software Evolution Week - IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE).

[3]  Simon Giesecke,et al.  Generic modelling of code clones , 2006, Duplication, Redundancy, and Similarity in Software.

[4]  Chanchal Kumar Roy,et al.  On the Effectiveness of Simhash for Detecting Near-Miss Clones in Large Scale Software Systems , 2011, 2011 18th Working Conference on Reverse Engineering.

[5]  GrayJeff,et al.  Increasing clone maintenance support by unifying clone detection and refactoring activities , 2012 .

[6]  Muhammed Yasin Bahtiyar JClone: Syntax tree based clone detection for Java , 2010 .

[7]  M. C. De Wit,et al.  Managing clones using dynamic change tracking and resolution: helping developers to cope with changing clone fragments , 2009 .

[8]  Ettore Merlo,et al.  Assessing the benefits of incorporating function clone detection in a development process , 1997, 1997 Proceedings International Conference on Software Maintenance.

[9]  Frederick J. Gravetter,et al.  Essentials of Statistics for the Behavioral Sciences , 1991 .

[10]  Chanchal Kumar Roy,et al.  An automatic framework for extracting and classifying near-miss clone genealogies , 2011, 2011 27th IEEE International Conference on Software Maintenance (ICSM).

[11]  Daqing Hou,et al.  CReN: a tool for tracking copy-and-paste code clones and renaming identifiers consistently in the IDE , 2007, eclipse '07.

[12]  Michael W. Godfrey,et al.  "Cloning Considered Harmful" Considered Harmful , 2006, 2006 13th Working Conference on Reverse Engineering.

[13]  Nils Göde,et al.  Clone removal: fact or fiction? , 2010, IWSC '10.

[14]  Ferosh Jacob,et al.  Actively comparing clones inside the code editor , 2010, IWSC '10.

[15]  D. V. Radhika,et al.  A method for proactive moderation of code clones in IDEs , 2012, 2012 6th International Workshop on Software Clones (IWSC).

[16]  Chanchal Kumar Roy,et al.  IDE-based real-time focused search for near-miss clones , 2012, SAC '12.

[17]  Chanchal Kumar Roy,et al.  Comparison and evaluation of code clone detection techniques and tools: A qualitative approach , 2009, Sci. Comput. Program..

[18]  Ferosh Jacob,et al.  CnP: Towards an environment for the proactive management of copy-and-paste programming , 2009, 2009 IEEE 17th International Conference on Program Comprehension.

[19]  Daqing Hou,et al.  Aiding Software Maintenance with Copy-and-Paste Clone-Awareness , 2010, 2010 IEEE 18th International Conference on Program Comprehension.

[20]  Martin P. Robillard,et al.  Clonetracker: tool support for code clone management , 2008, ICSE '08.