arrow
Return

Deep Learning Based Code Smell Detection

delete2021-01-01
delete79
PRE
AI
刘辉 cover
刘辉 (Hui Liu) *
J
Jiahao Jin
Z
Zhifeng Xu
Z
Zou, Yanzhen
B
Bu, Yifan
张璐 (Lu Zhang)
DOI:10.1109/TSE.2019.2936376delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
Code smells are structures in the source code that suggest the possibility of refactorings. Consequently, developers may identify refactoring opportunities by detecting code smells. However, manual identification of code smells is challenging and tedious. To this end, a number of approaches have been proposed to identify code smells automatically or semi-automatically. Most of such approaches rely on manually designed heuristics to map manually selected source code metrics into predictions. However, it is challenging to manually select the best features. It is also difficult to manually construct the optimal heuristics. To this end, in this paper we propose a deep learning based novel approach to detecting code smells. The key insight is that deep neural networks and advanced deep learning techniques could automatically select features of source code for code smell detection, and could automatically build the complex mapping between such features and predictions. A big challenge for deep learning based smell detection is that deep learning often requires a large number of labeled training data (to tune a large number of parameters within the employed deep neural network) whereas existing datasets for code smell detection are rather small. To this end, we propose an automatic approach to generating labeled training data for the neural network based classifier, which does not require any human intervention. As an initial try, we apply the proposed approach to four common and well-known code smells, i.e., feature envy, long method, large class, and misplaced class. Evaluation results on open-source applications suggest that the proposed approach significantly improves the state-of-the-art.
Keywords:
Software
Deep learning
Feature extraction
Training data
Neural networks
Measurement
Software refactoring
code smells
identification
deep learning
quality
AI Summary

AI Summary

Key information extracted from the uploaded paper, including a brief overview, abstract, background, key highlights, visual analysis, and future outlook.

Journal

IEEE Transactions on Software Engineering cover
IEEE Transactions on Software Engineering
IF:
5.6
Papers:
2.8K
Citations:
1.1W

Organization

B
beijing institute of technology
Scholars:
5.4W
Papers: 3.9W
Citations: 63
P
peking university
Scholars:
11.7W
Papers: 8.7W
Citations: 146