arrow
返回

COSTAR: Software Code Smell Detection Through Tree-Based Abstract Representation

delete2026-01-01
delete0
PRE
AI
M
Mahipal Jadeja
S
Satyendra Singh Chouhan
S
Santosh Singh Rathore
DOI:10.1109/TR.2025.3648404delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
代码异味是会增加软件维护成本且难以手动检测的次优代码结构。研究人员已探索使用机器学习(ML)方法进行自动代码异味检测,这些方法严重依赖静态代码度量或源代码表示。静态代码度量通常依赖结构属性,如代码行数、圈复杂度或注释密度。然而,这些度量并不总能反映真实的代码复杂度,且仅提供定量见解,无法内在地检测不良编码实践。相比之下,抽象语法树(AST)等表示形式则关注代码的结构和语法元素,捕捉源代码中的层次关系和上下文关系。这有助于精确识别循环、函数调用和条件语句等代码结构,这些结构对于检测代码异味至关重要。本文介绍了基于树的抽象表示代码异味检测(COSTAR),这是一种使用AST来唯一表示每个源代码实例的源代码表示技术。COSTAR通过提取AST中从根到各个节点的所有路径来捕捉源代码的层次结构。通过采用预训练的Transformer双向编码器表示模型(BERT),COSTAR为每条提取的路径生成向量。随后计算这些向量的均值,得到精确且全面的源代码表示。在四个基准MLCQ代码异味数据集(数据类、上帝类(Blob)、特性嫉妒和长方法)上,采用多种ML技术进行了广泛实验以验证COSTAR的性能。采用了多种性能指标来评估模型表现。实验结果表明,与现有方法相比,COSTAR提升了代码异味检测模型的性能,F1分数的改进幅度从0.03(长方法)到0.19(特性嫉妒)不等。此外,COSTAR与最先进方法的比较表明,其在代码异味检测方面优于Code2Vec和CuBERT等方法。
Keyword:
Code smell prediction
empirical study
imbalance learning
software maintainability
source code representation

期刊

IEEE Transactions on Reliability 封面图
IEEE Transactions on Reliability
IF:
5.7
论文数:
2.7K
被引数:
8.5K

机构

A
abv-iiitm gwalior
学者数:
14
论文数: 7
被引数: 0
M
malaviya national institute of technology
学者数:
163
论文数: 89
被引数: 0
引用论文

引用论文

Automatic detection of Long Method and God Class code smells through neural source code embeddings
err2022-10-01
err25
errOAAI
errKovacevic, Aleksandar; Slivka, Jelena; Vidakovic, Dragan; Grujic, Katarina-Glorija; Luburic, Nikola; Prokic, Simona; Sladic, Goran
err分享
err收藏
MLCQ
err2020-04-17
err0
PREAI
errLech Madeyski; Tomasz Lewowski
err分享
err收藏
err分享
err收藏
err分享
err收藏
err分享
err收藏
学者 查看更多内容