Wissen Sie, wie sich Änderungen in der Software auswirken?
Was ist Dependency Analysis?
Große Software-Systeme sind meist Jahrzehnte im Einsatz. Untersuchungen zeigen, dass 75-95% der Gesamtkosten auf die Wartung und Weiterentwicklung entfallen. Die österreichische Sozialversicherung ist verantwortlich für zahlreiche große Software-Systeme. Bei den Systemverantwortlichen laufen alle Anträge zu Änderungen an den Software-Systemen zusammen. Bereits vor der Umsetzung eines Änderungsantrags sollen mögliche Auswirkungen auf das Software-System erkannt werden.
Überblick
Die Oberösterreichische Gebietskrankenkasse (OÖ GKK) ist für die Wartung eines der größten Software-Systeme in der Sozialversicherung verantwortlich. Es wurden ein Verfahren und ein Prototyp entwickelt, um mögliche Auswirkungen von Änderungen besser abschätzen zu können. Mittelfristig sollen dadurch Kosten durch Fehlervermeidung eingespart werden. Meist ist es Aufgabe der Tester, die durch Änderungen an der Software entstandenen Fehler zu finden. Viele dieser Fehler könnten jedoch vermieden werden, wenn eine Auswirkungsanalyse vor der Umsetzung einer Änderung systematisch durchgeführt würde.

Herausforderung
Der Forschungsbereich der Dependency Analysis beschäftigt sich mit der Identifikation von Komponenten und Abhängigkeiten in Software-Systemen. Eine manuelle Wartung der Abhängigkeiten ist bei umfangreichen Software-Anwendungen aufgrund der Komplexität der Software nicht mehr möglich, darum entwickelten Forscher Ansätze, die Komponenten und Abhängigkeiten vollautomatisch identifizieren. Die OÖ GKK hat das Potenzial der Auswirkungsanalyse bereits früh erkannt und gemeinsam mit dem SCCH ein Verfahren entwickelt, um die Auswirkunganalyse systematisch und effizient durchführen zu können. Wichtig für die OÖ GKK war, durch ein vollautomatisches Verfahren die für die Auswirkungsanalyse notwendigen Daten aus bestehenden Datenquellen zu extrahieren. Als zentrale Datenquelle dient das Versionierungssystem. Hier sind alle wichtigen Artefakte (Komponenten, Datenbankscripts, Dokumente, usw.) registriert, die im Zuge eines Release ausgeliefert werden. Aus der Historie der registrierten Einträge werden mit speziellen Algorithmen Änderungsmuster identifiziert. Diese „logischen Abhängigkeiten" werden zusätzlich noch mit Daten aus Log-Dateien angereichert. Mittels einer „Footprintanalyse" gewinnt man aus Log-Dateien die Aufrufhierarchie von Programmteilen.
Lösung
Bei diesem Ansatz werden alle Abhängigkeiten mit Metriken versehen. Mit diesen Metriken können Analytiker und Entwickler, ausgehend von einer definierten Menge von Artefakten, alle potentiell betroffenen Artefakte berechnen lassen. Es lassen sich Schwellwerte für einzelne Metriken definieren, um das berechnete Ergebnis mit dem Kontext der Änderung abzustimmen. Der Ansatz sieht vor, das Analyseergebnis nach der Umsetzung der Änderung in Bezug auf Qualität zu beurteilen. Hier wird geprüft, inwiefern der Berechnungsalgorithmus des Werkzeugs und das Ergebnis des Benutzers mit der Menge der tatsächlich geänderten Artefakte übereinstimmen.