Code clone detection using decentralized architecture and code reduction

Code cloning is the code fragment similar to one another in the form of semantics and syntax. In the software development process, it is reuse approach of existing code. While developing a new software version, all the software modules may not be altered or redevelop. Some existing modules are copied with or without modification introducing to the generation of code clones. This is done for saving the developers efforts and time. But there is an issue, if a bug is discovered in some code fragment, then such contents must be discovered by means of clone detectors, to avoid inclusion of such errors or bugs. Clones are made due to reuse approach and programming approach. Reuse approach contain simple reuse by copy/paste activity of design, functionalities and logic. Programming approach involves merging of two similar systems, system development with generative programming approach and delay in restructuring. Code is developed on distributed system. It is difficult to find out code clones on these systems. We need an effective way to detect the clones. Earlier research and tools developed till now can find only Type-I, Type-II and some part of Type-III clones. Detection of Type-IV clone estimates a challenge in current scenario. Some tools are very slow and take lot of time for comparing codes and also their precision is low. Thus they are limited to Type-I and Type-II clones. The tools oriented on PDG are able to find Type-III clones. Time required to detect the clones by existing tools is high due to large number of comparisons. This sets the basis as a metaphor for our current research. The motive of our approach is to reduce comparisons and improve precision. Our proposed method detects duplicate code in efficient way by using Decentralized Computing and Code reduction. Significant efforts are applied to address Type-III and various other clones that set challenging aspects in the research.

[1]  Andrew M. Sutton,et al.  Hybridizing evolutionary algorithms and clustering algorithms to find source-code clones , 2005, GECCO '05.

[2]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[3]  Harald C. Gall,et al.  Relation of Code Clones and Change Couplings , 2006, FASE.

[4]  Arie van Deursen,et al.  An evaluation of clone detection techniques for crosscutting concerns , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[5]  Jens Krinke,et al.  Identifying similar code with program dependence graphs , 2001, Proceedings Eighth Working Conference on Reverse Engineering.

[6]  Andrian Marcus,et al.  Identification of high-level concept clones in source code , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[7]  Rainer Koschke,et al.  7th International Workshop on Software Clones (IWSC 2013) , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[8]  Katsuro Inoue,et al.  Very-Large Scale Code Clone Analysis and Visualization of Open Source Programs Using Distributed CCFinder: D-CCFinder , 2007, 29th International Conference on Software Engineering (ICSE'07).

[9]  Katsuro Inoue,et al.  Fifth international workshop on software clones: (IWSC 2011) , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[10]  S. Kusumoto,et al.  Gemini: Code Clone Analysis Tool , 2002 .

[11]  Philip S. Yu,et al.  GPLAG: detection of software plagiarism by program dependence graph analysis , 2006, KDD '06.

[12]  Jens Krinke,et al.  A Study of Consistent and Inconsistent Changes to Code Clones , 2007, 14th Working Conference on Reverse Engineering (WCRE 2007).

[13]  Susan Horwitz,et al.  Automated duplicated code detection and procedure extraction , 2003 .

[14]  Susan Horwitz,et al.  Semantics-preserving procedure extraction , 2000, POPL '00.

[15]  Ronaldo Menezes,et al.  Proceedings of the 44th annual Southeast regional conference , 2006 .

[16]  Susan Horwitz,et al.  Using Slicing to Identify Duplication in Source Code , 2001, SAS.

[17]  Ettore Merlo,et al.  Experiment on the automatic detection of function clones in a software system using metrics , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[18]  Stephan Diehl,et al.  JCCD: a flexible and extensible API for implementing custom code clone detectors , 2010, ASE.

[19]  Brenda S. Baker,et al.  A Program for Identifying Duplicated Code , 1992 .

[20]  Nicholas Tran,et al.  Sim: a utility for detecting similarity in computer programs , 1999, SIGCSE '99.

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

[22]  Renato De Mori,et al.  Pattern matching for clone and concept detection , 2004, Automated Software Engineering.

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

[24]  Magdalena Balazinska,et al.  Advanced clone-analysis to support object-oriented system refactoring , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[25]  Brenda S. Baker Parameterized diff , 1999, SODA '99.