TY - JOUR
T1 - On the Assessment of Interactive Detection of Code Smells in Practice
T2 - A Controlled Experiment
AU - Albuquerque, Danyllo
AU - Guimaraes, Everton
AU - Perkusich, Mirko
AU - Rique, Thiago
AU - Cunha, Felipe
AU - Almeida, Hyggo
AU - Perkusich, Angelo
N1 - Publisher Copyright:
© 2013 IEEE.
PY - 2023
Y1 - 2023
N2 - Code smells are structures in a program that often indicate the presence of deeper maintainability problems. Code smells should be detected as soon as they are introduced, enabling refactoring actions with less effort and time. Non-Interactive Detection (NID) techniques traditionally support code smells detection, enabling developers to reveal smells in later software program versions. NID techniques do not support developers' progressive interaction with smelly code, revealing smells in the entire source code upon an explicit developer request, which might lead to the accumulation of code smells and, consequently, the degradation of software quality. Interactive Detection (ID) has emerged as a solution to overcome NID's limitations. By revealing code smell as soon as they are introduced, developers can detect smell instances earlier, resulting in more effective refactoring actions and improved code quality. However, despite its promising potential, there is a lack of evidence regarding the ID impact on code smell detection and refactoring actions during coding analysis. Our research focused on evaluating the effectiveness of an ID technique in code smell detection. Besides, we analyzed the aid of an ID technique in performing effective refactoring actions during coding analysis. To this end, we conducted a controlled experiment with 16 subjects that underwent tasks related to detecting code smells and judging refactoring actions. The experimental tasks revealed that using the ID technique led to an increase of 60% in recall and up to 13% in precision when detecting code smells. Additionally, developers have effectively identified about 55% more code smells instances using the ID technique. Our study results revealed that using ID can improve the effectiveness of code smells detection, as developers can identify opportunities for refactoring actions earlier when compared to NID.
AB - Code smells are structures in a program that often indicate the presence of deeper maintainability problems. Code smells should be detected as soon as they are introduced, enabling refactoring actions with less effort and time. Non-Interactive Detection (NID) techniques traditionally support code smells detection, enabling developers to reveal smells in later software program versions. NID techniques do not support developers' progressive interaction with smelly code, revealing smells in the entire source code upon an explicit developer request, which might lead to the accumulation of code smells and, consequently, the degradation of software quality. Interactive Detection (ID) has emerged as a solution to overcome NID's limitations. By revealing code smell as soon as they are introduced, developers can detect smell instances earlier, resulting in more effective refactoring actions and improved code quality. However, despite its promising potential, there is a lack of evidence regarding the ID impact on code smell detection and refactoring actions during coding analysis. Our research focused on evaluating the effectiveness of an ID technique in code smell detection. Besides, we analyzed the aid of an ID technique in performing effective refactoring actions during coding analysis. To this end, we conducted a controlled experiment with 16 subjects that underwent tasks related to detecting code smells and judging refactoring actions. The experimental tasks revealed that using the ID technique led to an increase of 60% in recall and up to 13% in precision when detecting code smells. Additionally, developers have effectively identified about 55% more code smells instances using the ID technique. Our study results revealed that using ID can improve the effectiveness of code smells detection, as developers can identify opportunities for refactoring actions earlier when compared to NID.
UR - http://www.scopus.com/inward/record.url?scp=85166779930&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85166779930&partnerID=8YFLogxK
U2 - 10.1109/ACCESS.2023.3302260
DO - 10.1109/ACCESS.2023.3302260
M3 - Article
AN - SCOPUS:85166779930
SN - 2169-3536
VL - 11
SP - 84589
EP - 84606
JO - IEEE Access
JF - IEEE Access
ER -