Objektorientierte Programmierung gewinnt an Bedeutung

Die Standard-Software erhält jetzt "intelligente" Eigenschaften

26.01.1990

MENLO PARK (IDG/hv) Techniken und Sprachen der objektorientierten Programmierung (OOP) halten Einzug in verschiedenste Produkte großer Software-Anbieter. Stand bisher noch die objektorientierte Entwicklung eleganter Benutzeroberflächen und neuer C. und Pascal-Dialekte im Vordergrund, so erscheinen jetzt zunehmend Standardanwendungen mit OOP-Technik am Markt.

"Wir konnten unsere Produktivität durch den Einsatz objektorientierter Programmierung gewaltig steigern" meint Brad Silverberg, Vice-President der Forschungs- und Entwicklungsabteilung bei Borland International, Scotts Valley/Kalifornien. Die Weiterentwicklung der hauseigenen Produkte gehe mit OOP-Mitteln weitaus besser voran als je zuvor.

Borland hat seine Datenbankverwaltung Reflex" und das Spreadsheet-Programm "Pro Quattro' mit objektorientierter Technik ausgestattet. Der "Virtual Realtime Object-Oriented Memory Manager" (VROOMM), ein intelligentes Overlay-Managementsystem muß dafür sorgen, daß genau die Routinen in den Overlay-Puffer geladen werden, die am besten zum aktuellen Programmkontext passen.

Verhaltener steigt die Microsoft Corp., Redmond/Washington, in die Welt der objektorientierten Programmierung ein. Zwar kündigte das Unternehmen bereits vor knapp einem Jahr verstärkte Aktivitäten bei objektorientierten Systemen, Sprachen und Anwendungen an, doch die Realität sieht gegenwärtig anders aus. Geschäftsführer Bill Gates räumt ein, daß derzeit weniger als zehn Prozent der Aufgaben bei Microsoft mit OOP-Techniken gelöst werden. Das Unternehmen will, ebenso wie Borland, objektorientierte Pascal-Versionen und in Zukunft auch weitere C++ -Ausführungen anbieten.

Eine auf OOP-Technik basierende "Application Framework" unter der Bezeichnung "Vamp" hat die Aldus Corp., Seattle/Washington, entwickelt. Hinter dem in Deutschland noch nicht vorgestellten Tool verbirgt sich wahrscheinlich die Kombination aus einem Rahmenteil, der das Event-Handling organisiert, und einem Dialog-Manager, der es gestattet, Objekte am Bildschirmfenster zu konstruieren.

Anwender brauchen mit diesem Hilfsmittel nur noch den "harten Kern" ihrer Anwendungen zu programmieren. Die Application Framework soll zur Basis künftiger Versionen des Desktop-Publishing-Pakets "Pagemaker" und anderer Aldus-Produkte werden. Der Hersteller schätzt, daß das Produkt etwa 20 bis 25 Prozent vom Code der neuen Pagemaker-Version 4.0 für sich beanspruchen wird.

Den Hauptnutzen der OOP-Technik sehen Entwickler gerade bei großen Projekten in der Wiederverwendbarkeit des Codes. Viel Zeit wird heute beim Anpassen und Modifizieren einzelner Code-Teile verbraucht. Da sich gewisse Algorithmen, wie zum Beispiel eine Verschieberoutine bei Fenstertechniken, prinzipiell nicht ändern, könnten diese durchaus als Objekte abgelegt werden. Angepaßt werden müßten dann nur noch die jeweils neuen Eigenschaften der Objekte.

Einige SW-Anbieter wollen nur die Technik

Objektorientierte Programmierung erlaubt die Bildung von Bibliotheken in einem weitaus umfassenderen Maße, als das bisher möglich war. So kann zum Beispiel der Code einer Menütechnik, wie man ihn für unterschiedliche Anwendungen benötigt, komplett in objektorientierten Bibliotheken abgelegt und bei Bedarf wieder eingesetzt werden.

Unternehmen wie die Eikon Systems Inc., Foster City/Kalifornien, nutzen die Techniken objektorientierter Programmierung, ohne jedoch entsprechende Sprachen einzusetzen. Das Unternehmen begründet seine Entscheidung gegen diese Sprachen damit, daß der Speicheraufwand für die derzeit am Markt erhältlichen C++ -Versionen gemessen an den hauseigenen technischen Möglichkeiten zu groß sei.

Nach Einschätzung von Fachleuten liegt neben dem hohen Speicheraufwand ein weiteres Problem der OOP in der Unverträglichkeit mit "pseudo-objektorientierten" Standards, wie sie zum Beispiel bei OSF/Motif oder X/Windows vorliegen.

Wegen unterschiedlicher Objektstrukturen sind die meisten Versuche, eine Sprache mit diesen Oberflächen zu kombinieren, bisher unbefriedigend verlaufen.

Anbieter genießen Narrenfreiheit

Große Vorsätze, aber unübersehbare Schwächen bei der Durchführung offenbart Microsoft: Wurden im Vorjahr noch vollmundig umfangreiche Aktivitäten im Bereich objektorientierter Systeme, Sprachen und Anwendungen angekündigt, so ist die Euphorie heute der Ernüchterung gewichen.

Hersteller wie Anwender stehen allerorts vor den gleichen Problemen: Ein hoher finanzieller Aufwand in der Einstiegsphase, ein allzu konventionell ausgebildetes DV-Personal und in vielen Fällen erhebliche Zusatzkosten im Hardware-Bereich lassen objektorientierte Techniken als unberechenbaren Moloch erscheinen. Außerdem sind technische Probleme bei der Abstimmung zwischen den bisherigen C++ -Versionen und den meisten bekannten Benutzeroberflächen an der Tagesordnung.

Trotzdem kommen große Soft-Ware-Anbieter offenbar nicht ohne PR-Akrobaten aus, die phantasievoll mit dem In-Wort "objektorientiert" jonglieren, ohne ein entsprechendes Angebot vorweisen zu können. Diese Narrenfreiheit genießen sie, weil kaum ein Gebiet der Datenverarbeitung so intransparent und komplex ist wie die objektorientierte Programmierung.

Dennoch setzen Hersteller von Standardsoftware zunehmend auf den OOP-Einsatz. Ihre Erwartungen: Anwendungen können mit dieser Technik schneller und komfortabler erstellt werden. Die Wiedeverwendbarkeit des Codes erlöst die Entwickler von einer Reihe stumpfsinniger Codierungsaufgaben. Außerdem ist bei professionellem Einsatz eine Verringerung des Aufwandes an Manpower zu erwarten. hv

Daten und Code bilden eine Einheit

Objektorientierte Programmierung arbeitet im Gegensatz zu prozeduralen Programmierverfahren mit vordefinierten Objekten. Diese bestehen einerseits aus Daten und zugehörigen Eigenschaften (Attributen) sowie andererseits aus prozeduralen Elementen (Methoden), die sich auf das Objekt als abgeschlossene Einheit beziehen. Zwischen Daten und Programmcode gibt es also weder eine logische noch eine räumliche Trennung.

Die Menge aller Objekte ist in verschiedene, hierarchisch organisierte Klassen eingeteilt. Jedes Objekt ist einer bestimmten Klasse zugeordnet. Eine Klassendefinition beschreibt sowohl den Aufbau eines vom Benutzer festgelegten Variablentyps als auch die zugehörigen Methoden. Während sich diese Programmteile auf mehrere Exemplare einer Klasse beziehen, können die gleichnamigen Exemplarvariablen inhaltlich verschieden sein.

Die Klassenorganisation läßt sich durch Zuordnungen wie "ist ein" oder "besteht aus" beschreiben. So ist zum Beispiel eine Aktie Bestandteil der Klasse Wertpapiere. Diese könnten wiederum der Klasse Vermögen untergeordnet werden.

Die Eigenschaften von Objekten und deren Methoden sind vererbbar. Attribute aus übergeordneten Objektklassen werden auf unteren Ebenen berücksichtigt, ohne daß sie in der dort zugeordneten Datenstruktur erneut abgelegt sein müssen. Ein Objekt kann also als eine Einheit beschrieben werden, die "weiß", welche Attribute und welche Prozeduren zu ihrer Manipulation und Darstellung zur Verfügung stehen. hv