arrow
返回

Unraveling Code Clone Dynamics in Deep Learning Frameworks

delete2025-10-04
delete0
delete
OA
AI
M
Maram Assi
S
Safwat Hassan
Y
Ying Zou
DOI:10.1145/3721125delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
深度学习(DL)框架在推动人工智能发展中扮演着关键角色,其快速发展凸显了对软件质量和可维护性进行全面理解的需求。与其它系统类似,DL框架也容易产生代码克隆。代码克隆指在同一项目内或跨不同项目中存在的相同或高度相似的源代码片段。代码克隆对软件开发既有积极影响也有消极影响,会影响维护、可读性和错误传播。尽管现有研究聚焦于研究基于DL的应用中的克隆现象,但据我们所知,尚未有工作专门探讨DL框架中的克隆现象、其演化过程以及对维护工作的影响。本文旨在填补关于DL框架中代码克隆演化维度及跨框架代码复用程度方面的知识空白。我们通过实证分析九个流行的DL框架(即TensorFlow、Paddle、PyTorch、Aesara、Ray、MXNet、Keras、Jax和BentoML)中的代码克隆现象,以研究:(1)每个框架版本发布过程中长期代码克隆演化的特征;(2)短期(即版本内)代码克隆模式及其对长期趋势的影响;(3)DL框架中的文件级代码克隆。研究发现,DL框架采用了四种不同的克隆趋势:“蜿蜒式”(Serpentine)、“升降式”(Rise and Fall)、“递减式”(Decreasing)和“稳定式”(Stable),且这些趋势呈现出一些共性和特性。例如,无论克隆演化趋势如何,修复缺陷的活动都持续存在于克隆代码中,但“蜿蜒式”趋势中的此类活动更为常见。此外,版本内层面的研究表明,短期代码克隆实践会影响长期克隆趋势。跨框架代码克隆调查揭示了在所研究的九个框架中存在功能性及架构性适应的文件级跨框架代码克隆。我们提供的见解有助于促进DL框架开发中稳健的克隆实践和协作式维护。

期刊

A
ACM Transactions on Software Engineering and Methodology
IF:
6.2
论文数:
1.2K
被引数:
3.4K

机构

暂无机构信息
引用论文

引用论文