课题基金 / 基金详情

Change, Similarity and Redundancy in Software

Change, Similarity and Redundancy in Software
软件中的变化、相似性和冗余
批准号:
RGPIN-2015-04396
负责人:
Roy, Chanchal
金额:
$3.13万
依托单位:
依托单位国家:
加拿大
项目类别:
Discovery Grants Program - Individual
财政年份:
2019
资助国家:
加拿大
项目状态:
已结题
起止时间:
2019-01-01 至 2020-12-31

项目摘要

项目成果

Roy, Chanchal的其他基金

相似基金

相关文献

中文摘要
翻译
软件克隆被定义为软件系统中复制的或相似的代码片段。复制代码片段并通过粘贴编辑更改来重用它是软件开发中的一种常见做法。实际上,开发人员经常有意地进行克隆,因为克隆的潜在好处包括更快的开发、通过避免风险来重用经过良好测试的代码,或者为它们分配时间限制。另一方面,在Flower的重构列表中,克隆是代码的头号“臭味儿”。最近对工业软件和开源软件的研究表明,虽然克隆并不总是有害的,而且克隆在很多方面都是有用的,但它们中的许多也可能对软件维护有害。当然,重用包含未知错误的片段可能会导致错误传播,或者克隆片段中的任何更改都可能导致对所有类似片段的更改,这是具有挑战性的,耗时的,并且容易出错。因此,克隆被认为是软件高维护成本的主要贡献者之一,它高达总开发成本的80%。***尽管ide在帮助检测和分析克隆方面取得了进步,但在开发过程中对开发人员的“安全和有效的克隆实践”或在软件维护期间帮助他们管理现有克隆方面明显缺乏支持。缺乏支持对于“差一点”的克隆(在复制/粘贴片段中发生轻微到重大的编辑更改的克隆)尤其明显。虽然最近在“差点失败的克隆”方面也取得了一些进展,但这主要是基于过去的变更历史和/或克隆的背景。鉴于克隆的双重作用,在软件开发中的克隆实践以及在软件维护期间管理现有克隆时,考虑质量(例如,克隆结果的安全性)和灵活性(例如,如何根据当前上下文有效地创建克隆)都是很重要的。这些方面没有得到很好的支持。***这项研究的长期目标是在“安全和有效的克隆实践”中为开发者提供更好的支持。这将涉及在两个领域做出研究贡献:(1)构建工具来帮助开发人员在ide和版本控制系统中进行“安全克隆”实践,以及(2)构建工具来帮助开发人员在维护和进化期间管理现有克隆。所有这些活动都将适用于精确的克隆和更困难的差一点的克隆问题,并适当考虑到质量和灵活性方面。本研究的产品将使软件工程研究人员能够更好地理解克隆进化和开发人员克隆实践,并将大大改善对开发人员有效和高效地处理克隆的支持。更好地支持安全克隆和管理将导致整体软件质量的大幅提高
英文摘要
Software clones are defined to be duplicated or similar fragments of code in a software system. Copying a code fragment and reusing it by pasting with editing changes is a common practice in software development. Developers in fact often intentionally practice cloning because of the underlying benefits such as faster development, reuse of well-tested code by avoiding risks, or time limits assigned to them. On the other hand, clones are the #1 code "bad smell" in Flower's refactoring list. Recent studies both with industrial and open source software show that while clones are not always harmful and clones can be useful in many ways, many of them can also be detrimental to software maintenance. Of course, reusing a fragment containing unknown bugs may result in fault propagation, or any changes in a cloned fragment may lead to changes to all the similar fragments to it, which is challenging, time consuming, and error-prone. Clones are thus considered to be one of the primary contributors to the high maintenance cost of software, which is up to 80% of the total development cost. ***Despite advances in IDEs that assist with detection and analysis of clones, there is a marked lack of support for developers in the "safe and efficient practice of cloning" during development or in assisting them in managing existing clones during software maintenance. The lack of support is particularly evident for "near-miss" clones (clones where minor to significant editing changes occur in the copy/pasted fragments). While there has been some recent progress with near-miss clones as well, this is mainly based on past change histories, and/or contexts of the clones. Given the dual role of cloning, it is however important to consider quality (e.g., how safe the cloning result is) and flexibility (e.g., how to efficiently make clones based on the current context) both during cloning practice in software development as well as managing existing clones during software maintenance. These aspects are poorly supported. ***The long-term objective of this research is to provide better support for developers in "safe and efficient cloning practices". This will involve making research contributions in two areas: (1) building tools to assist developers in "safe cloning" practices within IDEs and version control systems, and (2) building tools to help developers manage existing clones during maintenance and evolution. All of these activities will be applied to both exact clones and the more difficult problem of near-miss clones with due consideration of quality and flexibility aspects. The products of this research will allow software engineering researchers to better understand clone evolution and developer cloning practices, and will substantially improve support for developers in dealing with clones effectively and efficiently. Better support for safe cloning and management will lead to a substantial improvement in overall software quality.**
期刊论文(0)
专著(0)
科研奖励(0)
会议论文
Change, Similarity and Redundancy in Software
  • 批准号:
    RGPIN-2015-04396
  • 项目类别:
    Discovery Grants Program - Individual
  • 资助金额:
    $6.27万
  • 财政年份:
    2021
  • 负责人:
    Roy, Chanchal
  • 依托单位:
Change, Similarity and Redundancy in Software
  • 批准号:
    RGPIN-2015-04396
  • 项目类别:
    Discovery Grants Program - Individual
  • 资助金额:
    $3.13万
  • 财政年份:
    2020
  • 负责人:
    Roy, Chanchal
  • 依托单位:
A framework for studying and predicting bug propagation through code cloning for mobile apps
  • 批准号:
    543819-2019
  • 项目类别:
    Engage Grants Program
  • 资助金额:
    $1.82万
  • 财政年份:
    2019
  • 负责人:
    Roy, Chanchal
  • 依托单位:
Change, Similarity and Redundancy in Software
  • 批准号:
    RGPIN-2015-04396
  • 项目类别:
    Discovery Grants Program - Individual
  • 资助金额:
    $3.13万
  • 财政年份:
    2018
  • 负责人:
    Roy, Chanchal
  • 依托单位:
海外基金