4.5 Article

Code smell detection by deep direct-learning and transfer-learning?

Journal

JOURNAL OF SYSTEMS AND SOFTWARE
Volume 176, Issue -, Pages -

Publisher

ELSEVIER SCIENCE INC
DOI: 10.1016/j.jss.2021.110936

Keywords

Code smells; Smell detection tools; Deep learning; Transfer-learning

Funding

  1. seneca project, Marie Sklodowska-Curie Innovative Training Networks (itn-eid) [642954]
  2. crossminer project from the European Union's Horizon 2020 Research and Innovation Programme [732223]
  3. National Infrastructures for Research and Technology s.a. (grnet s.a.) in the National hpc facility - aris [pa180903-smellsdl]
  4. Marie Curie Actions (MSCA) [642954] Funding Source: Marie Curie Actions (MSCA)

Ask authors/readers for more resources

This study explores the feasibility of using deep learning models to detect code smells without extensive feature engineering, as well as investigates the possibility of applying transfer-learning in the context of detecting code smells. The results show that deep learning methods can detect code smells, with performance varying depending on the specific smell, and transfer-learning is feasible for implementation smells with comparable performance to direct-learning.
Context: An excessive number of code smells make a software system hard to evolve and maintain. Machine learning methods, in addition to metric-based and heuristic-based methods, have been recently applied to detect code smells; however, current methods are considered far from mature. Objective: First, explore the feasibility of applying deep learning models to detect smells without extensive feature engineering. Second, investigate the possibility of applying transfer-learning in the context of detecting code smells. Methods: We train smell detection models based on Convolution Neural Networks and Recurrent Neural Networks as their principal hidden layers along with autoencoder models. For the first objective, we perform training and evaluation on C# samples, whereas for the second objective, we train the models from C# code and evaluate the models over Java code samples and vice-versa. Results: We find it feasible to detect smells using deep learning methods though the models' performance is smell-specific. Our experiments show that transfer-learning is definitely feasible for implementation smells with performance comparable to that of direct-learning. This work opens up a new paradigm to detect code smells by transfer-learning especially for the programming languages where the comprehensive code smell detection tools are not available. (C) 2021 Elsevier Inc. All rights reserved.

Authors

I am an author on this paper
Click your name to claim this paper and add it to your profile.

Reviews

Primary Rating

4.5
Not enough ratings

Secondary Ratings

Novelty
-
Significance
-
Scientific rigor
-
Rate this paper

Recommended

No Data Available
No Data Available