Automatic detection of Long Method and God Class code smells through neural source code embeddings

代码气味 计算机科学 源代码 启发式 编码(集合论) 人工智能 机器学习 公制(单位) 代码评审 静态程序分析 软件质量 软件 程序设计语言 软件开发 运营管理 经济 集合(抽象数据类型) 操作系统
作者
Aleksandar Kovačević,Јелена Сливка,Dragan Vidaković,Katarina-Glorija Grujić,Nikola Luburić,Simona Prokić,Goran Sladić
出处
期刊:Expert Systems With Applications [Elsevier BV]
卷期号:204: 117607-117607 被引量:45
标识
DOI:10.1016/j.eswa.2022.117607
摘要

Code smells are structures in code that often harm its quality. Manually detecting code smells is challenging, so researchers proposed many automatic detectors. Traditional code smell detectors employ metric-based heuristics, but researchers have recently adopted a Machine-Learning (ML) based approach. This paper compares the performance of multiple ML-based code smell detection models against multiple metric-based heuristics for detection of God Class and Long Method code smells. We assess the effectiveness of different source code representations for ML: we evaluate the effectiveness of traditionally used code metrics against code embeddings (code2vec, code2seq, and CuBERT). This study is the first to evaluate the effectiveness of pre-trained neural source code embeddings for code smell detection to the best of our knowledge. This approach helped us leverage the power of transfer learning – our study is the first to explore whether the knowledge mined from code understanding models can be transferred to code smell detection. A secondary contribution of our research is the systematic evaluation of the effectiveness of code smell detection approaches on the same large-scale, manually labeled MLCQ dataset. Almost every study that proposes a detection approach tests this approach on the dataset unique for the study. Consequently, we cannot directly compare the reported performances to derive the best-performing approach.

科研通智能强力驱动
Strongly Powered by AbleSci AI
科研通是完全免费的文献互助平台,具备全网最快的应助速度,最高的求助完成率。 对每一个文献求助,科研通都将尽心尽力,给求助人一个满意的交代。
实时播报
善学以致用应助@@@采纳,获得10
1秒前
ttt发布了新的文献求助10
1秒前
2秒前
qpisuo发布了新的文献求助10
3秒前
Sissi发布了新的文献求助10
7秒前
7秒前
赘婿应助nicolight采纳,获得10
8秒前
xiaoqi1发布了新的文献求助10
11秒前
11秒前
CodeCraft应助热心市民小杨采纳,获得10
12秒前
Jasper应助挥发的川采纳,获得10
12秒前
jinjin完成签到,获得积分10
13秒前
13秒前
Lucas应助疼痛采纳,获得10
14秒前
蓝天发布了新的文献求助10
14秒前
鲁班大神发布了新的文献求助10
14秒前
潇洒皮带完成签到,获得积分10
15秒前
@@@发布了新的文献求助10
17秒前
Demon发布了新的文献求助10
20秒前
桐桐应助蓝天采纳,获得10
20秒前
CipherSage应助Adelinelili采纳,获得10
22秒前
你嵙这个期刊没买完成签到,获得积分0
23秒前
24秒前
SciGPT应助傑丨楽采纳,获得30
25秒前
25秒前
25秒前
CipherSage应助Astraeus采纳,获得10
25秒前
Demon完成签到,获得积分20
27秒前
28秒前
mrscoma发布了新的文献求助10
29秒前
Chubby_Li完成签到,获得积分20
30秒前
热心市民小红花完成签到,获得积分0
30秒前
30秒前
小小牛马应助科研通管家采纳,获得10
31秒前
赘婿应助科研通管家采纳,获得10
31秒前
无花果应助科研通管家采纳,获得10
31秒前
miss张应助科研通管家采纳,获得10
31秒前
完美世界应助科研通管家采纳,获得10
31秒前
蓝天应助科研通管家采纳,获得10
31秒前
完美世界应助科研通管家采纳,获得10
31秒前
高分求助中
(应助此贴封号)【重要!!请各用户(尤其是新用户)详细阅读】【科研通的精品贴汇总】 10000
PowerCascade: A Synthetic Dataset for Cascading Failure Analysis in Power Systems 2000
Picture this! Including first nations fiction picture books in school library collections 1000
Signals, Systems, and Signal Processing 610
Unlocking Chemical Thinking: Reimagining Chemistry Teaching and Learning 555
Photodetectors: From Ultraviolet to Infrared 500
信任代码:AI 时代的传播重构 450
热门求助领域 (近24小时)
化学 材料科学 医学 生物 纳米技术 工程类 有机化学 化学工程 生物化学 计算机科学 物理 内科学 复合材料 催化作用 物理化学 光电子学 电极 细胞生物学 基因 无机化学
热门帖子
关注 科研通微信公众号,转发送积分 6357253
求助须知:如何正确求助?哪些是违规求助? 8171923
关于积分的说明 17206201
捐赠科研通 5412863
什么是DOI,文献DOI怎么找? 2864813
邀请新用户注册赠送积分活动 1842233
关于科研通互助平台的介绍 1690490