XSCDF: Towards a Framework for Comprehensive Software Clone Detection and Visualization using Ontology

XSCDF: Towards a Framework for Comprehensive Software Clone Detection and Visualization using
Ontology

Abstract: – Software development has become a complex phenomenon as there are increased and ever-changing expectations from clients. In fact the development teams often feel the pressure of releases. They indulge in less than ideal approaches as well to produce code. Sometimes they cut and paste code causing code duplicates or code clones. Clones can lead to propagation of bugs and cause maintenance issues. Detection of code clones has plethora of advantages including copyright protection, elimination of duplicates by refactoring, exploration of design patterns for industry best practices and so on. Analyzing big software projects and finding duplicates is tedious task. Many researchers contributed towards identifying different kinds of clones and detection techniques. However we felt a comprehensive and extendable framework that not only supports clone detection but also visualization techniques for easy comprehension are lacking. In this paper, we propose such framework named eXtensible Software Clone Detection Framework using ontology concept (XSCDF) which is generic and supports clone detection of different languages. It provides placeholders for future techniques. We built a prototype application using Java programming language to demonstrate the proof of concept. Ontology concept is used to visualize clone detection results. The empirical results reveal that the framework has multi-language support for duplicate code detection.

Index Terms – Clone, clone detection, SCDF, visualization

I. INTRODUCTION

Clones are considered to be identical or near identical piece of codes in source code. Usually code clones are created just for avoiding coding. Stated differently code clones results in copy paste operations performed for using the same code in different parts of software. Sometimes code clones occur unintentionally due to similar API usage. In the process of developing huge systems, code cloning became a common phenomenon. Large software systems need continuous maintenance. With code clones there is possibility of bug propagation. It in turn leads to maintenance problems. For instance a JDBC connectivity code is repeated in 100 Java programs in a project. In this case the code is duplicated instead of reusing code.
Read More