Evaluating Interactive Detection of Code Smells on Software Development Activities

Traditional code smell detection techniques rely on Non-Interactive Detection (NID), which only allows developers to identify smells in the entire source code upon request. However, studies suggest that NID may lead to fewer correctly identified smells, increasing remaining code smell instances. To address NID’s limitations, Interactive Detection (ID) has emerged, allowing developers to reveal smell instances without explicit requests and promoting early detection and correction. In this study, we aimed to evaluate the impact of ID on detecting code smells during software development by conducting a controlled experiment using Eclipse ConCAD with software developers and students. Our results indicated that ID could decrease up to 40% of remaining smell instances compared to NID during software development activities. Our findings suggest that ID is an effective technique to help developers quickly detect and fix code smell instances, improving overall code quality.

[1]  Rajwant Singh Rao,et al.  Code Smell Detection Using Ensemble Machine Learning Algorithms , 2022, Applied Sciences.

[2]  Everton T. Guimarães,et al.  ConCAD: A Tool for Interactive Detection of Code Anomalies , 2022, VEM.

[3]  Everton T. Guimarães,et al.  Empirical Assessment on Interactive Detection of Code Smells , 2022, 2022 International Conference on Software, Telecommunications and Computer Networks (SoftCOM).

[4]  E. Kolaczyk,et al.  Statistical Analysis of Network Data with R , 2020, Use R!.

[5]  Alexander Pretschner,et al.  Software quality assessment in practice: a hypothesis-driven framework , 2018, ESEM.

[6]  Fabian Beck,et al.  Detecting Bad Smells in Software Systems with Linked Multivariate Visualizations , 2018, 2018 IEEE Working Conference on Software Visualization (VISSOFT).

[7]  Diomidis Spinellis,et al.  A survey on software smells , 2018, J. Syst. Softw..

[8]  Mauricio A. Saca Refactoring improving the design of existing code , 2017, 2017 IEEE 37th Central America and Panama Convention (CONCAPAN XXXVII).

[9]  Eduardo Figueiredo,et al.  On the evaluation of code smells and detection tools , 2017, Journal of Software Engineering Research and Development.

[10]  Gabriele Bavota,et al.  On the diffuseness and the impact on maintainability of code smells: a large scale empirical investigation , 2017, Empirical Software Engineering.

[11]  Foutse Khomh,et al.  On the use of developers' context for automatic refactoring of software anti-patterns , 2017, J. Syst. Softw..

[12]  Benjamin Livshits,et al.  Just-in-time static analysis , 2016, ISSTA.

[13]  Marco Tulio Valente,et al.  Why we refactor? confessions of GitHub contributors , 2016, SIGSOFT FSE.

[14]  Eduardo Figueiredo,et al.  A review-based comparative study of bad smell detection tools , 2016, EASE.

[15]  Jeremy Singer,et al.  Search-Based Refactoring: Metrics Are Not Enough , 2015, SSBSE.

[16]  Mika Mäntylä,et al.  Comparing and experimenting machine learning techniques for code smell detection , 2015, Empirical Software Engineering.

[17]  Gabriele Bavota,et al.  When and Why Your Code Starts to Smell Bad (and Whether the Smells Go Away) , 2015, IEEE Transactions on Software Engineering.

[18]  M. Kraska-MIller,et al.  Nonparametric Statistics for Social and Behavioral Sciences , 2013 .

[19]  Margaret M. Burnett,et al.  A practical guide to controlled experiments of software engineering tools with human participants , 2013, Empirical Software Engineering.

[20]  Andrew P. Black,et al.  Interactive ambient visualizations for soft advice , 2013, Inf. Vis..

[21]  Andrew P. Black,et al.  An interactive ambient visualization for code smells , 2010, SOFTVIS '10.

[22]  Andrew P. Black,et al.  Refactoring Tools: Fitness for Purpose , 2008, IEEE Software.

[23]  Mika Mäntylä,et al.  An experiment on subjective evolvability evaluation of object-oriented software: explaining factors and interrater agreement , 2005, 2005 International Symposium on Empirical Software Engineering, 2005..

[24]  Radu Marinescu,et al.  Measurement and Quality in Object-Oriented Design , 2005, ICSM.

[25]  Rajwant Singh Rao,et al.  A Novel Approach for Code Smell Detection: An Empirical Study , 2021, IEEE Access.

[26]  William F. Opdyke,et al.  Refactoring object-oriented frameworks , 1992 .