Branchen, Prozess- und Lieferketten vernetzen sich zunehmend, sie digitalisieren und automatisieren und setzen künstlicher Intelligenz ein, um Entscheidungen abzusichern. Legacy-Systeme müssen in einem dynamischen Modernisierungsumfeld weiter funktionieren und dabei schrittweise Funktionalitäten an modernere Software-Systeme abgeben. Die Grundlage ist es, die bestehenden Software-Systeme mit ihren über Jahrzehnte entwickelten Funktionsweisen und Abhängigkeiten zu verstehen. Anwendungen und interne Funktionen müssen transparent und nachvollziehbar werden. Dazu muss ersichtlich sein, wie Daten und Informationen verarbeitet werden und wie Ergebnisse letztlich entstehen. Der Softwareanbieter Sysparency hat für diese Aufgabe einen Algorithmus entwickelt.
Haus oder Wolkenkratzer
Jedes Legacy-System ist individuell. Der Aufbau einer Software entspricht der Komplexität eines physischen Gebäudes. Diese kann variieren vom kleinen Einfamilienhaus bis zum Wolkenkratzer. Je nach Anwendungszweck und Umgebung unterscheidet sich die Architektur und der Aufbau dieser Gebäude signifikant. So lassen sich auch Software-Systeme verstehen. Darum ist eine individuell angepasste und doch automatisierte Dokumentation von großen Software-Systemen notwendig, gerade wenn sie älter ist und immer wieder ergänzt und modernisiert wurde.
Software als Modell darstellen
In den letzten zehn Jahren forschte das Software Competence Center Hagenberg gemeinsam mit der Firma Sysparency an einem Framework zur Analyse und automatisierten Generierung einer Dokumentation von historisch gewachsenen Legacy-Anwendungen. Das Ergebnis ist das Produkt Sysparency. Dessen Algorithmen verarbeiten unterschiedlichste Programmiersprachen und bauen daraus abstrakte digitale Modelle der Software-Anwendung. Aus unterschiedlichsten Perspektiven wird dieses Modell analysiert und die jeweiligen Informationen in der gewünschten Art und Weise als Dokumentation generiert. So hilft die Anwendung Softwareentwicklern bei der Einarbeitung in eine neue Legacy-Anwendung, dem Manager bei seinen Modernisierungsentscheidungen und den Fachbereichen beim Einarbeiten und Nachvollziehen der implementierten Logik. Das Ziel ist es, die Erfolgsaussichten von Digitalisierungsprojekten und IT-Modernisierungen zu erhöhen und dabei Zeit und Ressourcen zu sparen.
Programmlogik wird analysiert
Zunächst liest der Algorithmus den Quellcode des Systems. Der Algorithmus generiert die hierzu gehörende Eingabemaske. Anschließend wird ein Kontrollfluss-Diagramm der potenziellen Wege der eingetragenen Daten dargestellt. Die tabellarische Darstellung des Kontrollflusses wird anhand der Entscheidungslogik in Form von Bedingungen dargestellt, sodass herausgelesen werden kann, wann welche Masken aufgerufen werden. Anschließend werden die Datenbanken dargestellt, die im gesamten Code verwendet werden. Gleichzeitig kann daraus herausgelesen werden, wie die Art des Zugriffs erfolgt (lesend und/oder schreibend).