The ‘deception’ of code smells: An empirical investigation

Steve Counsell, Haitham S. Hamza, Robert M. Hierons · Information Technology Interfaces · 2010

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.

Read the paper · More papers on PaperTik