A recent empirical study of seven Java systems showed that approximately 96% of all classes added to those systems over the course of multiple versions were at inheritance level one and two and only 4% at all other lower levels. In this paper, we use code 'warnings' extracted by a tool to explore potential problems and benefits of system evolution according to this inheritance profile. We analyze the type of warning across single and multiple versions of three Java systems for commonalities based on information provided in the warnings. We compare the frequency of warning for classes added at different levels of the inheritance hierarchy and explore the possibilities for refactoring code on that basis. The research illustrates how tools can inform our understanding of potential problems in evolutionary code, allow us to assess the impact those problems may have and present opportunities for rectifying those problems through techniques such as refactoring.
['Emal Nasseri', 'Steve Counsell']
Inheritance, 'Warnings' and Potential Refactorings: An Empirical Study