An Empirical Investigation of Code Smell 'Deception' and Research Contextualisation through Paul's Criteria

Steve Counsell, Hamza Hamza, Rob M. Hierons


Code smells represent code decay and as such should be eradicated from a system to prevent future maintenance problems. A range of twenty smells described by Fowler and Beck each require varying numbers and combinations of refactorings in order to be eradicated - but exactly how many are needed when we consider related, nested refactorings is unclear. In this paper, we enumerate these refactorings when categorised according to Mantyla's smell taxonomy. We then show how, ironically, the 'smelliest' of smells (and hence most difficult to eradicate) are actually those best understood by developers. So, code smells are not only unpleasant to have around but are deceptive in their nature and make-up. The study is thus a warning against attempting what are seemingly easily eradicated smells - these are often the smells the developer needs to be most wary of. Finally, we incorporate the answers to six questions suggested by Paul for 'How to write a paper properly' to position the paper in a reflective way.


refactoring, OO, code smell

Full Text:



Creative Commons License
This work is licensed under a Creative Commons Attribution-NoDerivatives 4.0 International License.

Crossref Similarity Check logo

Crossref logologo_doaj