Evaluating the Performance of Clone Detection Tools in Detecting Cloned Co-change Candidates
Md Nadim, Manishankar Mondal, Chanchal K. Roy, Kevin Schneider
TL;DR
This study addresses the problem of identifying cloned co-change candidates during software evolution to support change impact analysis. It compares 12 clone-detection configurations across eight open-source C/Java projects, using ground-truth CCC derived from Unix diffs and cross-tool unions to compute Recall, Precision, and F1, culminating in a final detector ranking. The results show that pattern-based Type-3 configurations in CloneWorks, along with Deckard and CCFinder, reliably identify cloned co-change candidates, while text-based detectors underperform; performance correlates with clone fragment count and line coverage. The findings provide actionable guidelines for selecting and configuring clone detectors in maintenance contexts and introduce a new maintenance-focused dimension to clone research.
Abstract
Co-change candidates are the group of code fragments that require a change if any of these fragments experience a modification in a commit operation during software evolution. The cloned co-change candidates are a subset of the co-change candidates, and the members in this subset are clones of one another. The cloned co-change candidates are usually created by reusing existing code fragments in a software system. Detecting cloned co-change candidates is essential for clone-tracking, and studies have shown that we can use clone detection tools to find cloned co-change candidates. However, although several studies evaluate clone detection tools for their accuracy in detecting cloned fragments, we found no study that evaluates clone detection tools for detecting cloned co-change candidates. In this study, we explore the dimension of code clone research for detecting cloned co-change candidates. We compare the performance of 12 different configurations of nine promising clone detection tools in identifying cloned co-change candidates from eight open-source C and Java-based subject systems of various sizes and application domains. A ranked list and analysis of the results provides valuable insights and guidelines into selecting and configuring a clone detection tool for identifying co-change candidates and leads to a new dimension of code clone research into change impact analysis.
