Skip to Main content Skip to Navigation
Journal articles

Cleaning up Copy-Paste Clones with Interactive Merging

Abstract : Copy-paste-modify is a form of software reuse in which developers explicitly duplicate source code. This duplicated source code, amounting to a code clone, is adapted for a new purpose. Copy-paste-modify is popular among software developers, however, empirical evidence shows that it complicates software maintenance and increases the frequency of bugs. To allow developers to use copy-paste-modify without having to worry about these concerns , we propose an approach that automatically merges similar pieces of code by creating suitable abstractions. Because different kinds of abstractions may be beneficial in different contexts, our approach offers multiple abstraction mechanisms, which were selected based on a study of popular open-source repositories. To demonstrate the feasibility of our approach, we have designed and implemented a prototype merging tool for C++ and evaluated it on a number of code clones exhibiting some variation, i.e near-miss clones, in popular Open Source packages. We observed that maintainers find our algorithmically created abstractions to be largely preferable to the existing duplicated code.
Document type :
Journal articles
Complete list of metadata

Cited literature [36 references]  Display  Hide  Download

https://hal.inria.fr/hal-01853896
Contributor : Julia Lawall <>
Submitted on : Sunday, August 5, 2018 - 8:14:50 PM
Last modification on : Tuesday, March 23, 2021 - 9:28:03 AM
Long-term archiving on: : Tuesday, November 6, 2018 - 12:21:12 PM

File

template.pdf
Files produced by the author(s)

Identifiers

Citation

Krishna Narasimhan, Christoph Reichenbach, Julia Lawall. Cleaning up Copy-Paste Clones with Interactive Merging. Journal of Automated Software Engineering, Springer, 2018, 25 (3), pp.627-673. ⟨10.1007/s10515-018-0238-5⟩. ⟨hal-01853896⟩

Share

Metrics

Record views

820

Files downloads

457