Skip to main content
Log in

Evaluating inheritance depth on the maintainability of object-oriented software

  • Published:
Empirical Software Engineering Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Brooks, A., Clarke, D., and McGale, P. 1994. Investigating stellar variability by normality tests. Vistas in Astronomy 38: 377–399.

    Google Scholar 

  • Brooks, R. 1980. Studying programmer behavior experimentally: The problems of proper methodology. Communications of the ACM 23(4): 207–213.

    Google Scholar 

  • Burgess, A. 1995. Finding an experimental basis for software engineering. IEEE Software 28(3): 92–93.

    Google Scholar 

  • Chambers, J., Cleveland, W., Kleiner, B., and Tukey, P. 1983. Graphical Methods for Data Analysis. Wadsworth International Group, first edition.

  • Chapanis, A. 1988. Some generalisations about generalisation. Human Factors 30(3): 253–267.

    Google Scholar 

  • Chidamber, S., and Kemerer, C. 1994. A metrics suite for object-oriented design. IEEE Transactions on Software Engineering 20(6): 476–493.

    Google Scholar 

  • Crocker, R., and von Mayrhauser, A. 1993. Maintenance support needs for object-oriented software. Proceedings of the International Computer Software and Applications Conference, 63–69.

  • Curtis, B. 1986. By the way, did anyone study any real programmers? Empirical Studies of Programmers: First Workshop. (Soloway, E., and Iyengar, S., eds.). Ablex Publishing Corporation, 256–262.

  • Daly, J. 1996. Replication and a multi-method approach to empirical software engineering research. PhD thesis, Department of Computer Science, University of Strathclyde, Glasgow.

  • Daly, J., Miller, J., Brooks, A., Roper, M., and Wood, M. 1994. Verification of results in software maintenance through external replication. Proceedings of the IEEE International Conference on Software Maintenance, 50–57.

  • Daly, J., Brooks, A., Miller, J., Roper, M., and Wood, M. 1995. A multi-method approach to performing empirical research. Software Engineering Technical Council (TCSE)Newsletter 14(1): SPN10-12.

    Google Scholar 

  • Daly, J., Miller, J., Brooks, A., Roper, M., and Wood, M. 1995. Issues on the object-oriented paradigm: A questionnaire survey. Research report EFoCS-8-95, Department of Computer Science, University of Strathclyde, Glasgow.

    Google Scholar 

  • Daly, J., Wood, M., Brooks, A., Miller, J., and Roper, M. 1995. Structured interviews on the object-oriented paradigm. Research report EFoCS-7-95, Department of Computer Science, University of Strathclyde, Glasgow.

    Google Scholar 

  • Dvorak, J. 1994. Conceptual entropy and its effect on class hierarchies. IEEE Computer 27(6): 59–63.

    Google Scholar 

  • Foster, J. 1991. Program lifetime: A vital statistic for maintenance. Proceedings of the IEEE Conference on Software Maintenance, 98–103.

  • Henry, S., Humphrey, M., and Lewis, J. 1990. Evaluation of the maintainability of object-oriented software. IEEE Conference on Computer and Communication Systems, 404–409.

  • Jones, C. 1994. Gaps in the object-oriented paradigm. IEEE Computer 27(6): 90–91.

    Google Scholar 

  • Jüttner, P., Kolb, S., and Zimmerer, P. 1994. Integrating and testing of object-oriented software. Proceedings of the European Conference on Software Testing, Analysis, and Review. Siemens AG, 13/1–13/14.

  • Kung, D., Gao, J., Hsia, P., Wen, F., Toyoshima, Y., and Chen, C. 1994. Change impact identification in object-oriented software maintenance. Proceedings of the IEEE International Conference on Software Maintenance, 201–211.

  • Lejter, M., Meyers, S., and Reiss, S. 1992. Support for maintaining object-oriented programs. IEEE Transactions on Software Engineering SE-18(12): 1045–1052.

    Google Scholar 

  • Lewis, J., Henry, S., Kafura, D., and Schulman, R. 1992. On the relationship between the object-oriented paradigm and software reuse: An empirical investigation. Journal of Object-Oriented Programming 5(4): 35–41.

    Google Scholar 

  • Lipsey, M. W. 1990. Design Sensitivity, Statistical Power for Experimental Research. SAGE Publications.

  • Porter, A., Votta, L., and Basili, V. 1995. Comparing detection methods for software requirements inspections: A replicated experiment. IEEE Transactions on Software Engineering 21(6): 563–575.

    Google Scholar 

  • Rombach, H. D. 1987. A controlled experiment on the impact of software structure on maintainability. IEEE Transactions on Software Engineering 13(3): 344–354.

    Google Scholar 

  • Schneidewind, N. 1987. The state of software maintenance. IEEE Transactions on Software Engineering SE 13(3): 303–310.

    Google Scholar 

  • Skinner, M. 1992. The C++ Primer: A Gentle Introduction to C++. Silicon Press and Prentice Hall, first edition.

  • Soloway, E., Pinto, J., Letovsky, S., Littman, D., and Lampert, R. 1988. Designing documentation to compensate for delocalized plans. Communications of the ACM 31(11): 1259–1267.

    Google Scholar 

  • Tiller, D. 1991. Experimental design and analysis. Software Metrics—A Rigorous Approach. (Fenton, N., ed.). Chapman and Hall, 63–78.

  • Wilde, N., and Huitt, R. 1992. Maintenance support for object-oriented programs. IEEE Transactions on Software Engineering SE-18(12): 1038–1044.

    Google Scholar 

  • Wilde, N., Matthews, P., and Huitt, R. 1993. Maintaining object-oriented software. IEEE Software 10(1): 75–80.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Daly, J., Brooks, A., Miller, J. et al. Evaluating inheritance depth on the maintainability of object-oriented software. Empirical Software Engineering 1, 109–132 (1996). https://doi.org/10.1007/BF00368701

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF00368701

Keywords

Navigation