arrow
返回

Developers' perception matters: machine learning to detect developer-sensitive smells

delete2022-10-12
delete0
PRE
AI
D
Daniel Oliveira *
W
Wesley K. G. Assunção
A
Alessandro Garcia
B
Baldoíno Fonseca
M
Márcio Ribeiro
DOI:10.1007/s10664-022-10234-2delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
Code smells are symptoms of poor design that hamper software evolution and maintenance. Hence, code smells should be detected as early as possible to avoid software quality degradation. However, the notion of whether a design and/or implementation choice is smelly is subjective, varying for different projects and developers. In practice, developers may have different perceptions about the presence (or not) of a smell, which we call developer-sensitive smell detection. Although Machine Learning (ML) techniques are promising to detect smells, there is little knowledge regarding the accuracy of these techniques to detect developer-sensitive smells. Besides, companies may change developers frequently, and the models should adapt quickly to the preferences of new developers, i.e., using few training instances. Based on that, we present an investigation of the behavior of ML techniques in detecting developer-sensitive smells. We evaluated seven popular ML techniques based on their accuracy and efficiency for identifying 10 smell types according to individual perceptions of 63 developers, with some divergent agreement on the presence of smells. The results showed that five out of seven techniques had statistically similar behavior, being able to properly detect smells. However, the accuracy of all ML techniques was affected by developers' opinion agreement and smell types. We also observed that the detection rules generated for developers individually have more metrics than in related studies. We can conclude that code smells detection tools should consider the individual perception of each developer to reach higher accuracy. However, untrained developers or developers with high disagreement can introduce bias in the smell detection, which can be risky for overall software quality. Moreover, our findings shed light on improving the state of the art and practice for the detection of code smells, contributing to multiple stakeholders.
Keyword:
Software quality
Machine learning
Code smell detection
Code smell

期刊

Empirical Software Engineering 封面图
Empirical Software Engineering
IF:
3.6
论文数:
2.0K
被引数:
5.3K

机构

Universidade Federal de Alagoas 封面图
Universidade Federal de Alagoas
学者数:
3.4K
论文数: 1.9K
被引数: 1.8K
P
pontificia universidade catolica do rio de janeiro
学者数:
2.2K
论文数: 1.7K
被引数: 0
引用论文

引用论文

err
IF0
err
err0
PREAI
err
err分享
err收藏
Fragmentation of the universe
err1983-08-01
err0
PREAI
errW. K. Brown; R. R. Karpp; D. E. Grady
err分享
err收藏
err分享
err收藏
Recombination between an expressed immunoglobulin heavy-chain gene and a germline variable gene segment in a Ly 1+ B-cell lymphoma
err1986-08-01
err0
PREAI
errRobert Kleinfield; Richard R. Hardy; David Tarlinton; Jeffery Dangl; Leonard A. Herzenberg; Martin Weigert
err分享
err收藏
BDTEX: A GQM-based Bayesian approach for the detection of antipatterns
err2011-04-01
err143
PREAI
errKhomh, Foutse; Vaucher, Stephane; Gueheneuc, Yann-Gael; Sahraoui, Houari
err分享
err收藏
学者 查看更多内容