Implementing a 3-Way Approach of Clone Detection and Removal using Pattern and Clone Detector Tool

Loading...
Thumbnail Image

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

Software Systems are evolving by adding new functions and modifying existing functions over time. Through the evolution, the structure of software is becoming more complex and so the understandability and maintainability of software systems is deteriorating day by day. These are not only important but one of the most expensive activities in software development. The copying and duplication of source code has been studied in software engineering under several topic areas. Copy and paste programming is a common activity but it introduces a negative point to reuse by creating Clones. Detection of duplicate code fragments leads to efficiency on the software maintenance process and decreases maintenance cost. It is possible to outwit the hindrance of clones by applying a 3-way approach of detecting the clones at design and code level. The process is automated by developing a tool that requires no parsing yet is able to detect a significant amount of code duplication. Since code clones are believed to increase the maintenance effort, several code clone detection techniques and tools have been proposed. This thesis proposes a 3-way approach of integrating Model Based Visual Analysis using UML, Pattern Based Semantic Analysis and Syntactically Code Analysis to detect Type1 and Type 2 clones using Pattern Clone Detector (P C Detector). For the implementation of 3-way approach, I have developed a tool, named Pattern Clone Detector (PC Detector) that extracts code clones in C and C++ source files. After detecting the clones, PC Detector also identifies the pull up pattern residing in the code and thereby removes the clones. The proposed 3-way approach is compared with other clone detection techniques. The other studied clone detection techniques detect clones at code level but the proposed 3-way approach detects and removes cloning at design as well as code level.

Description

M.E. (Software Engineering)

Citation

Endorsement

Review

Supplemented By

Referenced By