1.1 Projektbeschreibung und Ziel
„Firmen, die proaktiv die Alterung von Software verhindern, können den Anteil der Wartungskosten an den Gesamt-IT-Kosten auf weniger als 30% senken. Organisationen, die keinerlei Maßnahmen zur Erhaltung von Softwaresystemen einsetzen, müssen hingegen mit mehr als 60% Anteil der Wartungskosten an ihren Gesamt-IT-Kosten rechnen.” – Capers Jones[1]
Nahezu alle Branchen sind heute von IT-Systemen abhängig. Die rasanten Fortschritte in Software-Entwicklung und -Technologie erfordern immer anspruchsvollere und komplexere Entwicklungsprozesse, um im Markt Schritt zu halten. Softwaresysteme werden dabei stetig umfangreicher. Das Design und der Entwurf solcher Systeme ist seit vielen Jahren integraler Bestandteil jedes Softwareentwicklungsprojekts. Dabei koexistieren viele Metaphern und Strategien, um große Softwaresysteme zu gliedern, die Komponenten zu kombinieren und eine Interaktion zwischen diesen zu ermöglichen.
Ziel dieses F&E Projekts ist die Entwicklung eines innovativen Systems, welches anhand von künstlicher Intelligenz und immersiver Analyse die Bewertung und Optimierung von Softwaresystemen automatisiert, beschleunigt und verbessert. Dabei stehen insbesondere dynamische Aspekte, wie das Laufzeitverhalten von Software, im Vordergrund. Es sind zwar zahlreiche Werkzeuge am Markt verfügbar, die eine statische Analyse der Codequalität ermöglichen, es fehlt aber an Methoden für die dynamische Analyse jenseits der Ermittlung der Software-Performanz. Beispielsweise fehlt eine Betrachtung der genutzten Open Source Bestandteile und der damit verbundenen Lizenzen zur Bewertung der Compliance. Eine solche Analyse würde es aber ermöglichen, bestehende Softwaresysteme zeitnah zu evaluieren, neuralgische Punkte frühzeitiger zu identifizieren und rechtliche Risiken zu bewerten. Hierfür sollen Analyse- und Visualisierungswerkzeuge geschaffen werden, die auch Nicht-Experten einen Zugang zur Softwarearchitektur, zu Laufzeitverhalten und zu Lizenzen der Komponenten verschaffen. Dieser Zugang wird durch Visualisierung von Software und Darstellung in interaktiven Umgebungen (bspw. Displaywänden oder Head-mounted Displays) ermöglicht. Weiterhin wird im Projekt evaluiert, wie künstliche Intelligenz (KI) oder Regelsysteme die Analyse Softwaresysteme verbessern können. Vision ist ein Produkt, das automatisiert Software-Reviews erstellt, die Erkenntnisse mit Visualisierungen sichtbar macht und somit Optimierungsentscheidungen erleichtert.