A Taxonomy of Software Smells

Kent Beck coined the term “code smell” in the popular Refactoring book by Martin Fowler and defined it informally as certain structures in the code that suggest (sometimes they scream for) the possibility of refactoring. Since then, various smells have been reported that impair software quality in one or more ways. I attempt to prepare and present a taxonomy of software smells by cataloging, classifying, and inter-relating smell definitions present in existing literature with their references.

You may access the taxonomy here.

The taxonomy is generated by a python program that I wrote to generate html pages. I provide smell description as well as corresponding references in a specific format and supply them to the python program. The program generates required html pages with links that inter-relate the generated html pages. I used basic CSS to look the collection of the html files a little better.

This taxonomy is evolving. I plan to add many more smells (for instance, lexicon smells, performance smells, and energy smells). If you would like to point me to a (missing) smell or reference, or would like to suggest something, feel free to email to me at tusharsharma@ieee.org.