Representing clones in a localized manner

Code clones (i.e., duplicate sections of code) can be scattered throughout the source files of a program. Manually evaluating group of such clones requires observing each clone in its origina location (i.e., opening each file and finding the source location o each clone), which can be a time-consuming process. As a alternative, this paper introduces a technique that localizes th representation of code clones to provide a summary of th properties of two or more clones in one location. In our approach the results of a clone detection tool are analyzed in an automate manner to determine the properties (i.e., similarities an differences) of the clones. These properties are visualized directl within the source editor. The localized representation is realize as part of the features of an Eclipse plug-in called CeDAR.

[1]  Dan Gusfield,et al.  Algorithms on Strings, Trees, and Sequences - Computer Science and Computational Biology , 1997 .

[2]  Stéphane Ducasse,et al.  Insights into system-wide code duplication , 2004, 11th Working Conference on Reverse Engineering.

[3]  Michael W. Godfrey,et al.  Improved tool support for the investigation of duplication in software , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[4]  Zhendong Su,et al.  DECKARD: Scalable and Accurate Tree-Based Detection of Code Clones , 2007, 29th International Conference on Software Engineering (ICSE'07).

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

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

[7]  David L. Atkins Version Sensitive Editing: Change History as a Programming Tool , 1998, SCM.

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

[9]  Dustin Campbell,et al.  Designing refactoring tools for developers , 2008, WRT '08.

[10]  E. Murphy-Hill,et al.  Refactoring Tools: Fitness for Purpose , 2006, IEEE Software.

[11]  Jeffrey G. Gray,et al.  Phoenix-based clone detection using suffix trees , 2006, ACM-SE 44.

[12]  Jeffrey G. Gray,et al.  Get to know your clones with CeDAR , 2009, OOPSLA Companion.

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

[14]  Harald C. Gall,et al.  Change Distilling:Tree Differencing for Fine-Grained Source Code Change Extraction , 2007, IEEE Transactions on Software Engineering.

[15]  Ahmed E. Hassan,et al.  A Framework for Studying Clones In Large Software Systems , 2007, Seventh IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2007).

[16]  Robert J. Walker,et al.  Determining detailed structural correspondence for generalization tasks , 2007, ESEC-FSE '07.