An analysis of inheritance hierarchy evolution

Murray Wood, Lyubomir Ivanov, Zenon Lamprou

Research output: Contribution to conferencePaper

Abstract

This research investigates the evolution of object-oriented inheritance hierarchies in open source, Java systems. The paper contributes an understanding of how hierarchies, particularly large complex hierarchies, evolve in ‘real world’ systems. It informs object-oriented design practices that aim to control or avoid these complicated design structures. The study is based on a detailed analysis of 665 inheritance hierarchies drawn from a total of 262 versions of 10 open source systems. The research contributions include that: i) the majority of inheritance hierarchies are ‘simple’ in structure and remain that way throughout their lifetimes ii) the majority of hierarchies are stable in terms of size and shape throughout their lifetimes iii) there is a minority of large, complex, branching ‘Subtree’ hierarchies that continue to grow ever more complicated as the systems evolve iv) a detailed analysis of some of these larger hierarchies finds evidence of ‘good’ object-oriented design practices being used but also highlights the significant challenges involved in understanding and refactoring these complex structures. There is clear evidence that some of the complex hierarchies are emphasising reuse while others appear focused on type inheritance.

Conference

ConferenceEASE 2019 - Evaluation and Assessment in Software Engineering
Abbreviated titleEASE 2019
CountryDenmark
CityCopenhagen
Period16/04/1917/04/19
Internet address

Keywords

  • inheritance
  • case study
  • open source
  • empirical
  • evolution
  • hierarchy

Cite this

Wood, M., Ivanov, L., & Lamprou, Z. (2019). An analysis of inheritance hierarchy evolution. 24-33. Paper presented at EASE 2019 - Evaluation and Assessment in Software Engineering, Copenhagen, Denmark. https://doi.org/10.1145/3319008.3319023
Wood, Murray ; Ivanov, Lyubomir ; Lamprou, Zenon . / An analysis of inheritance hierarchy evolution. Paper presented at EASE 2019 - Evaluation and Assessment in Software Engineering, Copenhagen, Denmark.10 p.
@conference{b10c97b1362942d1a1945e3186a36608,
title = "An analysis of inheritance hierarchy evolution",
abstract = "This research investigates the evolution of object-oriented inheritance hierarchies in open source, Java systems. The paper contributes an understanding of how hierarchies, particularly large complex hierarchies, evolve in ‘real world’ systems. It informs object-oriented design practices that aim to control or avoid these complicated design structures. The study is based on a detailed analysis of 665 inheritance hierarchies drawn from a total of 262 versions of 10 open source systems. The research contributions include that: i) the majority of inheritance hierarchies are ‘simple’ in structure and remain that way throughout their lifetimes ii) the majority of hierarchies are stable in terms of size and shape throughout their lifetimes iii) there is a minority of large, complex, branching ‘Subtree’ hierarchies that continue to grow ever more complicated as the systems evolve iv) a detailed analysis of some of these larger hierarchies finds evidence of ‘good’ object-oriented design practices being used but also highlights the significant challenges involved in understanding and refactoring these complex structures. There is clear evidence that some of the complex hierarchies are emphasising reuse while others appear focused on type inheritance.",
keywords = "inheritance, case study, open source, empirical, evolution, hierarchy",
author = "Murray Wood and Lyubomir Ivanov and Zenon Lamprou",
year = "2019",
month = "4",
day = "15",
doi = "10.1145/3319008.3319023",
language = "English",
pages = "24--33",
note = "EASE 2019 - Evaluation and Assessment in Software Engineering, EASE 2019 ; Conference date: 16-04-2019 Through 17-04-2019",
url = "https://ease2019.org/",

}

Wood, M, Ivanov, L & Lamprou, Z 2019, 'An analysis of inheritance hierarchy evolution' Paper presented at EASE 2019 - Evaluation and Assessment in Software Engineering, Copenhagen, Denmark, 16/04/19 - 17/04/19, pp. 24-33. https://doi.org/10.1145/3319008.3319023

An analysis of inheritance hierarchy evolution. / Wood, Murray; Ivanov, Lyubomir; Lamprou, Zenon .

2019. 24-33 Paper presented at EASE 2019 - Evaluation and Assessment in Software Engineering, Copenhagen, Denmark.

Research output: Contribution to conferencePaper

TY - CONF

T1 - An analysis of inheritance hierarchy evolution

AU - Wood, Murray

AU - Ivanov, Lyubomir

AU - Lamprou, Zenon

PY - 2019/4/15

Y1 - 2019/4/15

N2 - This research investigates the evolution of object-oriented inheritance hierarchies in open source, Java systems. The paper contributes an understanding of how hierarchies, particularly large complex hierarchies, evolve in ‘real world’ systems. It informs object-oriented design practices that aim to control or avoid these complicated design structures. The study is based on a detailed analysis of 665 inheritance hierarchies drawn from a total of 262 versions of 10 open source systems. The research contributions include that: i) the majority of inheritance hierarchies are ‘simple’ in structure and remain that way throughout their lifetimes ii) the majority of hierarchies are stable in terms of size and shape throughout their lifetimes iii) there is a minority of large, complex, branching ‘Subtree’ hierarchies that continue to grow ever more complicated as the systems evolve iv) a detailed analysis of some of these larger hierarchies finds evidence of ‘good’ object-oriented design practices being used but also highlights the significant challenges involved in understanding and refactoring these complex structures. There is clear evidence that some of the complex hierarchies are emphasising reuse while others appear focused on type inheritance.

AB - This research investigates the evolution of object-oriented inheritance hierarchies in open source, Java systems. The paper contributes an understanding of how hierarchies, particularly large complex hierarchies, evolve in ‘real world’ systems. It informs object-oriented design practices that aim to control or avoid these complicated design structures. The study is based on a detailed analysis of 665 inheritance hierarchies drawn from a total of 262 versions of 10 open source systems. The research contributions include that: i) the majority of inheritance hierarchies are ‘simple’ in structure and remain that way throughout their lifetimes ii) the majority of hierarchies are stable in terms of size and shape throughout their lifetimes iii) there is a minority of large, complex, branching ‘Subtree’ hierarchies that continue to grow ever more complicated as the systems evolve iv) a detailed analysis of some of these larger hierarchies finds evidence of ‘good’ object-oriented design practices being used but also highlights the significant challenges involved in understanding and refactoring these complex structures. There is clear evidence that some of the complex hierarchies are emphasising reuse while others appear focused on type inheritance.

KW - inheritance

KW - case study

KW - open source

KW - empirical

KW - evolution

KW - hierarchy

UR - https://ease2019.org/

U2 - 10.1145/3319008.3319023

DO - 10.1145/3319008.3319023

M3 - Paper

SP - 24

EP - 33

ER -

Wood M, Ivanov L, Lamprou Z. An analysis of inheritance hierarchy evolution. 2019. Paper presented at EASE 2019 - Evaluation and Assessment in Software Engineering, Copenhagen, Denmark. https://doi.org/10.1145/3319008.3319023