Evaluating inheritance depth on the maintainability of object-oriented software

J. Daly, A. Brooks, J. Miller, M. Roper, M. Wood

Research output: Contribution to journalArticle

108 Citations (Scopus)

Abstract

This empirical research was undertaken as part of a multi-method programme of research to investigate unsupported claims made of object-oriented technology. A series of subject-based laboratory experiments, including an internal replication, tested the effect of inheritance depth on the maintainability of object-oriented software. Subjects were timed performing identical maintenance tasks on object-oriented software with a hierarchy of three levels of inheritance depth and equivalent object-based software with no inheritance. This was then replicated with more experienced subjects. In a second experiment of similar design, subjects were timed performing identical maintenance tasks on object-oriented software with a hierarchy of five levels of inheritance depth and the equivalent object-based software. The collected data showed that subjects maintaining object-oriented software with three levels of inheritance depth performed the maintenance tasks significantly quicker than those maintaining equivalent object-based software with no inheritance. In contrast, subjects maintaining the object-oriented software with five levels of inheritance depth took longer, on average, than the subjects maintaining the equivalent object-based software (although statistical significance was not obtained). Subjects' source code solutions and debriefing questionnaires provided some evidence suggesting subjects began to experience difficulties with the deeper inheritance hierarchy. It is not at all obvious that object-oriented software is going to be more maintainable in the long run. These findings are sufficiently important that attempts to verify the results should be made by independent researchers.
LanguageEnglish
Pages109-132
Number of pages23
JournalEmpirical Software Engineering
Volume1
Issue number2
DOIs
Publication statusPublished - 1996

Fingerprint

Maintainability
Design of experiments
Experiments

Keywords

  • empirical
  • experiments
  • inheritance
  • object-oriented
  • inheritance depth
  • software

Cite this

@article{9a9b96ad2c3744a68bc8290e84d70523,
title = "Evaluating inheritance depth on the maintainability of object-oriented software",
abstract = "This empirical research was undertaken as part of a multi-method programme of research to investigate unsupported claims made of object-oriented technology. A series of subject-based laboratory experiments, including an internal replication, tested the effect of inheritance depth on the maintainability of object-oriented software. Subjects were timed performing identical maintenance tasks on object-oriented software with a hierarchy of three levels of inheritance depth and equivalent object-based software with no inheritance. This was then replicated with more experienced subjects. In a second experiment of similar design, subjects were timed performing identical maintenance tasks on object-oriented software with a hierarchy of five levels of inheritance depth and the equivalent object-based software. The collected data showed that subjects maintaining object-oriented software with three levels of inheritance depth performed the maintenance tasks significantly quicker than those maintaining equivalent object-based software with no inheritance. In contrast, subjects maintaining the object-oriented software with five levels of inheritance depth took longer, on average, than the subjects maintaining the equivalent object-based software (although statistical significance was not obtained). Subjects' source code solutions and debriefing questionnaires provided some evidence suggesting subjects began to experience difficulties with the deeper inheritance hierarchy. It is not at all obvious that object-oriented software is going to be more maintainable in the long run. These findings are sufficiently important that attempts to verify the results should be made by independent researchers.",
keywords = "empirical, experiments, inheritance, object-oriented, inheritance depth, software",
author = "J. Daly and A. Brooks and J. Miller and M. Roper and M. Wood",
year = "1996",
doi = "10.1007/BF00368701",
language = "English",
volume = "1",
pages = "109--132",
journal = "Empirical Software Engineering",
issn = "1382-3256",
number = "2",

}

Evaluating inheritance depth on the maintainability of object-oriented software. / Daly, J.; Brooks, A.; Miller, J.; Roper, M.; Wood, M.

In: Empirical Software Engineering, Vol. 1, No. 2, 1996, p. 109-132.

Research output: Contribution to journalArticle

TY - JOUR

T1 - Evaluating inheritance depth on the maintainability of object-oriented software

AU - Daly, J.

AU - Brooks, A.

AU - Miller, J.

AU - Roper, M.

AU - Wood, M.

PY - 1996

Y1 - 1996

N2 - This empirical research was undertaken as part of a multi-method programme of research to investigate unsupported claims made of object-oriented technology. A series of subject-based laboratory experiments, including an internal replication, tested the effect of inheritance depth on the maintainability of object-oriented software. Subjects were timed performing identical maintenance tasks on object-oriented software with a hierarchy of three levels of inheritance depth and equivalent object-based software with no inheritance. This was then replicated with more experienced subjects. In a second experiment of similar design, subjects were timed performing identical maintenance tasks on object-oriented software with a hierarchy of five levels of inheritance depth and the equivalent object-based software. The collected data showed that subjects maintaining object-oriented software with three levels of inheritance depth performed the maintenance tasks significantly quicker than those maintaining equivalent object-based software with no inheritance. In contrast, subjects maintaining the object-oriented software with five levels of inheritance depth took longer, on average, than the subjects maintaining the equivalent object-based software (although statistical significance was not obtained). Subjects' source code solutions and debriefing questionnaires provided some evidence suggesting subjects began to experience difficulties with the deeper inheritance hierarchy. It is not at all obvious that object-oriented software is going to be more maintainable in the long run. These findings are sufficiently important that attempts to verify the results should be made by independent researchers.

AB - This empirical research was undertaken as part of a multi-method programme of research to investigate unsupported claims made of object-oriented technology. A series of subject-based laboratory experiments, including an internal replication, tested the effect of inheritance depth on the maintainability of object-oriented software. Subjects were timed performing identical maintenance tasks on object-oriented software with a hierarchy of three levels of inheritance depth and equivalent object-based software with no inheritance. This was then replicated with more experienced subjects. In a second experiment of similar design, subjects were timed performing identical maintenance tasks on object-oriented software with a hierarchy of five levels of inheritance depth and the equivalent object-based software. The collected data showed that subjects maintaining object-oriented software with three levels of inheritance depth performed the maintenance tasks significantly quicker than those maintaining equivalent object-based software with no inheritance. In contrast, subjects maintaining the object-oriented software with five levels of inheritance depth took longer, on average, than the subjects maintaining the equivalent object-based software (although statistical significance was not obtained). Subjects' source code solutions and debriefing questionnaires provided some evidence suggesting subjects began to experience difficulties with the deeper inheritance hierarchy. It is not at all obvious that object-oriented software is going to be more maintainable in the long run. These findings are sufficiently important that attempts to verify the results should be made by independent researchers.

KW - empirical

KW - experiments

KW - inheritance

KW - object-oriented

KW - inheritance depth

KW - software

UR - http://www.springerlink.com/content/r351633106h49692/fulltext.pdf

UR - http://dx.doi.org/10.1007/BF00368701

U2 - 10.1007/BF00368701

DO - 10.1007/BF00368701

M3 - Article

VL - 1

SP - 109

EP - 132

JO - Empirical Software Engineering

T2 - Empirical Software Engineering

JF - Empirical Software Engineering

SN - 1382-3256

IS - 2

ER -