Previous MSc Theses

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

"Analysis on Inheritance in Open Source Systems." E. McNealy. M. Wood. Department of Computer and Information Sciences, University of Strathclyde. 2016. Download PDF (BibTeX) ASE

Inheritance is a key component in object-oriented programming, providing many of the benefits that are available through this programming paradigm. These benefits include increased modularity and code reusability, and the freedom to make changes to a single base class and have those changes applied to all who inherit that class. Inheritance also comes with some disadvantages, including a loss of encapsulation when the state of a class is shared among multiple children, and an increase in code complexity. Knowing when to correctly and efficiently use inheritance, and when to consider an alternative, is a valuable skill that any developer should strive towards.

By utilizing established software code metrics as a basis for analysis, this thesis aims to provide detailed observations on the use of inheritance in open source Java applications. These metrics help to reveal information about the depth of inheritance hierarchies, the risks associated with a class having many children and methods, the growth and complexity of complete inheritance hierarchies, and the effects of inheritance on methods implemented in both parent and child classes. This information can be helpful in comparing the ways different open source systems use inheritance.

An analysis tool has been developed for the purpose of investigating inheritance use in open source systems. The metrics mentioned above are used by this tool to analyze different aspects of inheritance and provide data that is easily consumed through charts and graphs. With the help of this tool and the code metrics, examples of both decent and poor design practices regarding inheritance will be revealed.