Bestehende Anwendungssysteme behutsam renovieren Mit CARE einen grossen Teil der alten Software anpassen

10.02.1995

Von Juergen Koch*

Mit Methoden des Software-Re-Engineerings koennen Programmbestaende saniert und an die Geschaeftsprozesse von Unternehmen angepasst werden. Modernisierte Altanwendungen lassen sich schneller warten und sind zuverlaessiger im Einsatz. Funktionale Erweiterungen erlauben eine Portierung in neue DV-Umgebungen.

Die Meinungen gehen weit auseinander, wenn es um die Vor- und Nachteile von Re-Engineering geht. Fuer die einen ist es schlichtweg fauler Zauber, fuer die anderen ein Allheilmittel. Sind umfassende Aenderungen der Geschaeftsprozesse geplant, kann es sinnvoller sein, neue Standard- oder Individualsoftware einzufuehren, als bestehende Systeme zu renovieren.

Ulrich Schaefer, Marketing-Leiter fuer Software-Engineering bei Digital Equipment, meint dazu: "Re-Engineering ist immer nur dann sinnvoll, wenn aufgrund der geschaeftlichen Anforderungen ein Austausch nicht moeglich oder eine vollstaendige Abloesung wirtschaftlich nicht vertretbar ist. Bei kleinen Anwendungen amortisieren sich die Kosten fuer Neuentwicklung durch Einsatz von CASE-Tools schneller." Re-Engineering beschreibt alle Vorgaenge im Zusammenhang mit Softwaresanierung und -modernisierung. Dazu zaehlen Fehlerkorrekturen, Modifikationen, funktionale Erweiterungen durch neue Module und Qualitaetsverbesserungen. Ein wesentlicher Bestandteil des Re-Engineerings ist das Reverse Engineering. Hierzu zaehlen Aufgaben wie Nachdokumentation, Redesign und Rekonstruktion der Anforderungsspezifikation. In diesem Prozess will man die in der Anfangsphase des Softwarelebenszyklus spezifizierten, jedoch nirgendwo festgehaltenen Programm- und Datenstrukturen rekonstruieren und die implementierten Anforderungen analysieren.

Reverse Engineering wird durch Restrukturierung ergaenzt. Sie umfasst alle qualitaetsverbessernden Vorgaenge im Laufe eines Softwarelebenszyklus. Die Programme werden strukturiert (umformatiert, modularisiert), ihre Funktionalitaet aber nicht veraendert. Die beim Reverse Engineering gesammelten Informationen bilden die Basis fuer die spaetere Wiederbenutzung der Daten und Programme, auch Re-Usability genannt.

Die Ergebnisse der Rekonstruktion fuehren zur eigentlichen Reorganisation der Altanwendungen mittels Forward Engineering, des zweiten Re-Engineering-Bestandteils. Ziel ist es, die Applikationen an die neuen Anforderungen anzupassen und strukturelle oder funktionale Aenderungen vorzunehmen.

Fuer computerunterstuetztes Reverse Engineering, kurz CARE genannt, sind eine Reihe von Softwarewerkzeugen auf dem Markt, die sich fuer Aufgaben wie Restrukturierung, Reformatierung, Modularisierung und Nachdokumentation eignen. Andere CARE-Tools messen Effektivitaet und Qualitaet der Altsoftware. Aus den Ergebnissen wird das Wiederverwendungspotential abgeleitet.

Die beim Re-Engineering anfallenden Informationen ueber Daten, Funktionen und Verknuepfungen der Altsysteme, auch Referenz- oder Metadaten genannt, bilden die Basis fuer die Weiterbenutzung der analysierten Programme in den neuen Umgebungen. Die Speicherung und Verwaltung dieser Informationen erfolgt in einer Entwicklungsdatenbank (Repository), die auch als Ablage fuer die CARE- und CASE-Tools fungiert.

Nach Meinung von Holger Schiemann, Product Manager der Software AG, sind die Gruende fuer Re-Engineering in den Unternehmen oft aehnlich gelagert. Auch wenn bestehende Anwendungssysteme die funktionalen Anforderungen abdecken, besteht oft die Notwendigkeit, die technische Basis zu erneuern. "Man will die Informationsverarbeitung auf eine relationale Datenbank umstellen oder Programme im Zuge eines Rightsizing-Projekts in eine Client- Server-Umgebung portieren und mit grafischen Benutzeroberflaechen ausstatten."

Die Verknuepfung von Altanwendungen mit neuen Applikationen gewinnt zunehmend an Bedeutung. Das resultiert aus der wachsenden Verbreitung heterogener Hardware-Umgebungen, der Einfuehrung verteilter Verarbeitung und den Moeglichkeiten, Grossrechnerprogramme durch neue Technologien wie Objektorientierung zu kapseln und durch Benutzeroberflaechen zu erweitern.

Um bestehende Programme an die ereignisgesteuerte Struktur von GUI-Applikationen anzupassen, ist ein Zerlegen und anschliessendes Zusammensetzen nach einer neuen Logik erforderlich. Fuer das Applikationsrecycling stehen Softwarewerkzeuge zur Verfuegung, mit denen sich die Strukturen komplexer Programme visualisieren und fuer die neue Architektur aufbereiten lassen.

Hans-Joachim Baun, Executive Consultant bei CSC Computer Sciences, ist der Ansicht, dass Business Process Re-Engineering oft zum nachgeschalteten Software-Re-Engineering fuehrt. "Unternehmen wollen Kosten reduzieren, die Effizienz ihrer Geschaeftsprozesse in bezug auf Kundenorientierung steigern und Mitarbeitern Prozessverantwortung zuweisen."

Dazu bietet sich seiner Meinung nach eine Neuausrichtung der DV- Infrastruktur an. Die ueber Jahre entstandenen Programmsammlungen stellen einerseits eine schuetzenswerte Investition dar, haben aber andererseits vielfach die Grenzen ihrer Leistungsfaehigkeit erreicht.

"Ein Grossteil der Anwendungen ist nach jahrelanger Optimierung und Weiterentwicklung nur noch schwer wartbar, und die dem Programmdesign zugrundeliegenden Geschaeftsprozesse sind laengst ueberholt", schaetzt Baun.

Re-Engineering-Projekte unterteilen sich in verschiedene Phasen, zu denen Zielformulierung, Anwendungsbewertung, Loesungsdefinition, Aktionsplanung, Massnahmenrealisierung, Anwendungsrevision und - substitution zaehlen.

Anwendungen, die sich als nicht weiter verwendbar herausstellen, sind neu zu entwickeln, betont Baun. Eine Weiterbehandlung ist fuer ihn der sichere Weg zur Kostenexplosion. Umfassendes Re- Engineering kommt nur fuer sanierungswuerdige Applikationen mit hoher geschaeftlicher Relevanz und funktionaler Qualitaet in Betracht.

"Re-Engineering bedeutet Reorganisation komplexer, meist eng verzahnter Programmsysteme mit unternehmenswichtigen Funktionen", gibt DEC-Manager Schaefer zu bedenken. "Die vollstaendige und zeitgleiche Abloesung birgt das Risiko einer Unterbrechung saemtlicher Geschaeftsprozesse." Er vertritt die Auffassung, dass fuer Unternehmen nichts gefaehrlicher ist, als ueberholte Programme auf einen Schlag zu sanieren. Aus diesem Grund raet er zum sukzessiven Umbau von Prozessen und Programmstrukturen. "Bei der Migration von Mainframe-Programmen sollte man die Struktur zunaechst beibehalten und erste Schritte bei der Umstellung auf Client-Server- Verarbeitung durch Hinzufuegen von Front-ends wagen." Schrittweises Vorgehen mit Erfolgskontrolle bedeutet fuer ihn, kurzfristig wieder in einen funktionierenden Zustand zurueckkehren zu koennen.

Die Bearbeitung der Programme beim Reverse Engineering tangiert auch Lizenz- und Urheberrechte. In der Regel sind die Eigentumsverhaeltnisse nur bei Software, die von hauseigenen Programmierern entwickelt wurde, eindeutig geregelt. Selbst wenn Unternehmen ueber den Sourcecode verfuegen, verbleiben die Urheberrechte, wenn nicht ausdruecklich vereinbart, beim Softwareproduzenten. Fremdsoftware, zu der auch individuell von Auftragsprogrammierern entwickelte Applikationen zaehlen, darf nur im Rahmen der Aufrechterhaltung der Interoperabilitaet mit CARE- Tools behandelt werden. Durch leichtfertigen Umgang mit Softwarewerkzeugen kann die Sanierung der Altsoftware schnell zum kriminellen Delikt werden.

Ein Vorteil der Softwaresanierung ergibt sich durch den Einsatz objektorientierter Techniken. Sie erleichtern das Re-Engineering, da nach dem Reverse Engineering die Spezifikation des Altsystems in eine objektorientierte Entwicklungsumgebung ueberfuehrt werden kann. Die Altanwendung laesst sich dann beim anschliessenden Forward Engineering mit Hilfe von CASE-Tools weiterentwickeln.

Die meisten Programme lassen sich anpassen

Die Funktionalitaet der Programme ist aender- und ergaenzbar. So koennen zum Beispiel existierende Mainframe-Applikationen Interfaces fuer einen Einsatz auf Workstations erhalten. Umstaendlich zu bedienende Programme werden gekapselt und in Client-Server-Architekturen eingebunden.

Die Ergebnisse eines von CSC abgewickelten Re-Engineering-Projekts sehen laut Hans-Joachim Baun folgendermassen aus: Bei zwoelf Prozent der eingesetzten Programme war eine Neuentwicklung erforderlich. 40 Prozent der Applikationen konnten durch Re-Engineering an die Geschaeftsprozesse angepasst werden. 13 Prozent liessen sich ohne Eingriffe weiter wie bisher einsetzen und pflegen. Wartung in reduziertem Umfang kam fuer 21 Prozent der Programme in Betracht. Als langfristig nicht mehr benoetigt stellten sich 14 Prozent der Anwendungen heraus. "Die Unterteilung des Gesamtsystems erlaubte die Konzentration auf sanierungswuerdige Programme, die Wartungskosten liessen sich gegenueber der bisherigen Arbeitsweise auf rund die Haelfte reduzieren", resuemiert Baun.

Allerdings sind konventionell entwickelte Altsysteme nicht generell dadurch besser wartbar, dass man sie in gekapselte Programmobjekte umwandelt. Durch Re-Engineering aendert sich nicht die Funktionalitaet der Applikationen. Es wird aber fuer qualitative Verbesserungen wie Modularitaet, Struktur und Wartbarkeit gesorgt. Die Projektdauer verkuerzt sich durch Beibehaltung der Programme. Anwender arbeiten weiter mit ihren gewohnten Systemen, was den Schulungsaufwand begrenzt. Nicht zuletzt wird durch Re-Engineering die Lebensdauer der Software erhoeht. Bei der Anpassung vorhandener und der Entwicklung neuer Applikationen sollte allerdings von vornherein deren Wiederverwendbarkeit angestrebt werden.

* Juergen Koch ist freier Journalist in Muenchen.