• 文献检索
  • 文档翻译
  • 深度研究
  • 学术资讯
  • Suppr Zotero 插件Zotero 插件
  • 邀请有礼
  • 套餐&价格
  • 历史记录
应用&插件
Suppr Zotero 插件Zotero 插件浏览器插件Mac 客户端Windows 客户端微信小程序
定价
高级版会员购买积分包购买API积分包
服务
文献检索文档翻译深度研究API 文档MCP 服务
关于我们
关于 Suppr公司介绍联系我们用户协议隐私条款
关注我们

Suppr 超能文献

核心技术专利:CN118964589B侵权必究
粤ICP备2023148730 号-1Suppr @ 2026

文献检索

告别复杂PubMed语法,用中文像聊天一样搜索,搜遍4000万医学文献。AI智能推荐,让科研检索更轻松。

立即免费搜索

文件翻译

保留排版,准确专业,支持PDF/Word/PPT等文件格式,支持 12+语言互译。

免费翻译文档

深度研究

AI帮你快速写综述,25分钟生成高质量综述,智能提取关键信息,辅助科研写作。

立即免费体验

代码克隆重构在演进软件中的历史透视。

Historical perspective of code clone refactorings in evolving software.

机构信息

Software Engineering Dept., National University of Moderns Languages, Islamabad, Pakistan.

Computer Science Dept., Quaid-i-Azam University, Islamabad, Pakistan.

出版信息

PLoS One. 2022 Dec 1;17(12):e0277216. doi: 10.1371/journal.pone.0277216. eCollection 2022.

DOI:10.1371/journal.pone.0277216
PMID:36454895
原文链接:https://pmc.ncbi.nlm.nih.gov/articles/PMC9714808/
Abstract

Cloning in software is generally perceived as a threat to its maintenance and that is why it needs to be managed properly. Understanding clones from a historical perspective is essential for effective clone management. Analysis of code refactorings performed on clones in previous releases will help developers in taking decisions about clone refactoring in future releases. In this paper we perform a longitudinal study on the evolution of clone refactorings in various versions of five software systems. To perform a systematic study on clone refactoring evolution, we define clone evolution patterns for studying refactorings in a formal notation. Our results show that only a small proportion of code clones are refactored between the versions and most of the refactorings are inconsistent within clone classes. Moreover, clone refactorings may cause clone removal. Analysis of the source code of refactored clones reveals similar reasons of inconsistent refactorings and clone removal for five Java systems. This analysis will help in devising appropriate strategies for managing clone refactorings in software and hence provide foundation for devising better clone management tools.

摘要

在软件中,克隆通常被视为对其维护的威胁,因此需要进行适当的管理。从历史角度理解克隆对于有效的克隆管理至关重要。分析以前版本中对克隆执行的代码重构将帮助开发人员在未来版本中做出关于克隆重构的决策。在本文中,我们对五个软件系统的各个版本中的克隆重构演化进行了纵向研究。为了对克隆重构演化进行系统研究,我们为研究重构定义了克隆演化模式,以形式化符号表示。我们的结果表明,版本之间只有一小部分代码克隆被重构,并且大多数重构在克隆类内是不一致的。此外,克隆重构可能导致克隆的删除。对重构克隆的源代码进行分析揭示了五个 Java 系统中不一致重构和克隆删除的类似原因。这种分析将有助于设计软件中管理克隆重构的适当策略,并为设计更好的克隆管理工具提供基础。

https://cdn.ncbi.nlm.nih.gov/pmc/blobs/faa8/9714808/6adfb84a1db6/pone.0277216.g009.jpg
https://cdn.ncbi.nlm.nih.gov/pmc/blobs/faa8/9714808/9f1c1d9617c8/pone.0277216.g001.jpg
https://cdn.ncbi.nlm.nih.gov/pmc/blobs/faa8/9714808/8b10907175a2/pone.0277216.g002.jpg
https://cdn.ncbi.nlm.nih.gov/pmc/blobs/faa8/9714808/09dc422aab64/pone.0277216.g003.jpg
https://cdn.ncbi.nlm.nih.gov/pmc/blobs/faa8/9714808/2867870a9a81/pone.0277216.g004.jpg
https://cdn.ncbi.nlm.nih.gov/pmc/blobs/faa8/9714808/70984e24a6ea/pone.0277216.g005.jpg
https://cdn.ncbi.nlm.nih.gov/pmc/blobs/faa8/9714808/f890bf56ca7d/pone.0277216.g006.jpg
https://cdn.ncbi.nlm.nih.gov/pmc/blobs/faa8/9714808/194b04d2eb47/pone.0277216.g007.jpg
https://cdn.ncbi.nlm.nih.gov/pmc/blobs/faa8/9714808/ac0593e13cfc/pone.0277216.g008.jpg
https://cdn.ncbi.nlm.nih.gov/pmc/blobs/faa8/9714808/6adfb84a1db6/pone.0277216.g009.jpg
https://cdn.ncbi.nlm.nih.gov/pmc/blobs/faa8/9714808/9f1c1d9617c8/pone.0277216.g001.jpg
https://cdn.ncbi.nlm.nih.gov/pmc/blobs/faa8/9714808/8b10907175a2/pone.0277216.g002.jpg
https://cdn.ncbi.nlm.nih.gov/pmc/blobs/faa8/9714808/09dc422aab64/pone.0277216.g003.jpg
https://cdn.ncbi.nlm.nih.gov/pmc/blobs/faa8/9714808/2867870a9a81/pone.0277216.g004.jpg
https://cdn.ncbi.nlm.nih.gov/pmc/blobs/faa8/9714808/70984e24a6ea/pone.0277216.g005.jpg
https://cdn.ncbi.nlm.nih.gov/pmc/blobs/faa8/9714808/f890bf56ca7d/pone.0277216.g006.jpg
https://cdn.ncbi.nlm.nih.gov/pmc/blobs/faa8/9714808/194b04d2eb47/pone.0277216.g007.jpg
https://cdn.ncbi.nlm.nih.gov/pmc/blobs/faa8/9714808/ac0593e13cfc/pone.0277216.g008.jpg
https://cdn.ncbi.nlm.nih.gov/pmc/blobs/faa8/9714808/6adfb84a1db6/pone.0277216.g009.jpg

相似文献

1
Historical perspective of code clone refactorings in evolving software.代码克隆重构在演进软件中的历史透视。
PLoS One. 2022 Dec 1;17(12):e0277216. doi: 10.1371/journal.pone.0277216. eCollection 2022.
2
Visualizing software refactoring using radar charts.使用雷达图可视化软件重构。
Sci Rep. 2023 Nov 9;13(1):19530. doi: 10.1038/s41598-023-44281-6.
3
Evaluating refactorings for disciplining #ifdef annotations: An eye tracking study with novices.评估用于规范 #ifdef 注释的重构方法:一项针对新手的眼动追踪研究。
Empir Softw Eng. 2021;26(5):92. doi: 10.1007/s10664-021-10002-8. Epub 2021 Jul 7.
4
A posteriori operation detection in evolving software models.演化软件模型中的后验操作检测
J Syst Softw. 2013 Feb;86(2):551-566. doi: 10.1016/j.jss.2012.09.037.
5
A systematic literature review on the applications of recurrent neural networks in code clone research.基于循环神经网络在代码克隆研究中的应用的系统性文献回顾。
PLoS One. 2024 Feb 2;19(2):e0296858. doi: 10.1371/journal.pone.0296858. eCollection 2024.
6
A novel code representation for detecting Java code clones using high-level and abstract compiled code representations.一种使用高级和抽象的编译代码表示来检测 Java 代码克隆的新代码表示方法。
PLoS One. 2024 May 10;19(5):e0302333. doi: 10.1371/journal.pone.0302333. eCollection 2024.
7
cloneRate: fast estimation of single-cell clonal dynamics using coalescent theory.克隆率:利用合并理论快速估计单细胞克隆动态。
Bioinformatics. 2023 Sep 2;39(9). doi: 10.1093/bioinformatics/btad561.
8
Clone-advisor: recommending code tokens and clone methods with deep learning and information retrieval.克隆建议器:利用深度学习和信息检索推荐代码令牌和克隆方法。
PeerJ Comput Sci. 2021 Nov 9;7:e737. doi: 10.7717/peerj-cs.737. eCollection 2021.
9
A refactoring categorization model for software quality improvement.用于软件质量改进的重构分类模型。
PLoS One. 2023 Nov 2;18(11):e0293742. doi: 10.1371/journal.pone.0293742. eCollection 2023.
10
Revealing the inherent heterogeneity of human malignancies by variant consensus strategies coupled with cancer clonal analysis.通过变异共识策略结合癌症克隆分析揭示人类恶性肿瘤的内在异质性。
BMC Bioinformatics. 2014;15 Suppl 11(Suppl 11):S9. doi: 10.1186/1471-2105-15-S11-S9. Epub 2014 Oct 21.

本文引用的文献

1
Free and Open Source Software organizations: A large-scale analysis of code, comments, and commits frequency.自由及开源软件组织:对代码、注释和提交频率的大规模分析。
PLoS One. 2021 Sep 23;16(9):e0257192. doi: 10.1371/journal.pone.0257192. eCollection 2021.
2
Open source software in quantum computing.量子计算中的开源软件。
PLoS One. 2018 Dec 20;13(12):e0208561. doi: 10.1371/journal.pone.0208561. eCollection 2018.
3
Inequalities in Open Source Software Development: Analysis of Contributor's Commits in Apache Software Foundation Projects.
开源软件开发中的不平等:对Apache软件基金会项目贡献者提交内容的分析。
PLoS One. 2016 Apr 20;11(4):e0152976. doi: 10.1371/journal.pone.0152976. eCollection 2016.