An Investigative Study on How Developers Filter and Prioritize Code Smells

Natthawute SAE-LIM  Shinpei HAYASHI  Motoshi SAEKI  

IEICE TRANSACTIONS on Information and Systems   Vol.E101-D   No.7   pp.1733-1742
Publication Date: 2018/07/01
Online ISSN: 1745-1361
DOI: 10.1587/transinf.2017KBP0006
Type of Manuscript: Special Section PAPER (Special Section on Knowledge-Based Software Engineering)
code smells,  code smell filtration,  code smell prioritization,  practitioner's perspective,  

Full Text: PDF(610.6KB)
>>Buy this Article

Code smells are indicators of design flaws or problems in the source code. Various tools and techniques have been proposed for detecting code smells. These tools generally detect a large number of code smells, so approaches have also been developed for prioritizing and filtering code smells. However, lack of empirical data detailing how developers filter and prioritize code smells hinders improvements to these approaches. In this study, we investigated ten professional developers to determine the factors they use for filtering and prioritizing code smells in an open source project under the condition that they complete a list of five tasks. In total, we obtained 69 responses for code smell filtration and 50 responses for code smell prioritization from the ten professional developers. We found that Task relevance and Smell severity were most commonly considered during code smell filtration, while Module importance and Task relevance were employed most often for code smell prioritization. These results may facilitate further research into code smell detection, prioritization, and filtration to better focus on the actual needs of developers.