Rheinhold Thurner (Hrsg.)

Re-Engineering - Ein integrales Wartungskonzept zum Schutz von Software-Investitionen

17.12.1993

Wann lohnt sich Software-Re-Engineering, und welche Ausgangslage im Unternehmen rechtfertigt ein so schwieriges Unterfangen? Mit zwei Fachbeitraegen aus der wissenschaftlichen und dreizehn aus der praktischen Perspektive will dieser Titel Antworten geben. Er beleuchtet damit unterschiedliche Aspekte eines Verfahrens, das - wenn richtig angewendet - alter Software zu neuem Glanz verhelfen soll.

Verschiedene Beitraege anstelle eines geschlossenen Texts zu bringen ist deshalb die richtige Entscheidung, weil es ein Re- Engineering als solches mit allgemeingueltigem Strickmuster nicht gibt. Darin sind sich fast alle Autoren einig. Es empfahl sich daher, praktisch relevante Problembereiche vorzustellen und darauf abzuklopfen, welches Werkzeug aus dem Re-Engineering- Instrumentenkoffer das jeweils richtige ist.

Der erste Beitrag aus wissenschaftlicher Feder warnt jedoch davor, Re-Engineering bestehender Software-Anwendungssysteme als oberflaechliches Anpassen und Polieren an der bestehenden Loesung misszuverstehen. Strukturelles Re-Engineering muesse vielmehr beim Anwendungsmodell ansetzen und auf eine Systemstruktur zielen, die Qualitaetsmerkmalen wie Testbarkeit, Anpassungsfaehigkeit und Wartbarkeit genuegt. Der Verfasser zeigt konkret, wie sich der objektorientierte Ansatz auf die fruehe Phase der Anwendungsmodellierung uebertragen laesst. Insgesamt vertritt der Autor eine Richtung, die auf fundamentale und kompromisslose Restrukturierung setzt.

Der zweite theoretische Beitrag stellt dagegen zwei Varianten des Re-Engineerings von Benutzer-Schnittstellen vor. Dabei wird zuerst eine Dialogsoftware vor die klassische Host-Applikation geschaltet oder alternativ auf dem Arbeitsplatzrechner selbst eine Integrationssoftware vor die Dialogsoftware des jeweiligen Hosts implementiert.

Auf diese Weise lassen sich am Front-end Miniapplikationen einbauen, ohne auf der Host-Seite Aenderungen vornehmen zu muessen. Der Verfasser faehrt also eher eine Re-Engineering- Vermeidungsstrategie.

Die praxisnahen Beitraege befassen sich mit der schrittweisen Entwicklung und Dokumentation der Zwischenergebnisse als Erfolgsfaktoren fuer einen neu strukturierten Programmcode. Beschrieben werden ausserdem Ansaetze, mit deren Hilfe sich Probleme loesen lassen, die bei der Migration auf neue Architekturen entstehen, weil durch die staendige Erweiterung der Funktionalitaet von Programmen viel Code hinfaellig wird.

Reverse-Engineering als Instrument zur Wiederverwendung von Objekten und Software-Elementen, die in alten Programmen vorhanden sind, ist ein weiteres interessantes Themengebiet des Buches. Zusaetzlich angesprochen wird Re-Enginering im Zusammenhang mit Methoden zur Analyse existierender Programme und zur Vorhersage der Auswirkungen, die sich durch eine geplante Programmaenderung fuer den restlichen Code ergeben.

Ausser durch den inhaltlich weitgespannten Ansatz und das gelungene Nebeneinander von Theorie und Praxis ueberzeugt das Buch auch durch seine vielen Literaturhinweise. Diese Tasache ist deshalb erwaehnenswert, weil es kaum Spezialarbeiten zu diesem Gebiet gibt. Die einzelnen Aufsaetze verweisen auf Buecher, die nicht ihrem Titel, wohl aber ihrem Inhalt nach fuer bestimmte Problemstellungen der Neustrukturierung von Software-Systemen zu gebrauchen sind.