Objektorientierung/Der Nutzen der Objektorientierung bei PPS-Standardsoftware

Überschaubar, wendig, einfach: Software wie eine ideale Firma

12.09.1997

Eigens erstellte PPS-Lösungen sind für die Mehrzahl der Unternehmen nicht bezahlbar. Selbst finanzkräftige Großbetriebe stellen auf Standardprodukte um. Anbieter von Standardsoftware kommen ihnen entgegen; sie offerieren individuelle Anpassungen. Doch bei prozedural programmierten Systemen schaffen die derart individualisierten Lösungen Probleme mit neuen Versionen.

Eine echte Integration von Applikationen anderer Anbieter ist bei prozeduraler Software nur dann festzustellen, wenn die Hersteller sehr eng kooperieren. Daher verfügen die meisten Anwender nicht über wirklich integrierte Komplettlösung, sondern haben letztlich über Schnittstellen verbundene Insellösungen.

Herkömmliche Standardsoftware zieht zudem organisatorische Mängel nach sich. Gebote des Wettbewerbs sind Flexibilität, Schnelligkeit, dezentrale Strukturen und eine ganzheitlich ausgerichtete Geschäftsprozeß-Orientierung. Diese Entwicklung kann hierarchisch-funktional aufgebaute, prozedurale Standardsoftware nicht vollziehen.

Hinzu kommt, daß der große Funktionsumfang heutiger Applikationen oft den Anwender überfordert. Er steht vor einem verwirrenden Angebot von Features, aus denen er sich die für ihn passenden selbst auswählen muß. Ideal wäre es, eine Software aus Bausteinen für alle relevanten Funktionen plus Modulen für benötigte individuelle Erweiterungen möglichst einfach zur benutzerspezifischen Lösung komponieren zu können.

In der Vergangenheit brachten Versuche, prozedurale Software derart modular aufzubauen, nicht den gewünschten Erfolg, sie scheiterten an der Komplexität. Oft ging die gewonnene Flexibilität auf Kosten der Robustheit und der durchgängigen Korrektheit der Systeme. Die Variationsbreite der einzelnen Module hinsichtlich ihrer Nutzung und die Verbindung der einzelnen Komponenten zueinander waren zu vielfältig.

Die Objektorientierung bietet eine Lösung, zuverlässige komplexe Systeme zu entwickeln. Sie besitzt im Vergleich zur konventionellen Software-Entwicklung vor allem bei komplexen Systemen entscheidende Vorteile.

Objektorientierte Standardsoftware ist in mehreren Schichten aufgebaut. Über einem Grundsystem liegt die Anwendungsebene, in der die Codes des Grundsystems zur eigentlichen Funktionalität modelliert werden. Die oberste Schicht schließlich bildet die Präsentationsebene.

Funktionale Anpassungen erfolgen stets auf der mittleren Ebene und bestehen lediglich in neuen logischen Verknüpfungen der Grundroutinen. Anpassungen an Masken, Listen etc. geschehen nur auf der obersten Ebene. Dank dieser Vorgehensweise berühren Anpassungen niemals das Grundsystem, was eine Update-Fähigkeit zu jeder Zeit gewährleistet.

Eine Versionsverwaltung, das heißt die Vergabe von Versionsnummern sowie speziellen Kennungen der angepaßten Objekte, erlaubt bei modernen Systemen ein halbautomatisches oder automatisches Update. Damit ist es möglich, selbst bei angepaßten Lösungen durch Release-Wechsel immer den neuesten Stand der Software einzusetzen, und das mit einem deutlich geringeren Aufwand als bei bisherigen Lösungen.

Ein Kernelement der Objektorientierung ist das Vererbungsprinzip. Das bedeutet, ein neues Objekt auf Funktions- oder Präsentationsebene übernimmt als Ableitung eines bereits vorhandenen übergeordneten Objektes dessen Eigenschaften und läßt sich um weitere ergänzen. Ebenso können andere Objekte wieder als untergeordnete Ableitung alle Eigenschaften des bearbeiteten Objekts vererbt bekommen. Dadurch ist die logische Konsistenz des Gesamtsystems bei Anpassungen stets gewährleistet.

Die einzelnen Anwendungsobjekte sind in sich geschlossen und verfügen über eindeutig definierte Schnittstellen nach außen. Eine Integration in andere Umgebungen beeinträchtigt weder die Funktionalität noch die Stabilität des einzelnen Objekts. Das fördert die Wiederverwendung vorhandener Komponenten. Dadurch lassen sich neue Funktionalitäten oder komplette Softwareprodukte anderer Hersteller relativ leicht und sicher integrieren. Sie sind lediglich neue Objekte in einer Komplettlösung.

Allerdings bedarf dies einer Standardisierung - vor allem wenn die Objekte auf unterschiedlichen Systemen laufen sollen. Die Bemühungen in dieser Richtung sind keineswegs abgeschlossen und werden von der technischen Entwicklung dauernd überholt oder durch divergierende Herstelleransätze erschwert.

Allem Anschein nach dürfte wieder einmal der Markt dafür sorgen, daß sich ein Industriestandard, also die meistgenutzte Methode, durchsetzt. Ein Beispiel für den sich entwickelnden Bedarf an eigenständigen und wiederverwendbaren Objekten und ihren Markt ist das inzwischen enorme Angebot an VBX-Controls und deren Nachfolger OCX- beziehungsweise Active-X-Controls in der Microsoft-Welt.

Ein anderer Kernpunkt der Objektorientierung ist die Mehrfachnutzung getesteter Einzelkomponenten beim Aufbau des Gesamtsystems. Sie veringert die Fehlerquote, die Qualität der Software steigt - nicht nur in programmiertechnischer Hinsicht. Die Wiederverwendung der einzelnen Bausteine und die Vererbung erlauben unproblematische Anpassungen an spezifische Gegebenheiten. Außerdem erhält die Applikation eine durchgängige, einheitliche Oberfläche und Handhabung. Sie läßt sich leichter bedienen und erlernen.

Die Objektorientierung eröffnet Wege, in einer Standardsoftware Geschäftsprozesse realitätsgetreu wiederzugeben. Die Objekte - etwa Mitarbeiter, Arbeitsplätze, Kundenaufträge, Bestellungen oder offene Rechnungen - lassen sich je nach Anforderungen beliebig auf dem Desktop zusammenstellen und bilden so den zu bearbeitenden Geschäftsprozeß ganzheitlich ab. Moderne Organisationsformen wie die der "fraktalen Fabrik" sind so DV-technisch umsetzbar.

Die von einem Anwender benötigten Funktionen beziehungsweise Objekte lassen sich individuell auf dessen Arbeitsplatz zugeschnitten einrichten. Durch die Beschränkung auf das Notwendige erhält er eine bessere Übersichtlichkeit und kann sich auf seinen Teil im Geschäftsprozeß konzentrieren. Eine gute Lösung besticht dadurch, daß der Anwender die Komplexität des Systems nicht mehr wahrnimmt.

Erste PPS-Anbieter arbeiten an der Integration von Tools zur Geschäftsprozeß-Modellierung. Wenn der Anwender mit Hilfe solcher Werkzeuge die für seine Business-Objekte sinnvollen Geschäftsprozesse selbst aussucht und definiert, ist ein weiterer großer Schritt in der objektorientierten Standardsoftware vollzogen.

Nicht selten wird als Kritikpunkt angeführt, daß die objektorientierte Programmierung zuviel Know-how voraussetzt. Folglich sei es schwierig, entsprechend geschultes DV-Personal zu bekommen. Moderne Systeme hingegen verfügen über komfortable Programmier-Tools. Diese erfordern nur noch in Ausnahmefällen das Beherrschen einer komplexen Sprache wie C++.

Der Programmierer kann sich Maus-gesteuert in einer grafischen Benutzeroberfläche bewegen und der natürlichen Sprache angepaßte Befehle benutzen. Selbst die Programmierer in unserem Unternehmen arbeiten zum größten Teil auf diese Weise. Auch hier kommt die Maxime "Verbergen von Komplexität" zum Tragen, die nicht nur für Anwender, sondern genauso auch für Entwickler gilt.

Die Softwareproduktion wandelt sich mit der Objektorientierung von der Einzel- zur Variantenfertigung auf Basis von wiederverwendbaren Softwarebausteinen. Die beim Kunden eingesetzte Software entsteht aus standardisierten Bausteinen. So läßt sich die Anwendung - wesentlich einfacher als bei der herkömmlichen daten- und funktionsorientierten Programmierung - an die gewünschten individuellen Abläufe anpassen.

Die Objektorientierung steht für eine spezielle Art, zu denken und Probleme anzugehen. So ermöglicht sie übersichtliche, klar abgegrenzte, robuste, pflegeleichte und skalierbare Softwarestrukturen. In Zukunft werden anspruchsvolle und damit komplexe Lösungen softwaretechnisch nur noch objektorientiert möglich sein.

Grundaspekte der Objektorientierung

In einem Objekt sind Daten und Funktionen zusammengefaßt. Die Objekte sind eigenständige Einheiten, die untereinander Nachrichten austauschen können. Diese Nachrichten lösen im Objekt bestimmte Vorgänge aus. Der Ablauf und die Realisierung dieser ausgelösten Aktion bleibt, im Gegensatz zur prozeduralen Programmierung, nach außen hin verborgen. Um die Interna braucht sich der Anwender nicht zu kümmern. Die Daten- und Programmstruktur eines Objekts läßt sich so ohne Auswirkungen auf die anderen Objekte ändern. Diese Eigenschaft nennt man Kapselung.

Wegen dieser Eigenschaft sind beliebige Objekte miteinander verknüpfbar, wann immer es sinnvoll ist. Die beliebige Kombinierbarkeit und die unbegrenzte Wiederverwendbarkeit der so realisierten Softwarebausteine mit eindeutig definierten Schnittstellen erinnert an einen "Lego"-Baukasten.

Objekte mit gemeinsamen Merkmalen und Aktionen - Methoden genannt - werden zu Klassen zusammengefaßt. Dabei bilden die Klassen eine Hierarchie. Wird ein neues Objekt erzeugt, erhält es automatisch alle Merkmale aus der übergeordneten Baumstruktur in dieser Klassenhierarchie. Das hat zur Folge, daß sich vorhandene Objekte wiederverwenden lassen. Man spricht in diesem Zusammenhang von Vererbung. Die notwendigen Änderungen und Erweiterungen der Merkmale erfolgen durch spezifische Anpassungen an das neue Objekt.

Angeklickt

Systemhäuser tendieren heute vermehrt zur objektorientierten Programmierung - gerade bei Standardsoftware. Ihre Protaagonisten führen eine Reihe - zumindest theoretisch - überzeugender technischer Vorteile an. Diese sollen sich im Prinzip in geringen Kosten, schnellerer Entwicklung sowie höherer Anpassungsfähigkeit und Wandelbarkeit niederschlagen.Damit brächt Objektorientierung das, was anwesende Unternehmen gemeinhin als elementare Wettbewerbsfaktoren bezeichnen.

*Werner Huttner ist Produkt-Manager, und Stefan Wache ist Marketing-Leiter bei der Infor Gesellschaft für Informatik in Friedrichsthal.