Using a clone genealogy extractor for understanding and supporting evolution of code clones

TitleUsing a clone genealogy extractor for understanding and supporting evolution of code clones
Publication TypeConference Paper
Year of Publication2005
AuthorsKim, Miryung, and Notkin David
Secondary TitleProceedings of the 2005 international workshop on Mining software repositories
Pagination17-23
PublisherACM
Place PublishedNew York, NY, USA
ISBN Number1-59593-123-6
Keywordsclone, clone detection, cvs, developers, evolution, maintenance, refactoring, source code
Abstract

Programmers often create similar code snippets or reuse existing code snippets by copying and pasting. Code clones —syntactically and semantically similar code snippets—can cause problems during software maintenance because programmers may need to locate code clones and change them consistently. In this work, we investigate (1) how code clones evolve, (2) how many code clones impose maintenance challenges, and (3) what kind of tool or engineering process would be useful for maintaining code clones.
Based on a formal definition of clone evolution, we built a clone genealogy tool that automatically extracts the history of code clones from a source code repository (CVS). Our clone genealogy tool enables several analyses that reveal evolutionary characteristics of code clones. Our initial results suggest that aggressive refactoring may not be the best solution for all code clones; thus, we propose alternative tool solutions that assist in maintaining code clones using clone genealogy information.

URLhttp://doi.acm.org/10.1145/1082983.1083146
DOIhttp://doi.acm.org/10.1145/1082983.1083146
AttachmentSize
17Using.pdf313.85 KB