Objektorientierte Systeme

Um das OO-Paradigma ranken sich viel zu viele Mythen

30.07.1993
Von Michael Wagner
Nachdem objektorientierte Systeme inzwischen fast als IV- Allheilmittel angesehen werden, ist es hoechste Zeit, die Mythen beiseite zu raeumen, mit denen die Objektorientierung immer noch verkauft wird. Kostspielige Fehlinvestitionen lassen sich nur vermeiden, wenn Klarheit darueber besteht, wo Staerken und Schwaechen dieser Technologie liegen und welche Rolle sie innerhalb der heutigen IV-Landschaft spielt.

Nicht nur in Zeiten wirtschaftlicher Rezession sind die Kostenargumente, mit denen die objektorientierten Systeme ueblicherweise angepriesen werden, en vogue: Dazu zaehlen vor allem die Reduzierung der Entwicklungskosten durch Wiederverwendung von Softwarekomponenten, die Effizienzsteigerung bei der Programmierung - nach Herstellerangaben in atemberaubenden Groessenordnungen - und ein einfacher Einstieg in die objektorientierte Software-Entwicklung durch Crash-Kurse.

Zumindest fuer die ersten objektorientierten Entwicklungsprojekte trifft das Versprechen der Wiederverwendbarkeit jedoch keineswegs zu, da logischerweise fruehestens im zweiten Projekt mit einem erneuten Gebrauch von Softwarekomponenten gerechnet werden kann. Tatsaechlich entstehen vielseitig verwendbare Komponenten zumeist erst nach mehreren, typischerweise drei bis vier Iterationen des zugrundeliegenden Designs. Wiederverwendbarkeit kommt auch nicht von selbst zustande, wie mancher Hersteller glauben machen will, sondern sie muss eigens entworfen und verwaltet werden.

Was die Effizienz der Programmierer angeht, so ergeben sich nur in wenigen Bereichen sofortige Steigerungen, so zum Beispiel bei grafischen Benutzerschnittstellen, die von verschiedenen Klassenbibliotheken relativ gut abgedeckt werden. Eine Steigerung der Programmiereffizienz auf breiter Basis ist dagegen erst mit wachsender Erfahrung der Programmierer zu erwarten und geht meist mit der Wiederverwendung unternehmensspezifischer Komponenten einher.

Anwender und Entwickler reden nun ueber Dasselbe

Obwohl die Grundlagen der Objektorientierung relativ einfach zu verstehen sind, wird der notwendige Schulungs- und Trainingsaufwand zu Anfang meist unterschaetzt. Die Folge davon ist, dass die ersten eigenen Entwicklungen spaeter langsamer und teurer ausfallen als erwartet. Auch der - oft zitierte - einfache Umstieg von C auf Cii ist nur in den seltensten Faellen moeglich, denn gerade bei Cii handelt es sich um eine extrem komplizierte Sprache, die erst mit viel Erfahrung gemeistert werden kann. Dazu Elaine Bond, die ehemalige DV-Chefin der Chase-Manhattan-Bank: "Mit der OO-Einfuehrung in den IV-Abteilungen verhaelt es sich wie mit fliegenden Jumbos; die kann man auch nicht einfach umdrehen".

Waehrend die ueblichen Argumente der Hersteller in der Praxis also meist nicht greifen, stellen sich kurzfristige Vorteile auf ganz anderen Gebieten ein. Erstaunlicherweise ist der groesste Nutzen, der sich aus einer objektorientierten Analyse- und Designphase ergibt, die Tatsache, dass Anwender und Entwickler nun ueber dieselben Dinge reden.

Im Gegensatz zur prozeduralen Programmierung oder dem Einsatz relationaler Datenbanken ist kein zusaetzlicher Uebersetzungsschritt in Datenstrukturen oder Tabellen notwendig. Statt dessen lassen sich die Objekte der realen Welt und ihre Wechselbeziehungen unmittelbar programmiertechnisch repraesentieren. "Endanwender und Entwickler koennen bei der Modellierung direkt zusammenarbeiten und den Programmtext als Referenz fuer Diskussionen benutzen", so fasste ein Anwender seine Erfahrungen zusammen.

Voraussetzung fuer diesen Effekt ist allerdings eine von der Sprache unabhaengige Schulung der Designer, die den grundlegenden Konzepten der Objektorientierung Vorrang vor den Spezifika einzelner Sprachen einraeumt.

Durch die Konzentration auf das Wesentliche ergibt sich eine realitaetsnahe Strukturierung der Probleme, die weitgehend unabhaengig von der subjektiven Einschaetzung einzelner Designer ist.

Dadurch, dass Anwender bereits in einer fruehen Phase in den Entwicklungsprozess eingebunden werden, lassen sich Fehler vermeiden, was spaeter zu einer Reduzierung des Implementierungsaufwandes fuehrt. Hier ergibt sich also ein unmittelbarer Vorteil, waehrend sich die Wiederverwendung von Komponenten erst in Folgeprojekten auswirkt.

Komplexitaet kontrollieren und Flexibilitaet foerdern

Mittelfristig wird durch den Einsatz objektorientierter Systeme auch eine groessere Komplexitaet kontrollierbar und gleichzeitig eine hoehere Flexibilitaet der Anwendungen erreichbar. Allerdings muss die Software-Architektur entsprechend entworfen werden, das heisst, es sollten moeglichst einfache und voneinander unabhaengige Schnittstellen zwischen den Komponenten bestehen. Erst dadurch wird die (Re-)Kombination der verschiedenen Komponenten moeglich und der Grundstein fuer eine spaetere Wiederverwendung dieser Softwarebausteine gelegt.

Das bestaetigt auch David Reed, Chef der Anwendungsentwicklung beim Softwarewerkzeuge-Hersteller Centerline: "Wir mussten unsere Architektur mehrfach ueberarbeiten, bis wir das richtige Verhaeltnis zwischen Abstraktion und Implementierung gefunden hatten", fasst Reed seine Erfahrungen zusammen.

Die Eigenschaften der objektorientierten Systeme, Komplexitaet und Flexibilitaet zu vereinigen, kommt den Anforderungen entgegen, die den Unternehmen aus der Globalisierung und der rasanten Entwicklung der Maerkte erwachsen. Die verkuerzten Produktlebenszyklen und der groessere Konkurrenzdruck fordern von ihnen eine schnellere Reaktionsfaehigkeit, wobei gleichzeitig die Aufgabenstellungen sowohl produkttechnisch als auch durch die Internationalisierung komplexer werden.

Komplexitaet kann durch Standardisierung entsprechender Softwarebausteine ueberschaubar gemacht werden. Wo dies nicht moeglich ist, muessen Voraussetzungen und Auswirkungen der einzelnen Komponenten sehr genau dokumentiert werden. Die Wiederverwendung solcher Bausteine erklaert die hohe Effizienz, mit der erfahrene Programmierer in kuerzester Zeit zu tragfaehigen Loesungen gelangen.

Die mehrere Projekte umfassende Lernphase, in der Softwarekomponenten sowie Programmierer zu einer hohen Qualitaet reifen, kann jedoch in keinem Fall abgekuerzt oder uebersprungen werden. Nur in einer angemessenen Zeit laesst sich das Wissen um die Bedingungen und Loesungsstrategien der jeweiligen Anwendung erarbeiten.

Mit der gestiegenen Effizienz ist es moeglich, auch solche Systeme mit vertretbarem Aufwand zu entwickeln, die bisher ueberhaupt nicht bewaeltigt werden konnten. In dem Masse, wie sich Management-Ablaeufe in den Unternehmen verzahnen, werden auch komplexere Anwendungen entworfen - beispielsweise Groupware-Systeme, die weiche Informationen erfassen und zu harten Unternehmensdaten in Beziehung setzen. Verstaerkt wird dieser Trend durch die immer enger werdenden Kundenbeziehungen und die weitreichenden Kooperationen zwischen den Herstellern.

Fallweise Kommunikation zwischen Anwendungen

Diese Trends spiegeln sich auch in der Entwicklung der Informationssysteme wider. Das primaer durch die gesunkenen Hardwarepreise verursachte Downsizing-Fieber findet auf der Softwareseite eine Entsprechung in der unter anderem von relationalen Datenbanken gekennzeichneten Client-Server- Technologie.

Im Zuge der Verknuepfung von Geschaeftsprozessen gewinnt aber ein weiterer Technologietrend an Bedeutung, naemlich die vor allem von der Object Management Group (OMGvorangetriebene Interoperabilitaet von Anwendungen. Im Gegensatz zum herkoemmlichen Export und Import von Datendateien bezieht sich der Begriff Interoperabilitaet auf die fallweise Kommunikation zwischen Anwendungen: Bislang separate Vorgaenge werden miteinander verzahnt.

Der von der OMG ins Leben gerufene Corba-Standard (Common Object Request Broker Architecture) ermoeglicht die Interoperabilitaet in heterogenen Systemen auf der Basis objektorientierter Technologie. Corba-Systeme sind in der Lage, Anfragen und Informationen zwischen Anwendungen auszutauschen, die in unterschiedlichen Programmiersprachen implementiert wurden - unabhaengig von den darunterliegenden Betriebssystemen oder Netzprotokollen.

Die Vereinfachung der Schnittstellen durch den objektorientierten Ansatz ermoeglicht es zudem, bestehende Anwendungen in Corba- Systeme einzubinden. Damit wird ein schrittweiser Uebergang von herkoemmlicher zu objektorientierter Technologie gewaehrleistet. Der Corba-Standard erlaubt eine hohe Flexibilitaet der Architektur verteilter Systeme und ermoeglicht das, was zur Zeit unter dem Stichwort Software-Rightsizing diskutiert wird: die Verteilung der Anwendungsfunktionalitaet dorthin, wo sie gebraucht wird.

Aus Corba ergibt sich eine umfassende Gestaltungsfreiheit fuer verteilte Systeme. Die kritische Anwendungsfunktionalitaet kann sowohl auf den Server-Systemen und auf den Client-Workstations als auch auf beliebigen Knotenrechnern gehalten

werden. Einer schnelleren Anpassung der Informations- und Softwaretechnik an die sich aendernden Anforderungen des Unternehmens steht damit nichts mehr im Wege. Die Interoperabilitaet ermoeglicht zudem eine unternehmensuebergreifende Zusammenarbeit und die Einbindung von Kunden auf der Basis gemeinsamer Geschaeftsobjekte.

Eine voellig neue Serviceindustrie

Ueber die weitere Entwicklung der Softwareindustrie und Auswirkungen der objektorientierten Technologien kann nur spekuliert werden. Betriebssysteme und Anwendungen werden jedoch sicherlich in zunehmendem Masse objektorientiert implementiert. Durch die Corba-Technologien entstehen moeglicherweise Dienstleistungen, auf die ueber Weitverkehrsnetze zugegriffen werden kann. Unter der Bezeichnung Information Brokerage arbeitet die OMG derzeit bereits an einem ersten Ansatz fuer eine Objektboerse, die der Verteilung von Objekten und Dienstleistungen in Netzen dient.

Auch fuer die Endbenutzer wird sich einiges aendern. Komponentenbasierte Software ermoeglicht nicht nur eine Anpassung der Anwendungen an die persoenlichen Beduerfnisse; bestimmte Standarddienstleistungen, beispielsweise Rechtschreibpruefungen, koennen dann auch transparent ueber die Netze abgewickelt werden. Langfristig wird durch die Corba-Technologie eine voellig neue Industrie von hochspezialisierten Serviceanbietern entstehen.

Die Objektorientierung ist sicherlich kein Allheilmittel fuer informationstechnische Probleme. Viel wichtiger als die Technologie selbst ist das Verstaendnis fuer die grundlegenden Prozesse innerhalb eines Unternehmens beziehungsweise fuer deren wesentliche Probleme. Die objektorientierten Techniken koennen allerdings bei der Analyse helfen; insbesondere in grossen, komplexen Systemen lassen sich mit einer objektorientierten Vorgehensweise Zusammenhaenge aufdecken und Loesungswege aufzeigen.

Auf der Implementierungsseite entwickelt sich der objektorientierte Ansatz zum Werkzeug

der Wahl, da Flexibilitaet und Leistungsfaehigkeit der Technologie auf diesem Gebiet unuebertroffen sind. Folglich ist die Objektorientierung eine Querschnittstechnologie, die wie ein Katalysator auf die kosteneffektive Evolution der Informationssysteme wirkt.