Please use this identifier to cite or link to this item: http://bura.brunel.ac.uk/handle/2438/1851
Title: An empirical study of evolution of inheritance in Java OSS
Authors: Nasseri, E
Counsell, S
Shepperd, M J
Keywords: object-orientation;inheritance;java;open source software
Issue Date: 2006
Publisher: ACM Press
Citation: International Symposium on Empirical Software Engineering 2006.Pages: 288 - 296 . ACM/IEEE
Abstract: Previous studies of Object-Oriented (OO) software have reported avoidance of the inheritance mechanism and cast doubt on the wisdom of ‘deep’ inheritance levels. From an evolutionary perspective, the picture is unclear - we still know relatively little about how, over time, changes tend to be applied by developers. Our conjecture is that an inheritance hierarchy will tend to grow ‘breadth-wise’ rather than ‘depth-wise’. This claim is made on the basis that developers will avoid extending depth in favour of breadth because of the inherent complexity of having to understand the functionality of superclasses. Thus the goal of our study is to investigate this empirically. We conduct an empirical study of seven Java Open-Source Systems (OSSs) over a series of releases to observe the nature and location of changes within the inheritance hierarchies. Results show a strong tendency for classes to be added at levels one and two of the hierarchy (rather than anywhere else). Over 96% of classes added over the course of the versions of all systems were at level 1 or level 2. The results suggest that changes cluster in the shallow levels of a hierarchy; this is relevant for developers since it indicates where remedial activities such as refactoring should be focused.
URI: http://bura.brunel.ac.uk/handle/2438/1851
ISBN: 1-59593-218-6
Appears in Collections:Computer Science
Dept of Computer Science Research Papers
Software Engineering (B-SERC)

Files in This Item:
File Description SizeFormat 
ASWEC2008FORMSUB.pdf323.36 kBAdobe PDFView/Open


Items in BURA are protected by copyright, with all rights reserved, unless otherwise indicated.