返回
A survey on code smells detection using machine learning techniques
DOI:10.1016/j.infsof.2026.108242.png)
摘要
En 中文
代码异味是设计恶化和可维护性下降的广泛使用指标,其检测已从基于启发式和度量规则的演变到基于学习的方法,这些方法在源代码的结构和文本视图上运行。尽管如此,现有综述仅捕获了部分领域,并仅有限地提供了关于现代机器学习和深度学习技术、代码表示和数据集如何在实践中相互作用的见解。本研究提供了2013年至2025年3月代码异味检测研究的综合综述,涵盖启发式、演化、传统机器学习和深度学习方法。我们分析了检测技术、所依赖的代码表示、用于评估的数据集和基准,以及先前工作通过可用工具、代码和复制包支持可复现性的程度。基于此综述,我们在MLCQ数据集上进行了一项比较研究,其中来自三个家族的17个模型(面向对象度量的经典ML、基于标记序列的DL和基于抽象语法树的图神经网络)在四种异味(功能贪恋、过长方法、Blob和数据类)下使用统一管道进行评估。结果显示:没有单一家族占主导地位:GNN在类级异味(Blob、数据类)上表现优异,序列模型在过长方法上领先,而功能贪恋对所有家族而言仍是一个开放挑战,因为当前表示缺乏类间上下文。该综述整合了代码异味检测的当前知识,并确定了与数据集覆盖范围、注释质量和可复现性相关的开放挑战,而比较研究提供了一个透明的基础,可为未来评估提供信息和扩展。
Keyword:
Code smells
Static analysis
Machine learning
Deep learning
Software quality
期刊
IF:
4.3
论文数:
3.8K
被引数:
7.7K
机构
引用论文
暂无论文信息

