Projekt Digital
Der Blog für digitale Business LeaderAutomatisierte Softwaredokumentation als Entscheidungshilfe für das Management
Welche Vorteile hat sie und wie gelingt sie am besten?
Bereits seit Jahren oder gar Jahrzehnten im Einsatz und mittlerweile so unverständlich, dass sie nur noch Kopfschmerzen bereitet: Vielleicht erkennt der Eine oder Andere in dieser Beschreibung seine Unternehmensanwendung wieder. Schade nur, dass man nicht von Beginn an eine Softwaredokumentation betrieben hat. Wie viel einfacher wäre es jetzt für die neuen Mitarbeiter, die Anwendung zu verstehen und für den IT-Verantwortlichen die richtigen strategischen Entscheidungen zu treffen!
Um Unternehmen zu unterstützen, die sich in einer ähnlichen Situation befinden, arbeitet PITSS an einer neuartigen Lösung zur nachträglichen, automatisierten und visuellen Softwaredokumentation. Dabei sollen Daten sowohl aus den jeweiligen Programmquelldateien, als auch für die grafische Aufbereitung von Prozessen und deren Detailschritten erfasst werden. Ziel ist es, bestehende Anwendungssysteme erheblich und sinnvoll zu verbessern, damit neue oder externe Mitarbeiter, Architekten und Manager weit schneller an eine Anwendung herangeführt werden können bzw. diese insgesamt einfacher wartbar wird.
Bisher bekannte Verfahren zur Dokumentation im Überblick
1. Softwaredokumentation
Es gibt Lösungen, die Entwickler bei der Dokumentation unterstützen – beispielhaft sei an dieser Stelle der „SAP ABAP Documentation Generator“ der Firma PIKON genannt. Diese Werkzeuge setzen jedoch bei der eigentlichen Softwareprogrammierung bzw. -entwicklung an und sind zudem meist auf lediglich eine Programmiersprache oder eine Fähigkeit begrenzt. Softwarelösungen, die eine automatisierte und vor allem nachträgliche Dokumentation von bestehenden Softwareanwendungen ermöglichen, sind jedoch nicht bekannt.
2. Data Lineage
Data Lineage ermöglicht es, zu einem bestimmten Datum diejenigen Daten in den Quellen ausfindig zu machen, aus denen das zu analysierende Datum abgeleitet wurde. Hierzu erfolgt die Ermittlung aller Änderungen, Anpassungen und Entwicklungen an bestimmten Datenteilen und fördert ein Verständnis der kompletten Datenflüsse und den sich daraus ergebenden Metadaten.
Tools wie bspw. MANTA nutzen hierfür im Wesentlichen strukturierte Daten aus SAP, Oracle, MSSQL, IBM DB2, PostgreSQL und anderen Datenbank- bzw. Data-Warehouse-Systemen (DWH). Die Nutzung von Softwareanwendungen selbst als Datenbasis für Data Lineage ist nicht bekannt.
3. Process Mining
Beim Process Mining werden vorhandene (strukturierte) Prozessdaten – z. B. Log Files oder Transaktionsdaten aus einem DWH oder einem ERP-System – erfasst, analysiert und daraus der zugrundeliegende Prozess modelliert. Führende Anbieter sind u.a. die Celonis SE und die Process Analytics Factory GmbH. Doch bei Individualsoftware und vor allem bei Legacy-Systemen stoßen die aktuellen Process-Mining-Ansätze an ihre Grenzen. Alt-Applikationen verfügen nur selten über eine Workflow-Engine, von der die notwendigen strukturierten Prozessdaten abgegriffen werden können.
4. Automatische Codeanalyse
Die PITSS entwickelt bereits seit Gründung 1999 Softwarewerkzeuge zur Analyse von Source Code von Anwendungen. Diese Tools finden vor allem bei der Code-Modernisierungen beliebig großer und komplexer Software Anwendung und lassen sich auch ohne umfassendes fachliches wie technisches Wissen anwenden. Ausgehend von diesen Werkzeugen ist die PITSS in der Lage, in außerordentlich kurzer Zeit zuverlässige Aussagen über Entwicklungsvorhaben zu tätigen und diese auch auszuführen. Mit den bisherigen statischen Analysen wird jedoch die Durchgängigkeit von Prozess, Architektur und Programmierung über alle technischen Ebenen hinweg nicht ausreichend gewährleistet. Ein System zur Softwaredokumentation zu entwickeln, das sich sowohl auf die automatische Software-Analyse als auch -Dokumentation und -Visualisierung versteht, ist unser aktuelles Vorhaben.
Das kann mit einer automatisierten Softwaredokumentation erreicht werden
Mitwirkung bei IT-Projekten
Eine Einbindung der Fachabteilungen in Vorhaben zur Softwaremodernisierung bereits in den frühen Phasen ermöglichen? Das würde den aktuell noch verbreiteten und teilweise problematischen Selbstzweck einer IT-Abteilung gegenüber den eigentlichen Softwarenutzern beseitigen. Mithilfe einer automatisierten Dokumentation wird das Herrschaftswissen in den Köpfen der Entwickler bzw. der IT-Abteilung visuell in Form einer interaktiven, elektronischen Dokumentation transportiert. IT-Projekte erfreuen sich dadurch einer breiteren Akzeptanz und genießen im Allgemeinen mehr Erfolg.
Stärken und Schwächen der Software aufgrund des Nutzungsverhaltens ermitteln
Ein automatisiertes Softwarewerkzeug kann Informationen während der Nutzung der Applikation durch die Anwender erheben und diese dem statischen Programmcode in seinen Abhängigkeiten gegenüberstellen. Die so ermittelten Informationen zeigen nicht nur das Nutzungsverhalten der Applikation – sie machen auch Stärken und Schwächen innerhalb der Prozesse ausfindig. Werden die Erkenntnisse aus der automatisierten Dokumentation auch noch in einer visuellen Form dargestellt, wird ein direkter, zielorientierter Dialog mit den Anwendern ermöglicht.
Verschiedene Aufzeichnungsmodalitäten unterstützen die Modernisierung
Ist die Verbindung zwischen Business-Prozessen und Software-Artefakten einmal geschaffen, bieten sich bei der Modernisierung von Legacy-Applikationen völlig neue Möglichkeiten: Es werden verschiedene Aufzeichnungsmodalitäten ermöglicht. Zum einen zeichnen sie den dedizierten Geschäftsprozess auf, zum anderen können sie innerhalb der kontinuierlichen Beobachtung des Produktionssystems Muster wiedererkennen, die eindeutig den aufgezeichneten Prozessen zugeordnet werden können.
Prozessdokumentation
Im Falle einer Modernisierung sind meist die Prozesse das einzig Konstante, daher ist es wichtig den Blick auf die Prozesse zu werfen. Neben der architekturellen Sicht auf die Legacy-Applikation lässt sich dank der automatisierten Softwaredokumentation auch die viel wertvollere Prozessmodellierungssicht retrograd ermitteln. Dabei kann man sich das Heranziehen veralteter Dokumentationen, aufwändiger und fehleranfälliger Interviews oder umfangreicher Recherche im Source Code sparen. Zudem ermöglicht dieses Verfahren, oft genutzte, sehr kompliziert umgesetzte, oder völlig vergessene Prozesse unmittelbar sichtbar zu machen. Etwas, was kein Pflichtenheft gewährleisten kann, zumal Pflichtenhefte in der Code-Dokumentation mittlerweile ausgedient haben.
Weitere Vorteile der automatisierten und visuellen Software-Dokumentation
- Das IT-Know-how im Unternehmen geht auch bei einem Weggang der ursprünglichen Softwareentwickler nicht verloren und kann zudem in die Fachabteilungen transportiert werden.
- Eine (nachträgliche) Dokumentation von bestehenden IT-Systemen in Form einer Onlinedokumentation
– wird zunehmend von der IT-Compliance, Wirtschaftsprüfern und Behörden gefordert,
– ist für den Erhalt und die Weiterentwicklung von Softwareanwendungen essenziell,
– ist für die Modernisierung der IT entscheidend. - Generierung von zielgruppengerechten (visuellen) Abstraktionssichten für unterschiedliche Entscheider.
- Beantwortung komplexer und/oder diffuser Fragen zur Software-Architektur
- Implementierung durch eine interaktive Dokumentation.
Implementierung einer Software-Dokumentation in der Praxis
Will man zur Laufzeit der Applikation Informationen über die Verwendung sammeln, dann ist es notwendig, die zu untersuchende Software um Logging-Calls zu erweitern. Vergleichbar mit Trackern oder Cookies innerhalb einer Webseite, lassen sich mithilfe dieser Logging-Calls die Dauer der Nutzung, die Abarbeitung oder die verwendeten Objekte protokollieren. Da aber eine Anwendung schnell auf Millionen Zeilen von Quellcode kommen kann, wäre es undenkbar, die notwendigen Logging-Calls manuell einzufügen. Darüber hinaus soll eine solche Prozessanalyse auch nur für einen bestimmten Zeitraum aktiv bleiben, also müssen die Logging-Calls effizient wieder entfernt werden können.
Die große Menge an komplexen und heterogenen Daten sowie die Vielfalt an zu beantwortenden Fragen lassen die Visual-Analytics-Methode als geeignetes Interface für den Endnutzer erscheinen. Die Dokumentation wird daher in Form einer hoch-interaktiven Visual-Analytics-Anwendung umgesetzt, die die Exploration der über die Software erhobenen Daten erlaubt. Dabei ist eine konsistente Navigation zwischen den Abstraktionsebenen zwischen dem Prozessmodell des Managements und dem Source Code der Entwickler von besonderer Bedeutung, damit der Benutzer rasch ein umfassendes Verständnis der Software und ihrer Zusammenhänge erlangen kann.
Fazit
Die automatisierte und visuelle Softwaredokumentation trägt in erheblichem Maße dazu bei, dass eine sehr komplexe bzw. Legacy-Applikation überhaupt “begriffen” werden kann. Daraus resultiert, dass sowohl IT-Mitarbeiter und Architekten als auch Manager deutlich schneller an eine Anwendung herangeführt werden können. Dass IT-Projekte sich einer breiteren Akzeptanz erfreuen, ist ein weiterer positiver Nebeneffekt dieser Methode. Ein ebenso wichtiger Punkt ist die Reduzierung der Wartungsaufwände. Fehlerbehebungen bzw. das Lesen und Verstehen von Code beanspruchen dank der guten und umfassen Dokumentation nicht mehr so viel Zeit. Zudem öffnen sich solchen ausführlich dokumentieren Anwendungen einfacher die Türe für weitere Optimierungen und Modernisierungen.
Sie möchten Ihre Anwendung zukunftssicher machen und schneller von der nachträglichen, automatisierten Softwaredokumentation profitieren? Lassen Sie uns Ihr Vorhaben gemeinsam besprechen, um die bestmögliche Lösung zu finden.