Cited by 41Software Engineering ResearchAdvanced Software Engineering MethodologiesSoftware Engineering Techniques and Practices

Detecting differences across multiple instances of code clones

Open access
Lin, Yun, Xing, Zhenchang, Xue, Yinxing, Liu, Yang, Peng, Xin, Sun, Jun, Zhao, Wenyun·2014·Proceedings of the 36th International Conference on Software Engineering

Abstract

Clone detectors find similar code fragments (i.e., instances of code clones) and report large numbers of them for industrial systems. To maintain or manage code clones, developers often have to investigate differences of multiple cloned code fragments. However,existing program differencing techniques compare only two code fragments at a time. Developers then have to manually combine several pairwise differencing results. In this paper, we present an approach to automatically detecting differences across multiple clone instances. We have implemented our approach as an Eclipse plugin and evaluated its accuracy with three Java software systems. Our evaluation shows that our algorithm has precision over 97.66% and recall over 95.63% in three open source Java projects. We also conducted a user study of 18 developers to evaluate the usefulness of our approach for eight clone-related refactoring tasks. Our study shows that our approach can significantly improve developers’performance in refactoring decisions, refactoring details, and task completion time on clone-related refactoring tasks. Automatically detecting differences across multiple clone instances also opens opportunities for building practical applications of code clones in software maintenance, such as auto-generation of application skeleton, intelligent simultaneous code editing.

Integrity signals

Registry

Crossref · 10.1145/2568225.2568298

Cites

Statistics

Recomputing p-values needs the paper’s full text.

Claims the paper makes

We couldn’t retrieve this paper’s full text, so its claims and self-check weren’t run. The registry and citation checks still apply.

Claims other papers make about this one

Each is checked against this paper’s own text: does it say what the citing paper says it does?

  • MCIDiff and CloneTracker consider the possible set of clones, show the length and the number of instances of all code clones, not just nearby ones, to help the developer predict E(Cw) of handling any or all of these clones.

    “These two clone-tracking tools consider the possible set of clones, show the length and the number of instances of all code clones, not just nearby ones, to help the developer predict E(C w ) of handing any or all of these clones.”

The citation lists haven’t been fetched yet

References 39 · Cited by 41

Authors
Lin, Y., Xing, Z., Xue, Y., Liu, Y., Peng, X., Sun, J., & Zhao, W.
Affiliations
  • Fudan University (CN)
  • Nanyang Technological University (SG)
  • National University of Singapore (SG)
  • Singapore University of Technology and Design (SG)
Venue
Proceedings of the 36th International Conference on Software Engineering
Publisher
ACM
Published
2014-05-31
Pages
164-174
ISSN
0270-5257 (ISSN-L)
OpenAlex
W1990090830
Cited by
41
References
39
Citations by year
2025: 1 · 2022: 3 · 2021: 3 · 2020: 3 · 2019: 7 · 2018: 7 · 2017: 6 · 2016: 3 · 2015: 6 · 2014: 2
FWCI
4.83
Type
conference paper
Language
en
Open access
Locations
  • ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) (publishedVersion)
  • Singapore Management University Institutional Knowledge (InK) (Singapore Management University) (submittedVersion, other-oa)
  • ANU Open Research (Australian National University) (submittedVersion)
Funders
Fudan University
Topics
  • Physical Sciences › Computer Science › Information Systems › Software Engineering Research
  • Physical Sciences › Computer Science › Artificial Intelligence › Advanced Software Engineering Methodologies
  • Physical Sciences › Computer Science › Information Systems › Software Engineering Techniques and Practices
Keywords
code clones, clone detection, Eclipse plug-in, Java programs, software maintenance, developer performance

About these checks

Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.

Statistics and arithmetic are recomputed, not judged.

Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.

What counts as a claim ›How we measure confidence ›How we check this ›

Are you an author, or do you see a problem with this page? Request a review