REPRESENTATION, ANALYSIS, AND REFACTORING TECHNIQUES TO SUPPORT CODE CLONE MAINTENANCE by ROBERT AMBROSIUS TAIRAS BARRETT BRYANT, COMMITTEE CHAIR

Abstract

The existence of code cloning, which represents identical or near identical sections of code, has been documented to occur frequently in software systems. The main purpose of cloning is the reuse of a code fragment that performs some functionality by copying and pasting it to a new location in the source code. Code clones embody a unique form of coupling, because their similarity inadvertently connects their representative sections of code together. This inherent duplication requires attention to be given to all related duplicates, even if just one of these duplicates is being evaluated or changed. Failure to consider all related clones when maintaining cloned code can result in errors that are difficult to identify initially. The introduction of clone detection tools in recent years has provided an automated means to discover clones in code. However, in order to maintain these clones, programmers must first understand the properties of the clones reported by such tools, which in many cases are comprised of clone groups (i.e., clones representing the same duplication) scattered throughout the collection of source files that in turn are contained in reports consisting of a large amount of data. The elimination of the duplication associated with these clones by modularizing the code through refactoring activities reduces the amount of code that needs to be maintained in the future. However, an observed disconnect can still be seen between the detection and analysis of the clones and the subsequent task of eliminating the duplication.

59 Figures and Tables

Cite this paper

@inproceedings{Gray2010REPRESENTATIONAA, title={REPRESENTATION, ANALYSIS, AND REFACTORING TECHNIQUES TO SUPPORT CODE CLONE MAINTENANCE by ROBERT AMBROSIUS TAIRAS BARRETT BRYANT, COMMITTEE CHAIR}, author={Jeff Gray and Nicholas Kraft and Marjan Mernik and Brian Toone and Chengcui Zhang and Robert Tairas}, year={2010} }