Previous MSc Theses

2019 | 2017 | 2016 | 2015 | 2014
2013 | 2012

"Detecting Inheritance Hierarchy Smells." I. Ziamos. M. Wood. Department of Computer and Information Sciences, University of Strathclyde. 2017. Download PDF (BibTeX) ACS

Technical debt in software systems takes many forms, some of these are the various software smells that have been proposed and studied in the last 20 years. A recent software engineering textbook "Refactoring For Software Design Smells: Managing Technical Debt" (Suryanarayana,Samarthyam and Sharma, 2014) proposes a formal set of such software patterns. The aim of this work is to explore the hierarchical smell patterns proposed in chapter 6 of the textbook.

After conducting a review of the relative literature, a software tool was built to aid with inspection of software systems and specifically detect instances of these smells in Java projects. These Java systems came from the Qualitas Corpus (Tempero, 2010), a curated collection of software systems intended for empirical studies. A selection of these systems was analysed with the tool and inspected manually to detect a subset of the proposed smells and expose how common they are.

The findings of this study reveal that these smells do exist in software systems and identify examples of specific ways in which they are commonly introduced. These examples show that in many cases these smells are a result of violating object oriented software engineering guidelines and enabling techniques. The work proposes an expansion of this study to include more systems in different programming languages and some possible redefinitions of the smells so that they can produce more useful results in practice.