Automatic detection of bad smells in code: An experimental assessment

By: Francesca Arcelli Fontana, Pietro Braione, Marco Zanoni


Code smells are structural characteristics of software that may indicate a code or design problem that makes software hard to evolve and maintain, and may trigger refactoring of code. Recent research is active in defining automatic detection tools to help humans in finding smells when code size becomes unmanageable for manual review. Since the definitions of code smells are informal and subjective, assessing how effective code smell detection tools are is both important and hard to achieve. This paper reviews the current panorama of the tools for automatic code smell detection. It defines research questions about the consistency of their responses, their ability to expose the regions of code most affected by structural decay, and the relevance of their responses with respect to future software evolution. It gives answers to them by analyzing the output of four representative code smell detectors applied to six different versions of GanttProject, an open source system written in Java. The results of these experiments cast light on what current code smell detection tools are able to do and what the relevant areas for further improvement are.


Code smells, Code smell detection tools, Refactoring; Software quality evaluation

Cite as:

Francesca Arcelli Fontana, Pietro Braione, Marco Zanoni, “Automatic detection of bad smells in code: An experimental assessment”, Journal of Object Technology, Volume 11, no. 2 (August 2012), pp. 5:1-38, doi:10.5381/jot.2012.11.2.a5.

PDF | DOI | BiBTeX | Tweet this | Post to CiteULike | Share on LinkedIn

The JOT Journal   |   ISSN 1660-1769   |   DOI 10.5381/jot   |   AITO   |   Open Access   |    Contact