Data preparation for Deep Learning based Code Smell Detection: A systematic literature review.
Abstract
Code Smell Detection (CSD) plays a crucial role in improving software quality and maintainability. And Deep Learning (DL) techniques have emerged as a promising approach for CSD due to their superior performance. However, the effectiveness of DL-based CSD methods heavily relies on the quality of the training data. Despite its importance, little attention has been paid to analyzing the data preparation process. This systematic literature review analyzes the data preparation techniques used in DL-based CSD methods. We identify 36 relevant papers published by December 2023 and provide a thorough analysis of the critical considerations in constructing CSD datasets, including data requirements, collection, labeling, and cleaning. We also summarize seven primary challenges and corresponding solutions in the literature. Finally, we offer actionable recommendations for preparing and accessing high-quality CSD data, emphasizing the importance of data diversity, standardization, and accessibility. This survey provides valuable insights for researchers and practitioners to harness the full potential of DL techniques in CSD. 1. Introduction Code smell refers to certain symptoms or indications in the source code that suggest there may be underlying problems or potential design flaws (Danphitsanuphan and Suwantada, 2012; Santos et al., 2018; Zakeri-Nasrabadi et al., 2023; Li et al., 2023b). It does not necessarily indicate a functional error or bug in the code but rather highlights programming practices that can impair the maintainability, readability, and extensibility of the software (Di Nucci et al., 2018; Alazba et al., 2023; Hu et al., 2023; Liu et al., 2024). Code Smell Detection (CSD) aims to automatically identify code smells in software source code to ensure code quality, improve software maintainability, and promote good programming practices. Recently, Deep Learning (DL) techniques are gaining popularity in the CSD task (Guo et al., 2019; Kim, 2020; Hamdy and Tazy, 2020). The main advantage of DL models is their ability to automatically encode and learn from raw data, eliminating the need for handcrafted rules and feature engineering presented in previous heuristi