Change, Similarity and Redundancy in Software

软件中的变化、相似性和冗余

基本信息

  • 批准号:
    RGPIN-2015-04396
  • 负责人:
  • 金额:
    $ 3.13万
  • 依托单位:
  • 依托单位国家:
    加拿大
  • 项目类别:
    Discovery Grants Program - Individual
  • 财政年份:
    2020
  • 资助国家:
    加拿大
  • 起止时间:
    2020-01-01 至 2021-12-31
  • 项目状态:
    已结题

项目摘要

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.
软件克隆被定义为软件系统中重复的或相似的代码片段。复制代码片段并通过粘贴和编辑更改来重用它是软件开发中的常见做法。事实上,开发人员经常有意地实践克隆,因为潜在的好处,如更快的开发,通过避免风险重用经过良好测试的代码,或为它们分配时间限制。另一方面,克隆是Flower重构列表中的头号代码“臭味”。最近对工业和开源软件的研究表明,虽然克隆并不总是有害的,克隆在许多方面都是有用的,但其中许多也不利于软件维护。当然,重用包含未知错误的片段可能会导致错误传播,或者克隆片段中的任何更改都可能导致所有与其相似的片段发生更改,这是具有挑战性的,耗时的,并且容易出错。因此,克隆被认为是软件高维护成本的主要贡献者之一,高达总开发成本的80%。 尽管IDE在帮助检测和分析克隆方面取得了进展,但在开发过程中对开发人员的“安全和有效的克隆实践”或在软件维护期间帮助他们管理现有克隆方面明显缺乏支持。缺乏支持对于“接近缺失”克隆(在复制/粘贴片段中发生微小到显著的编辑改变的克隆)尤其明显。虽然最近在近距离克隆方面也取得了一些进展,但这主要是基于过去的更改历史和/或克隆的上下文。鉴于克隆的双重作用,考虑质量也很重要(例如,克隆结果有多安全)和灵活性(例如,如何基于当前上下文有效地进行克隆),这在软件开发中的克隆实践期间以及在软件维护期间管理现有克隆期间都是如此。这些方面的支持很差。 这项研究的长期目标是在“安全和有效的克隆实践”方面为开发人员提供更好的支持。这将涉及在两个领域做出研究贡献:(1)构建工具以帮助开发人员在IDE和版本控制系统中进行“安全克隆”实践,以及(2)构建工具以帮助开发人员在维护和进化期间管理现有克隆。所有这些活动将适用于精确克隆和更困难的问题,近错过克隆,适当考虑质量和灵活性方面。这项研究的成果将使软件工程研究人员能够更好地了解克隆进化和开发人员克隆实践,并将大大提高对开发人员有效和高效处理克隆的支持。更好地支持安全克隆和管理将导致整体软件质量的大幅提高。

项目成果

期刊论文数量(0)
专著数量(0)
科研奖励数量(0)
会议论文数量(0)
专利数量(0)

数据更新时间:{{ journalArticles.updateTime }}

{{ item.title }}
{{ item.translation_title }}
  • DOI:
    {{ item.doi }}
  • 发表时间:
    {{ item.publish_year }}
  • 期刊:
  • 影响因子:
    {{ item.factor }}
  • 作者:
    {{ item.authors }}
  • 通讯作者:
    {{ item.author }}

数据更新时间:{{ journalArticles.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ monograph.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ sciAawards.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ conferencePapers.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ patent.updateTime }}

Roy, Chanchal其他文献

Roy, Chanchal的其他文献

{{ item.title }}
{{ item.translation_title }}
  • DOI:
    {{ item.doi }}
  • 发表时间:
    {{ item.publish_year }}
  • 期刊:
  • 影响因子:
    {{ item.factor }}
  • 作者:
    {{ item.authors }}
  • 通讯作者:
    {{ item.author }}

{{ truncateString('Roy, Chanchal', 18)}}的其他基金

Change, Similarity and Redundancy in Software
软件中的变化、相似性和冗余
  • 批准号:
    RGPIN-2015-04396
  • 财政年份:
    2021
  • 资助金额:
    $ 3.13万
  • 项目类别:
    Discovery Grants Program - Individual
A framework for studying and predicting bug propagation through code cloning for mobile apps
通过移动应用程序代码克隆来研究和预测错误传播的框架
  • 批准号:
    543819-2019
  • 财政年份:
    2019
  • 资助金额:
    $ 3.13万
  • 项目类别:
    Engage Grants Program
Change, Similarity and Redundancy in Software
软件中的变化、相似性和冗余
  • 批准号:
    RGPIN-2015-04396
  • 财政年份:
    2019
  • 资助金额:
    $ 3.13万
  • 项目类别:
    Discovery Grants Program - Individual
Change, Similarity and Redundancy in Software
软件中的变化、相似性和冗余
  • 批准号:
    RGPIN-2015-04396
  • 财政年份:
    2018
  • 资助金额:
    $ 3.13万
  • 项目类别:
    Discovery Grants Program - Individual
Change, Similarity and Redundancy in Software
软件中的变化、相似性和冗余
  • 批准号:
    RGPIN-2015-04396
  • 财政年份:
    2017
  • 资助金额:
    $ 3.13万
  • 项目类别:
    Discovery Grants Program - Individual
Change, Similarity and Redundancy in Software
软件中的变化、相似性和冗余
  • 批准号:
    RGPIN-2015-04396
  • 财政年份:
    2016
  • 资助金额:
    $ 3.13万
  • 项目类别:
    Discovery Grants Program - Individual
Change, Similarity and Redundancy in Software
软件中的变化、相似性和冗余
  • 批准号:
    RGPIN-2015-04396
  • 财政年份:
    2015
  • 资助金额:
    $ 3.13万
  • 项目类别:
    Discovery Grants Program - Individual

相似海外基金

Change, Similarity and Redundancy in Software
软件中的变化、相似性和冗余
  • 批准号:
    RGPIN-2015-04396
  • 财政年份:
    2021
  • 资助金额:
    $ 3.13万
  • 项目类别:
    Discovery Grants Program - Individual
Change, Similarity and Redundancy in Software
软件中的变化、相似性和冗余
  • 批准号:
    RGPIN-2015-04396
  • 财政年份:
    2019
  • 资助金额:
    $ 3.13万
  • 项目类别:
    Discovery Grants Program - Individual
Change, Similarity and Redundancy in Software
软件中的变化、相似性和冗余
  • 批准号:
    RGPIN-2015-04396
  • 财政年份:
    2018
  • 资助金额:
    $ 3.13万
  • 项目类别:
    Discovery Grants Program - Individual
Change, Similarity and Redundancy in Software**
软件中的变更、相似性和冗余**
  • 批准号:
    477859-2015
  • 财政年份:
    2018
  • 资助金额:
    $ 3.13万
  • 项目类别:
    Discovery Grants Program - Accelerator Supplements
Change, Similarity and Redundancy in Software
软件中的变化、相似性和冗余
  • 批准号:
    RGPIN-2015-04396
  • 财政年份:
    2017
  • 资助金额:
    $ 3.13万
  • 项目类别:
    Discovery Grants Program - Individual
Change, Similarity and Redundancy in Software
软件中的变化、相似性和冗余
  • 批准号:
    477859-2015
  • 财政年份:
    2017
  • 资助金额:
    $ 3.13万
  • 项目类别:
    Discovery Grants Program - Accelerator Supplements
Change, Similarity and Redundancy in Software
软件中的变化、相似性和冗余
  • 批准号:
    RGPIN-2015-04396
  • 财政年份:
    2016
  • 资助金额:
    $ 3.13万
  • 项目类别:
    Discovery Grants Program - Individual
Change, Similarity and Redundancy in Software
软件中的变化、相似性和冗余
  • 批准号:
    RGPIN-2015-04396
  • 财政年份:
    2015
  • 资助金额:
    $ 3.13万
  • 项目类别:
    Discovery Grants Program - Individual
Change, similarity and redundancy in software systems
软件系统中的变化、相似性和冗余
  • 批准号:
    386505-2010
  • 财政年份:
    2014
  • 资助金额:
    $ 3.13万
  • 项目类别:
    Discovery Grants Program - Individual
Change, similarity and redundancy in software systems
软件系统中的变化、相似性和冗余
  • 批准号:
    386505-2010
  • 财政年份:
    2013
  • 资助金额:
    $ 3.13万
  • 项目类别:
    Discovery Grants Program - Individual
{{ showInfoDetail.title }}

作者:{{ showInfoDetail.author }}

知道了