Change, Similarity and Redundancy in Software
软件中的变化、相似性和冗余
基本信息
- 批准号:RGPIN-2015-04396
- 负责人:
- 金额:$ 3.13万
- 依托单位:
- 依托单位国家:加拿大
- 项目类别:Discovery Grants Program - Individual
- 财政年份:2016
- 资助国家:加拿大
- 起止时间:2016-01-01 至 2017-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
Change, Similarity and Redundancy in Software
软件中的变化、相似性和冗余
- 批准号:
RGPIN-2015-04396 - 财政年份:2020
- 资助金额:
$ 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 - 财政年份: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 - 财政年份:2020
- 资助金额:
$ 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 - 财政年份: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