The Scent of a Smell: An Extensive Comparison between Textual and Structural Smells

Fabio Palomba, Annibale Panichella, Andy Zaidman, Rocco Oliveto, Andrea De Lucia

Research output: Contribution to journalArticleScientificpeer-review

49 Citations (Scopus)
87 Downloads (Pure)

Abstract

Code smells are symptoms of poor design or implementation choices that have a negative effect on several aspects of software maintenance and evolution, such as program comprehension or change- and fault-proneness. This is why researchers have spent a lot of effort on devising methods that help developers to automatically detect them in source code. Almost all the techniques presented in literature are based on the analysis of structural properties extracted from source code, although alternative sources of information (e.g., textual analysis) for code smell detection have also been recently investigated. Nevertheless, some studies have indicated that code smells detected by existing tools based on the analysis of structural properties are generally ignored (and thus not refactored) by the developers. In this paper, we aim at understanding whether code smells detected using textual analysis are perceived and refactored by developers in the same or different way than code smells detected through structural analysis. To this aim, we set up two different experiments. We have first carried out a software repository mining study to analyze how developers act on textually or structurally detected code smells. Subsequently, we have conducted a user study with industrial developers and quality experts in order to qualitatively analyze how they perceive code smells identified using the two different sources of information. Results indicate that textually detected code smells are easier to identify and for this reason they are considered easier to refactor with respect to code smells detected using structural properties. On the other hand, the latter are often perceived as more severe, but more difficult to exactly identify and remove.

Original languageEnglish
Pages (from-to)977-1000
Number of pages24
JournalIEEE Transactions on Software Engineering
Volume44
Issue number10
DOIs
Publication statusPublished - 2018

Bibliographical note

Accepted Author Manuscript

Keywords

  • Code Smells
  • Data mining
  • Detectors
  • Empirical Study
  • Large scale integration
  • Maintenance engineering
  • Mining Software Repositories
  • Software systems
  • Tools

Fingerprint

Dive into the research topics of 'The Scent of a Smell: An Extensive Comparison between Textual and Structural Smells'. Together they form a unique fingerprint.

Cite this