Inheritance usage patterns in open-source systems

Research output: Contribution to conferencePaper

Abstract

This research investigates how object-oriented inheritance is actually used in practice. The aim is to close the gap between inheritance guidance and inheritance practice. It is based on detailed analyses of 2440 inheritance hierarchies drawn from 14 open-source systems. The original contributions made by this paper concern pragmatic assessment of inheritance hierarchy design quality. The findings show that inheritance is very widely used but that most of the usage patterns that occur in practice are simple in structure. They are so simple that they may not require much inheritance-specific design consideration. On the other hand, the majority of classes defined using inheritance actually appear within a relatively small number of large, complex hierarchies. While some of these large hierarchies appear to have a consistent structure, often based on a problem domain model or a design pattern, others do not. Another contribution is that the quality of hierarchies, especially the large problematic ones, may be assessed in practice based on size, shape, and the definition and invocation of novel methods – all properties that can be detected automatically.

Conference

Conference40th International Conference on Software Engineering
Abbreviated titleICSE18
CountrySweden
CityGothenburg
Period30/05/181/06/18
Internet address

Keywords

  • object oriented programming
  • inheritance
  • open-source
  • design guidance

Cite this

Stevenson, J., & Wood, M. I. (2018). Inheritance usage patterns in open-source systems. Paper presented at 40th International Conference on Software Engineering, Gothenburg, Sweden.
Stevenson, Jamie ; Wood, Murray I. / Inheritance usage patterns in open-source systems. Paper presented at 40th International Conference on Software Engineering, Gothenburg, Sweden.11 p.
@conference{590e7d395d6b45b0b3c41e9dea0643cf,
title = "Inheritance usage patterns in open-source systems",
abstract = "This research investigates how object-oriented inheritance is actually used in practice. The aim is to close the gap between inheritance guidance and inheritance practice. It is based on detailed analyses of 2440 inheritance hierarchies drawn from 14 open-source systems. The original contributions made by this paper concern pragmatic assessment of inheritance hierarchy design quality. The findings show that inheritance is very widely used but that most of the usage patterns that occur in practice are simple in structure. They are so simple that they may not require much inheritance-specific design consideration. On the other hand, the majority of classes defined using inheritance actually appear within a relatively small number of large, complex hierarchies. While some of these large hierarchies appear to have a consistent structure, often based on a problem domain model or a design pattern, others do not. Another contribution is that the quality of hierarchies, especially the large problematic ones, may be assessed in practice based on size, shape, and the definition and invocation of novel methods – all properties that can be detected automatically.",
keywords = "object oriented programming, inheritance, open-source, design guidance",
author = "Jamie Stevenson and Wood, {Murray I.}",
year = "2018",
month = "5",
day = "30",
language = "English",
note = "40th International Conference on Software Engineering, ICSE18 ; Conference date: 30-05-2018 Through 01-06-2018",
url = "https://www.icse2018.org/",

}

Stevenson, J & Wood, MI 2018, 'Inheritance usage patterns in open-source systems' Paper presented at 40th International Conference on Software Engineering, Gothenburg, Sweden, 30/05/18 - 1/06/18, .

Inheritance usage patterns in open-source systems. / Stevenson, Jamie; Wood, Murray I.

2018. Paper presented at 40th International Conference on Software Engineering, Gothenburg, Sweden.

Research output: Contribution to conferencePaper

TY - CONF

T1 - Inheritance usage patterns in open-source systems

AU - Stevenson, Jamie

AU - Wood, Murray I.

PY - 2018/5/30

Y1 - 2018/5/30

N2 - This research investigates how object-oriented inheritance is actually used in practice. The aim is to close the gap between inheritance guidance and inheritance practice. It is based on detailed analyses of 2440 inheritance hierarchies drawn from 14 open-source systems. The original contributions made by this paper concern pragmatic assessment of inheritance hierarchy design quality. The findings show that inheritance is very widely used but that most of the usage patterns that occur in practice are simple in structure. They are so simple that they may not require much inheritance-specific design consideration. On the other hand, the majority of classes defined using inheritance actually appear within a relatively small number of large, complex hierarchies. While some of these large hierarchies appear to have a consistent structure, often based on a problem domain model or a design pattern, others do not. Another contribution is that the quality of hierarchies, especially the large problematic ones, may be assessed in practice based on size, shape, and the definition and invocation of novel methods – all properties that can be detected automatically.

AB - This research investigates how object-oriented inheritance is actually used in practice. The aim is to close the gap between inheritance guidance and inheritance practice. It is based on detailed analyses of 2440 inheritance hierarchies drawn from 14 open-source systems. The original contributions made by this paper concern pragmatic assessment of inheritance hierarchy design quality. The findings show that inheritance is very widely used but that most of the usage patterns that occur in practice are simple in structure. They are so simple that they may not require much inheritance-specific design consideration. On the other hand, the majority of classes defined using inheritance actually appear within a relatively small number of large, complex hierarchies. While some of these large hierarchies appear to have a consistent structure, often based on a problem domain model or a design pattern, others do not. Another contribution is that the quality of hierarchies, especially the large problematic ones, may be assessed in practice based on size, shape, and the definition and invocation of novel methods – all properties that can be detected automatically.

KW - object oriented programming

KW - inheritance

KW - open-source

KW - design guidance

UR - https://www.icse2018.org/

M3 - Paper

ER -

Stevenson J, Wood MI. Inheritance usage patterns in open-source systems. 2018. Paper presented at 40th International Conference on Software Engineering, Gothenburg, Sweden.