首页> 外文期刊>Science of Computer Programming >An insight into the dispersion of changes in cloned and non-cloned code: A genealogy based empirical study
【24h】

An insight into the dispersion of changes in cloned and non-cloned code: A genealogy based empirical study

机译:深入了解克隆和非克隆代码中的更改分散:基于家谱的经验研究

获取原文
获取原文并翻译 | 示例

摘要

In this paper, we present an in-depth empirical study of a new metric, change dispersion, that measures the extent changes are scattered throughout the code of a software system. Intuitively, highly dispersed changes, the changes that are scattered throughout many software entities (such as files, classes, methods, and variables), should require more maintenance effort than the changes that only affect a few entities. In our research we investigate change dispersion on the code-base of a number of subject systems as a whole, and separately on each system's cloned and non-cloned code. Our central objective is to determine whether cloned code negatively affects software evolution and maintenance. The granularity of our focus is at the method level. Our experimental results on 16 open source subject systems written in four different programming languages (Java, C, C#, and Python) involving two clone detection tools (CCFinderX and NiCad) and considering three major types of clones (Type 1: exact, Type 2: dissimilar naming, and Type 3: some dissimilar code) suggests that change dispersion has a positive and statistically significant correlation with the change-proneness (or instability) of source code. Cloned code, especially in Java and C systems, often exhibits a higher change dispersion than non-cloned code. Also, changes to Type 3 clones are more dispersed compared to changes to Type 1 and Type 2 clones. According to our analysis, a primary cause of high change dispersion in cloned code is that clones from the same clone class often require corresponding changes to ensure they remain consistent.
机译:在本文中,我们提出了对新指标(变更分散)的深入经验研究,该指标用于衡量变更散布在整个软件系统代码中的程度。直观地讲,高度分散的更改(分散在许多软件实体(例如文件,类,方法和变量)中的更改)比仅影响少数几个实体的更改需要更多的维护工作。在我们的研究中,我们以多个主题系统的整体代码为基础,分别以每个系统的克隆和非克隆代码为基础,研究变更的分散性。我们的主要目标是确定克隆代码是否对软件的发展和维护产生负面影响。我们关注的重点是方法级别。我们在以四种不同的编程语言(Java,C,C#和Python)编写的16个开源主题系统上的实验结果,涉及两个克隆检测工具(CCFinderX和NiCad),并考虑了三种主要的克隆类型(类型1:精确,类型2) :不同的命名方式,以及类型3:一些不同的代码)表明,更改离散度与源代码的更改倾向(或不稳定性)具有正向和统计上的显着相关性。克隆代码(尤其是在Java和C系统中)通常比非克隆代码表现出更高的更改分散性。同样,与对类型1和类型2克隆的更改相比,对类型3克隆的更改更分散。根据我们的分析,克隆代码中高分散分散的主要原因是来自同一克隆类的克隆通常需要进行相应的更改以确保它们保持一致。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号