首页> 外文会议>IEEE International Conference on Software Analysis, Evolution and Reengineering >Assessing Code Clone Harmfulness: Indicators, Factors, and Counter Measures
【24h】

Assessing Code Clone Harmfulness: Indicators, Factors, and Counter Measures

机译:评估代码克隆危害:指标,因素和计数措施

获取原文
获取外文期刊封面目录资料

摘要

Code clones are identical or similar code in software projects. On one hand, developers clone code to achieve higher productivity and thus clones inherently exist; on the other hand, code clones demand extra effort to maintain the consistency between clone instances and may introduce bugs, and thus are often considered harmful for software maintenance and quality. We believe that not all code clones have the same level of harmfulness. A systematic way of assessing the harmfulness level of cloned code would facilitate informed decisions on how to deal with clones. We propose a model for clone harmfulness level assessment with four quantitative indicators that can be extracted from the evolution history of the clones. Specifically, we gather information, such as code clone changes and bug- fixes related to clone divergence and re-synchronization, to find objective evidence that a clone harms the software quality or brings potential risks even if no bugs are found. The assessment model consists of four harmfulness levels of clones determined by the four indicators. We also derive three harmfulness factors from the intrinsic properties of clones that potentially affect the harmfulness of clones. We conduct a large-scale empirical study with five open-source and three industry systems and find that 61.0-84.7% of the clones are not harmful in terms of consistent maintenance overhead. We find evidence in the evolution history that several factors, such as spread of clone instances, number of clone instances, and number of developers, have non-trivial correlation with clone harmfulness levels. We also propose six counter measures for clone harmfulness mitigation based on the observation of the harmfulness factors, and have collected useful feedback from industrial software architects and senior developers through an interview meeting.
机译:代码克隆是软件项目中的相同或类似的代码。一方面,开发人员克隆代码以实现更高的生产力,因此固有存在克隆;另一方面,代码克隆需要额外的努力来维持克隆实例之间的一致性,并且可能会引入错误,因此通常被认为对软件维护和质量有害。我们认为,并非所有代码克隆都具有相同的危害程度。评估克隆代码的有害水平的系统方式将有助于了解如何处理克隆。我们提出了一种克隆危害水平评估模型,其四种量化指标可以从克隆的演化历史中提取。具体而言,我们收集信息,例如代码克隆更改和与克隆发散和重新同步相关的错误修复,以查找克隆损害软件质量的客观证据,即使没有找到错误。评估模型由四个指标确定的四个克隆含量组成。我们还从可能影响克隆危害的克隆的内在特性中得出三种危害因素。我们用五个开源和三个行业系统进行大规模的实证研究,并发现61.0-84.7%的克隆在一致的维护开销方面无害。我们在演化历史中发现了若干因素,例如克隆实例的传播,克隆实例的数量和开发人员数量,与克隆的危害水平具有非平凡的相关性。我们还提出了六项抵制克隆危害减缓的措施,根据危害因素的观察,通过采访会议收集了工业软件架构师和高级开发商的有用反馈。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号