Clones and Macro co-changes

Authors

  • Angela Lozano Vrije Universiteit Brussel
  • Fehmi Jaafar École Polytechnique de Montréal
  • Kim Mens Université Catholique de Louvain
  • Yann Gaël Guéhéneuc École Polytechnique de Montréal

DOI:

https://doi.org/10.14279/tuj.eceasst.63.933

Abstract

Ideally, any change that modifies the similar parts of a cloned code snippet should be propagated to all its duplicates. In practice however, consistent propagation of changes in clones does not always happen. Current evidence indicates that clone families have a 50% chance of having consistent changes. This paper measures cloning and co-changes at file level as a proxy to assess the frequency of consistent changes. Given that changes to a clone group are not necessarily propagated in the same commit transaction (i.e., late propagations), our analysis uses macro co-changes instead of the traditional definition of co-changes. Macro changes group bursts of changes that are closer among themselves than to other changes, regardless of author or message. Then, macro co-changes are sets of files that change in the same macro changes. Each cloned file is tagged depending on whether any of the files with which it macro co-changes is cloned with it (during the macro change) or not. Contrary to previous results, we discovered that most of the cloned files macro co-change only with files with which they share clones. Thus providing evidence that macro changes are appropriate to study the conjecture of clones requiring co-changes, and indicating that consistent changes might be the norm in cloned code.

Downloads

Published

2014-04-15

How to Cite

[1]
A. Lozano, F. Jaafar, K. Mens, and Y. G. Guéhéneuc, “Clones and Macro co-changes”, eceasst, vol. 63, Apr. 2014.