Software-Reengineering

Reengineering von "Altsystemen"

Angesichts der immer größer werdenden Menge an Software, die gepflegt und gewartet werden muß, sind Forderungen nach Maßnahmen, wodurch die Kosten der Softwarepflege und -änderung günstig beeinflußt werden, verständlich und gerechtfertigt.
Durch den Einsatz von Softwaretechniken, die unter dem Stichwort "Software Reengineering" zusammengefaßt werden, können solche Anforderungen erfüllt werden, indem Merkmale vorhandener Software beeinflußt werden, die sich günstig auf die Softwarewartbarkeit auswirken.
Software Reengineering ist ein zweistufiger Prozeß, der sich zusammensetzt aus reverse engineering und forward engineering.

Reverse Engineering

Die erste Stufe des Software-Reengineering-Prozesses wird als "Reverse Engineering" bezeichnet, weil sie im wesentlichen in Umkehrung des üblichen Vorgehens bei der Erstellung des Softwareanteils von IT-Systemen ausgeführt wird.
Die wesentlichen Aufgaben beim Reverse Engineering bestehen darin, die Struktur und das Verhalten des Softwareanteils vorhandener IT-Systeme zu verstehen, die Software aufzubereiten sowie nicht oder nicht mehr vorhandene Informationen über die Software wiederzugewinnen oder auf abstrakten Ebenen zu beschreiben.
Reverse Engineering sollte als präventive Softwarepflegemaßnahme immer dann durchgeführt werden, wenn die Softwaredokumentation nur unvollständig oder gar nicht mehr zur Verfügung steht, wenn sie unverständlich ist, wenn sie nicht den aktuellen Zustand der Software widerspiegelt oder nicht den geforderten Dokumentationsstandards entspricht.

Forward Engineering

Die zweite Stufe des Software-Reengineering-Prozesses wird als "Forward Engineering" bezeichnet. Das Vorgehen beim Forward Engineering entspricht dem üblichen Vorgehen bei der Systemerstellung.
Ziel beim Forward Engineering ist es, den Softwareanteil vorhandener IT-Systeme dem derzeitigen Technologiestand entsprechend zu modifizieren, was (im Gegensatz zum Reverse Engineering) auch zu funktionalen Änderungen der Software führen darf. Typische Beispiele für solche Modifizierungen sind der Wechsel in der Programmiersprache, der Übergang zu einem neuen Datenbanksystem oder die Übertragung von Software auf eine neue Rechner- oder Betriebssystemplattform.
Wenn Forward Engineering in Verbindung mit vorausgehendem Reverse Engineering durchgeführt wird, dann bilden die beim Reverse Engineering erzeugten Produkte wie Dokumentationen, Modelle u.ä. die Grundlage für die Modifizierung der Software beim Forward Engineering.