Method-level incremental code clone detection using hybrid approach

In the last decade, substantial research effort has been put into the detection and removal of clones from software systems; however, only few practical tools for this purpose are available for programming languages. Moreover, most methods for detecting clones are limited to a single revision of a program. This paper presents incremental clone detection with hybrid approach, which detects clones in multiple revisions of a program. This hybrid approach is a combination of textual analysis and metrics computation. Both clone detection and modification functionalities are integrated with CloneManager, a tool for C and Java programs. The incremental approach has been enhanced as an added feature to this CloneManager tool. We evaluate the enhanced CloneManager tool for six open source projects with the parameters precision and recall ratio.

[1]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[2]  Michel Wermelinger,et al.  Tracking clones' imprint , 2010, IWSC '10.

[3]  Ying Zou,et al.  An Empirical Study on Inconsistent Changes to Code Clones at Release Level , 2009, 2009 16th Working Conference on Reverse Engineering.

[4]  Elmar Jürgens,et al.  CloneDetective - A workbench for clone detection research , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[5]  Huiqing Li,et al.  Incremental Clone Detection and Elimination for Erlang Programs , 2011, FASE.

[6]  Michael W. Godfrey,et al.  Subjectivity in Clone Judgment: Can We Ever Agree? , 2006, Duplication, Redundancy, and Similarity in Software.

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

[8]  Serge Demeyer,et al.  Evaluating clone detection techniques from a refactoring perspective , 2004 .

[9]  Elmar Jürgens,et al.  Do code clones matter? , 2009, 2009 IEEE 31st International Conference on Software Engineering.

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

[11]  R. Radhika,et al.  CloneManager: A Tool for Detection of Type1 and Type2 Code Clones , 2010, BAIP.

[12]  Rainer Koschke,et al.  Empirical evaluation of clone detection using syntax suffix trees , 2008, Empirical Software Engineering.

[13]  Norman E. Fenton,et al.  Software Metrics: A Rigorous Approach , 1991 .

[14]  Chanchal Kumar Roy,et al.  Evaluating Code Clone Genealogies at Release Level: An Empirical Study , 2010, 2010 10th IEEE Working Conference on Source Code Analysis and Manipulation.

[15]  Chanchal K. Roy,et al.  A Survey on Software Clone Detection Research , 2007 .

[16]  Rainer Koschke,et al.  Clone Detection Using Abstract Syntax Suffix Trees , 2006, 2006 13th Working Conference on Reverse Engineering.

[17]  Hoan Anh Nguyen,et al.  Scalable and incremental clone detection for evolving software , 2009, 2009 IEEE International Conference on Software Maintenance.

[18]  Rainer Koschke,et al.  Incremental Clone Detection , 2009, 2009 13th European Conference on Software Maintenance and Reengineering.

[19]  Elizabeth Burd,et al.  Evaluating clone detection tools for use during preventative maintenance , 2002, Proceedings. Second IEEE International Workshop on Source Code Analysis and Manipulation.

[20]  Hoan Anh Nguyen,et al.  Clone Management for Evolving Software , 2012, IEEE Transactions on Software Engineering.

[21]  Nils Göde,et al.  Cloned code: stable code , 2013, J. Softw. Evol. Process..

[22]  Gilles Roussel,et al.  Syntax tree fingerprinting for source code similarity detection , 2009, 2009 IEEE 17th International Conference on Program Comprehension.

[23]  Karl-Heinrich Moller Software Metrics: A Practitioner's Guide to Improved Product Development , 1992 .

[24]  E Kodhai.,et al.  Clone Detection using Textual and Metric Analysis to figure out all Types of Clones , 2010 .

[25]  Shinji Kusumoto,et al.  CCFinder: A Multilinguistic Token-Based Code Clone Detection System for Large Scale Source Code , 2002, IEEE Trans. Software Eng..

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

[27]  Giuliano Antoniol,et al.  Comparison and Evaluation of Clone Detection Tools , 2007, IEEE Transactions on Software Engineering.

[28]  Michael W. Godfrey,et al.  “Cloning considered harmful” considered harmful: patterns of cloning in software , 2008, Empirical Software Engineering.

[29]  Giuliano Antoniol,et al.  Analyzing cloning evolution in the Linux kernel , 2002, Inf. Softw. Technol..

[30]  Serge Demeyer,et al.  Evaluating clone detection techniques , 2003 .

[31]  R. Radhika,et al.  Detection of Type-1 and Type-2 Code Clones Using Textual Analysis and Metrics , 2010, 2010 International Conference on Recent Trends in Information, Telecommunication and Computing.

[32]  Rainer Koschke,et al.  Survey of Research on Software Clones , 2006, Duplication, Redundancy, and Similarity in Software.

[33]  R. Koschke,et al.  Frontiers of software clone management , 2008, 2008 Frontiers of Software Maintenance.