Please use this identifier to cite or link to this item:
http://bura.brunel.ac.uk/handle/2438/9081
Title: | Class movement and re-location: An empirical study of Java inheritance evolution |
Authors: | Nasseri, E Counsell, S Shepperd, M |
Keywords: | Object-Orientation (OO);Maintenance;Software evolution;Inheritance;Empirical analysis |
Issue Date: | 2010 |
Publisher: | Elsevier |
Citation: | Journal of Systems and Software, 83(2), 303 - 315, 2010 |
Abstract: | Inheritance is a fundamental feature of the Object-Oriented (OO) paradigm. It is used to promote extensibility and reuse in OO systems. Understanding how systems evolve, and specifically, trends in the movement and re-location of classes in OO hierarchies can help us understand and predict future maintenance effort. In this paper, we explore how and where new classes were added as well as where existing classes were deleted or moved across inheritance hierarchies from multiple versions of four Java systems. We observed first, that in one of the studied systems the same set of classes was continuously moved across the inheritance hierarchy. Second, in the same system, the most frequent changes were restricted to just one sub-part of the overall system. Third, that a maximum of three levels may be a threshold when using inheritance in a system; beyond this level very little activity was observed, supporting earlier theories that, beyond three levels, complexity becomes overwhelming. We also found evidence of ‘collapsing’ hierarchies to bring classes up to shallower levels. Finally, we found that larger classes and highly coupled classes were more frequently moved than smaller and less coupled classes. Statistical evidence supported the view that larger classes and highly coupled classes were less cohesive than smaller classes and lowly coupled classes and were thus more suitable candidates for being moved (within an hierarchy). |
Description: | This is the post-print version of the final paper published in Journal of Systems and Software. The published article is available from the link below. Changes resulting from the publishing process, such as peer review, editing, corrections, structural formatting, and other quality control mechanisms may not be reflected in this document. Changes may have been made to this work since it was submitted for publication. Copyright @ 2009 Elsevier B.V. |
URI: | http://www.sciencedirect.com/science/article/pii/S0164121209001988 http://bura.brunel.ac.uk/handle/2438/9081 |
DOI: | http://dx.doi.org/10.1016/j.jss.2009.08.011 |
ISSN: | 0164-1212 |
Appears in Collections: | Computer Science Dept of Computer Science Research Papers |
Files in This Item:
File | Description | Size | Format | |
---|---|---|---|---|
Fulltext.pdf | 695.2 kB | Adobe PDF | View/Open |
Items in BURA are protected by copyright, with all rights reserved, unless otherwise indicated.