A critical view of inheritance and reusability in object-oriented programming

One of the most intriguing - and at the same time most problematic - notions in object-oriented programming is inheritance. Inheritance is commonly regarded as the feature that distinguishes object-oriented programming from other modern programming paradigms, but researchers rarely agree on its mean...

Täydet tiedot

Bibliografiset tiedot
Päätekijä: Taivalsaari, Antero
Aineistotyyppi: Väitöskirja
Kieli:eng
Julkaistu: 1993
Aiheet:
Linkit: https://jyx.jyu.fi/handle/123456789/103833
_version_ 1835672051805847552
author Taivalsaari, Antero
author_facet Taivalsaari, Antero Taivalsaari, Antero
author_sort Taivalsaari, Antero
datasource_str_mv jyx
description One of the most intriguing - and at the same time most problematic - notions in object-oriented programming is inheritance. Inheritance is commonly regarded as the feature that distinguishes object-oriented programming from other modern programming paradigms, but researchers rarely agree on its meaning and usage. Yet inheritance is often hailed as a solution to many problems hampering software development, and many of the alleged benefits of object-oriented programming - improved conceptual modeling and reusability, for instance - are largely accredited to it. Many of these benefits, especially reusability, are often taken for granted, as if reusability were an inherent feature of object-oriented software. This thesis presents a critical analysis of inheritance and reusability in object-oriented programming. The thesis is composed of three parts. The first part, understanding inheritance, tries to reach a comprehensive understanding of inheritance from several viewpoints, examining its intended and actual usage, surveying its varieties, and developing a taxonomy of mechanisms that can be seen as underlying different inheritance models. The second part, understanding object-oriented software reuse, first examines the notion of software reuse from a more general perspective, and then analyzes the problems that object-oriented systems have with respect to reusability. It is realized that many of these problems arise from restrictions that inheritance imposes on program structuring. The third part, towards a new model, introduces a new object model called Kevo that is proposed as a solution to many of the problems. Finally, the implementation of the suggested model is discussed and evaluated.
first_indexed 2025-06-20T20:00:18Z
format Väitöskirja
fullrecord [{"key": "dc.contributor.author", "value": "Taivalsaari, Antero", "language": null, "element": "contributor", "qualifier": "author", "schema": "dc"}, {"key": "dc.date.accessioned", "value": "2025-06-19T15:06:44Z", "language": null, "element": "date", "qualifier": "accessioned", "schema": "dc"}, {"key": "dc.date.available", "value": "2025-06-19T15:06:44Z", "language": null, "element": "date", "qualifier": "available", "schema": "dc"}, {"key": "dc.date.issued", "value": "1993", "language": null, "element": "date", "qualifier": "issued", "schema": "dc"}, {"key": "dc.identifier.isbn", "value": "978-952-86-0840-0", "language": null, "element": "identifier", "qualifier": "isbn", "schema": "dc"}, {"key": "dc.identifier.uri", "value": "https://jyx.jyu.fi/handle/123456789/103833", "language": null, "element": "identifier", "qualifier": "uri", "schema": "dc"}, {"key": "dc.description.abstract", "value": "One of the most intriguing - and at the same time most problematic - notions in object-oriented programming is inheritance. Inheritance is commonly regarded as the feature that distinguishes object-oriented programming from other modern programming paradigms, but\nresearchers rarely agree on its meaning and usage. Yet inheritance is often hailed as a solution to many problems hampering software development, and many of the alleged benefits of object-oriented programming - improved conceptual modeling and reusability, for instance - are largely accredited to it. Many of these benefits, especially reusability, are often taken for granted, as if reusability were an inherent feature of object-oriented software. This thesis presents a critical analysis of inheritance and reusability in object-oriented programming. The thesis is composed of three parts. The first part, understanding inheritance, tries to reach a comprehensive understanding of inheritance from several viewpoints, examining its intended and actual usage, surveying its varieties, and developing a taxonomy of mechanisms that can be seen as underlying different inheritance models. The second part, understanding object-oriented software reuse, first examines the notion of software reuse from a more general perspective, and then analyzes the problems that object-oriented systems have with respect to reusability. It is realized that many of these problems arise from restrictions that inheritance imposes on program structuring. The third part, towards a new model, introduces a new object model called Kevo that is proposed as a solution to many of the problems. Finally, the implementation of the suggested model is discussed and evaluated.", "language": "en", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Submitted by Harri Hirvi (hirvi@jyu.fi) on 2025-06-19T15:06:44Z\nNo. of bitstreams: 0", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Made available in DSpace on 2025-06-19T15:06:44Z (GMT). No. of bitstreams: 0\n Previous issue date: 1993", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.format.mimetype", "value": "application/pdf", "language": null, "element": "format", "qualifier": "mimetype", "schema": "dc"}, {"key": "dc.language.iso", "value": "eng", "language": null, "element": "language", "qualifier": "iso", "schema": "dc"}, {"key": "dc.relation.ispartofseries", "value": "Jyv\u00e4skyl\u00e4 studies in computer science, economics and statistics", "language": null, "element": "relation", "qualifier": "ispartofseries", "schema": "dc"}, {"key": "dc.rights", "value": "In Copyright", "language": null, "element": "rights", "qualifier": null, "schema": "dc"}, {"key": "dc.subject.other", "value": "olio-ohjelmointi", "language": null, "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "ohjelmointi", "language": null, "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "tietotekniikka", "language": null, "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.title", "value": "A critical view of inheritance and reusability in object-oriented programming", "language": null, "element": "title", "qualifier": null, "schema": "dc"}, {"key": "dc.type", "value": "doctoral thesis", "language": null, "element": "type", "qualifier": null, "schema": "dc"}, {"key": "dc.identifier.urn", "value": "URN:ISBN:978-952-86-0840-0", "language": null, "element": "identifier", "qualifier": "urn", "schema": "dc"}, {"key": "dc.type.coar", "value": "http://purl.org/coar/resource_type/c_db06", "language": null, "element": "type", "qualifier": "coar", "schema": "dc"}, {"key": "dc.relation.numberinseries", "value": "23", "language": null, "element": "relation", "qualifier": "numberinseries", "schema": "dc"}, {"key": "dc.rights.copyright", "value": "\u00a9 The Author & University of Jyv\u00e4skyl\u00e4", "language": null, "element": "rights", "qualifier": "copyright", "schema": "dc"}, {"key": "dc.rights.accesslevel", "value": "restrictedAccess", "language": null, "element": "rights", "qualifier": "accesslevel", "schema": "dc"}, {"key": "dc.type.publication", "value": "doctoralThesis", "language": null, "element": "type", "qualifier": "publication", "schema": "dc"}, {"key": "dc.format.content", "value": "fulltext", "language": null, "element": "format", "qualifier": "content", "schema": "dc"}, {"key": "dc.rights.url", "value": "https://rightsstatements.org/page/InC/1.0/", "language": null, "element": "rights", "qualifier": "url", "schema": "dc"}, {"key": "dc.rights.accessrights", "value": "Aineistoon p\u00e4\u00e4sy\u00e4 on rajoitettu tekij\u00e4noikeussyist\u00e4. Aineisto on luettavissa Jyv\u00e4skyl\u00e4n yliopiston kirjaston <a href=\"https://www.jyu.fi/fi/osc/kirjasto/tyoskentelytilat/laitteet-ja-tilat#toc-jyx-ty-asema\">arkistoty\u00f6asemalta</a>.", "language": "fi", "element": "rights", "qualifier": "accessrights", "schema": "dc"}, {"key": "dc.rights.accessrights", "value": "<br><br>This material has a restricted access due to copyright reasons. It can be read at the <a href=\"https://www.jyu.fi/fi/osc/kirjasto/tyoskentelytilat/laitteet-ja-tilat#toc-jyx-ty-asema\">workstation</a> at Jyv\u00e4skyl\u00e4 University Library reserved for the use of archival materials.", "language": "en", "element": "rights", "qualifier": "accessrights", "schema": "dc"}, {"key": "dc.date.digitised", "value": "2025", "language": null, "element": "date", "qualifier": "digitised", "schema": "dc"}, {"key": "dc.type.okm", "value": "G4", "language": null, "element": "type", "qualifier": "okm", "schema": "dc"}]
id jyx.123456789_103833
language eng
last_indexed 2025-06-20T20:00:18Z
main_date 1993-01-01T00:00:00Z
main_date_str 1993
publishDate 1993
record_format qdc
source_str_mv jyx
spellingShingle Taivalsaari, Antero A critical view of inheritance and reusability in object-oriented programming olio-ohjelmointi ohjelmointi tietotekniikka
title A critical view of inheritance and reusability in object-oriented programming
title_full A critical view of inheritance and reusability in object-oriented programming
title_fullStr A critical view of inheritance and reusability in object-oriented programming A critical view of inheritance and reusability in object-oriented programming
title_full_unstemmed A critical view of inheritance and reusability in object-oriented programming A critical view of inheritance and reusability in object-oriented programming
title_short A critical view of inheritance and reusability in object-oriented programming
title_sort critical view of inheritance and reusability in object oriented programming
title_txtP A critical view of inheritance and reusability in object-oriented programming
topic olio-ohjelmointi ohjelmointi tietotekniikka
topic_facet ohjelmointi olio-ohjelmointi tietotekniikka
url https://jyx.jyu.fi/handle/123456789/103833 http://www.urn.fi/URN:ISBN:978-952-86-0840-0
work_keys_str_mv AT taivalsaariantero acriticalviewofinheritanceandreusabilityinobjectorientedprogramming AT taivalsaariantero criticalviewofinheritanceandreusabilityinobjectorientedprogramming