An empirical study of faults in late propagation clone genealogies

An empirical study of faults in late propagation clone genealogies
复制标题

DOI:
10.1002/smr.1597
复制
发表时间:
2013-11
期刊:
Journal of Software: Evolution and Process
影响因子:
--
通讯作者:
Liliane Barbour;Foutse Khomh;Ying Zou
Liliane Barbour;Foutse Khomh;Ying Zou
中科院分区:
其他
文献类型:
--
作者:
Liliane Barbour;Foutse Khomh;Ying Zou

文献摘要

被引文献

相似文献

两个相似的代码段或克隆在软件系统内形成克隆对。随着时间的推移,克隆体的变化创造了克隆体进化历史。在这项工作中,我们研究了晚期繁殖,这是克隆进化的一种特定模式。在后期传播中,克隆对中的一个克隆被修改,导致克隆对分歧。然后在稍后的提交中协调代码段。现有的工作已将晚期传播确立为克隆进化模式,并表明该模式与大量故障有关。在本研究中,我们使用 Simian(澳大利亚维多利亚州 Simon Harris,http://www.harukizaemon.com/simian)、CCFinder 和 NiCad(加拿大安大略省金斯顿女王大学软件技术实验室)克隆检测工具检查了三个长寿命软件系统中的后期传播特征。我们定义了八种晚期繁殖类型,并将它们与其他形式的克隆进化进行比较。我们的结果不仅验证了后期传播对软件系统的危害更大,而且还证实了某些特定类型的后期传播比其他类型的危害更大。具体来说,有两种类型的风险最大:(1)当一个克隆经历不同的更改,然后在不对克隆对中的另一个克隆进行任何修改的情况下进行协调更改时; (2) 当两个克隆经历发散性修改,然后进行协调更改,修改克隆对中的两个克隆时。我们还观察到,前一种情况的调节比后一种情况更容易出现错误。我们确定经历晚期繁殖的克隆的大小对特定类型的晚期繁殖谱系的故障倾向有影响。最后,我们无法报告变化传播的延迟与其故障之间的相关性,因为每个延迟周期的故障倾向取决于系统。版权所有 © 2013 约翰·威利父子有限公司
Two similar code segments, or clones, form a clone pair within a software system. The changes to the clones over time create a clone evolution history. In this work, we study late propagation, a specific pattern of clone evolution. In late propagation, one clone in a clone pair is modified, causing the clone pair to diverge. The code segments are then reconciled in a later commit. Existing work has established late propagation as a clone evolution pattern and suggested that the pattern is related to a high number of faults. In this study, we examine the characteristics of late propagation in three long‐lived software systems using the Simian ( Simon Harris, Victoria, Australia, http://www.harukizaemon.com/simian), CCFinder, and NiCad (Software Technology Laboratory, Queen's University, Kingston, ON, Canada) clone detection tools. We define eight types of late propagation and compare them to other forms of clone evolution. Our results not only verify that late propagation is more harmful to software systems but also establish that some specific types of late propagations are more harmful than others. Specifically, two types are most risky: (1) when a clone experiences diverging changes and then a reconciling change without any modification to the other clone in a clone pair; and (2) when two clones undergo a diverging modification followed by a reconciling change that modifies both the clones in a clone pair. We also observe that the reconciliation in the former case is more prone to faults than in the latter case. We determine that the size of the clones experiencing late propagation has an effect on the fault proneness of specific types of late propagation genealogies. Lastly, we cannot report a correlation between the delay of the propagation of changes and its faults, as the fault proneness of each delay period is system dependent. Copyright © 2013 John Wiley & Sons, Ltd.