Clone Detection Techniques in Software Code and Models
Two fragments of source code which are identical to each other either syntactically or semantically are called code clones. Code clones make software maintenance very difficult and cause bug propagation from original code to all copied fragments. There are so many reasons of occurrence of code clones like code reusability by copying library and functions which are already in existence, various coding practices like inheritance and repeated computation using pre-existing functions with minor changes in variable names and types or data structures used. If a code fragment is changed or modified by deleting or adding code statements, we need to check all the related code clones to see if they need to be updated as well. These days model based software development is in practice .Coders design model before writing actual code. Similar to code clones, there are clones in models also which in turn affects the quality of software and its overall maintenance. In this study, code clones, model clones, various types of clones, different phases in clone detection, techniques and tools for clone detection and shortcomings of clone detection techniques have been discussed.