Zusammenfassung
Bei der Darstellung der Grobstruktur des Wiederverwendungsansatzes wurden noch keine Angaben über die eigentliche Methode bzw. das zugrundeliegende Paradigma der Softwareentwicklung gemacht. Es ist jedoch klar, daß diese Wahl große Auswirkungen auf die Realisierbarkeit und Effizienz des gesamten Ansatzes haben wird. Um ein Negativbeispiel zu geben, kann man sich vorstellen, daß etwa in Assembler codierte Bausteine nur sehr schwer einer Wiederverwendung zugänglich gemacht werden können.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
Literatur
Lewis et al. berichten von einem Experiment, bei dem objektorientierte und prozedurale Entwicklung miteinander verglichen wurden (vgl. Lewis et al. 1991). Sie kommen zu dem Ergebnis, daß das objektorientierte Paradigma generell zu einer höheren Produktivität führt und daß sich dieser Effekt aber noch verstärkt, wenn ausdrücklich die Wiederverwendung von Software als Rahmenbedingung vorgegeben ist.
Zur Abgrenzung des objektorientierten Paradigmas von den Paradigmen der prozeduralen, der funktionalen und der constraint-basierten Programmierung, vgl. Lindskov Knudsen, Lehrmann Madsen 1988, 25–27 sowie Stroustrup 1987.
Dahl, Nygaard von der Universität Oslo bzw. vom Norwegischen Rechenzentrum (Norsk Regnesentral) entwarfen Simula 67 im Jahre 1967 in Weiterentwicklung der Simulationssprache Simula 1; 1986 wurde der Name zu Simula verkürzt (vgl. Meyer 1990a, 450).
Für einen Überblick über die historische Entwicklung und Charakteristika objektorientierter Programmiersprachen, vgl. Micallef 1988; Blaschek, Pomberger, Stritzinger 1989; Saunders 1989; Meyer 1990a, 450–472; Behdjati et al. 1991. Strobel gibt einen Überblick über eine Vielzahl objektorientierter Programmiersprachen, Entwicklungstools und Datenbanken, die für PCs und Workstations erhältlich sind (vgl. Strobel 1992).
Wegner detailliert diese Differenzierung weiter, indem die Kriterien der Datenabstraktion, der strengen Typisierung, der Persistenz und der Nebenläufigkeit als weitere Unterscheidungsmerkmale herangezogen werden, so daß theoretisch 128 (= 27) Klassen objektbasierter Sprachen gebildet werden können (vgl. Wegner 1989).
Saunders bemüht sich ebenfalls um eine Klassifizierung objektorientierter bzw-basierter Programmiersprachen. Er untersucht eine Menge von 69 objektbasierten, stand-alone Programmiersprachen, die zwischen 1965 und 1987 als Forschungsprototyp bzw. als kommerzielles Produkt definiert wurden, und unterteilt sie nach dem prägenden, zugrundeliegenden Paradigma in neun Kategorien (vgl. Saunders 1989).
In anderen objektorientierten Programmiersprachen werden auch die Begriffe Prozedur oder Funktion anstelle von Methode verwendet (vgl. Micallef 1988, 15).
In anderen objektorientierten Programmiersprachen wird auch der Begriff Typ anstelle von Klasse verwendet (vgl. Micallef 1988, 15).
Die dadurch eingeführte Endlos-Rekursion bringt einige Probleme mit sich, die i.a. dadurch gelöst werden, daß die Rekursionstiefe beschränkt wird, d.h. keine Metaklassen von Metaklassen von Metaklassen usw. möglich sind (vgl. Goldberg, Robson 1989, 75–89).
In objektorientierten Programmiersprachen, die Klassen nicht wiederum als Objekte verstehen, existieren statt der Definition von Methoden für Metaklassen andere Mechanismen, um z.B. Instanzen von Klassen anzulegen (vgl. Micallef 1988, 15).
Eine formale Beschreibung der Modifikationsmöglichkeiten bei der Vererbungsbeziehung zwischen Klassen findet sich bei Wegner, Zdonik 1988.
Snyder stellt weitere Möglichkeiten vor, wie die mit Mehrfachvererbung verbundenen Mehrdeutigkeiten aufgelöst werden können (vgl. Snyder 1986).
Sakkinen sieht eine weitere Möglichkeit der Variante bei der Anwendung des Vererbungsfeatures und differenziert in Incidential bzw. Essential Inheritance, je nachdem ob die Vererbungsbeziehung Ergebnis des Programmentwurfs und der Implementierung ist oder damit schon im Rahmen der Analyse grundlegende Beziehungen der Domäne modelliert werden (vgl. Sakkinen 1989).
Prinzipien sind nach Balzen “Grundsätze, die man seinem Handeln zugrunde legt” (Balzert 1982, 22). Balzert gibt auch einen ausführlichen Überblick über grundlegende Prinzipien der Softwareentwicklung, wie z.B. Hierarchisierung, Modularisierung, Standardisierung, Strukturierung, Abstraktion u.a. (vgl. Balzert 1982, 27–67).
Gebhardt, Ameling zeigen die Unterschiede des objektorientierten Modellbildungsprozesses im Vergleich zur traditionellen, “systemtechnischen” Sicht auf (vgl. Gebhardt, Ameling 1989). Budde et al. verdeutlichen, wie nahe die fachliche Sicht des Benutzers und die system technische Sicht beim Einsatz eines objektorientierten Modells beieinander liegen (vgl. Budde et al. 1992).
Geppert, Dittrich diskutieren den Begriff des “komplexen Objektes” im Zusammenhang mit objektorientierten Datenbanken: “Ein Objekt heißt komplex, strukturiert, zusammengesetzt oder molekular, wenn es aus ‘einfacheren’ Objekten zusammengesetzt ist, d.h. als Bestandteil seines Wertes mindestens eine Komponente besitzt, die selbst wiederum als Objekt aufgefaßt wird” (Geppert, Dittrich 1991, 422).
Crasemann, Krasemann schlagen dagegen — in Anlehnung an die Hüttentechnik — die Bezeichnung objektorientierter Softwarebausteine als Software-Halbzeuge vor, um deutlich zu machen, daß es sich hier um noch nicht endgültige Software handelt, die in den meisten Fällen einer weiteren Spezialisierung durch den Anwendungsentwickler bedarf (vgl. Crasemann, Krasemann 1992).
Zur Abwägung der Vor- und Nachteile dieser beiden Mechanismen siehe die Diskussion in Kapitel 4.2.3.2.3.
Als weitere Beispiele zur Integration allgemein verwendbarer Klassenbibliotheken innerhalb objektorientierter Entwicklungsumgebungen lassen sich Actor, die die Klassenbibliotheken WinTrieve und ObjectGraphics umfaßt, oder THINK Pascal mit der THINK Class Library nennen. Koenig zeigt die engen Verbindungen auf, die zwischen dem Entwurf einer objektorientierten Programmiersprache und einer Klassenbibliothek bestehen (vgl. Koenig 1991a; Koenig 1991b).
Alternativ dazu gibt Meyer einen Überblick über die Inhalte der Bibliothek der Eiffel-Programmiersprache und erläutert die Überlegungen, die zu dem Design der einzelnen Teile geführt haben. Die sieben Teilkomponenten der Eiffel-Bibliothek umfassen zur Zeit etwa 300 Klassen und 5.000 sichtbare Methoden (Features) (vgl. Meyer 1990b).
Zu einer umfangreichen Dokumentation der historischen Entwicklung des Smalltalk-Systems, vgl. Krasner 1983.
HAM ist ein allgemeines Modell zur Verwaltung von Hypertextbasen, das von Campbell, Goodman entwickelt wurde und auf dem UNIX-Filesystem aufsetzt (vgl. Campbell, Goodman 1988).
Rights and permissions
Copyright information
© 1993 Springer Fachmedien Wiesbaden
About this chapter
Cite this chapter
Heß, H. (1993). Objektorientierte Entwicklung als Basis der Wiederverwendung. In: Wiederverwendung von Software. Schriften zur EDV-Orientierten Betriebswirtschaft. Gabler Verlag, Wiesbaden. https://doi.org/10.1007/978-3-663-12876-2_3
Download citation
DOI: https://doi.org/10.1007/978-3-663-12876-2_3
Publisher Name: Gabler Verlag, Wiesbaden
Print ISBN: 978-3-409-13879-6
Online ISBN: 978-3-663-12876-2
eBook Packages: Springer Book Archive