Auf die komplexe Welt von heute zugeschnittene Softwareanalyse
Die statische Programmanalyse ist eine Computertechnik, bei der alle möglichen Ergebnisse eines Softwareprogramms abgeschätzt werden. Eine typische Analyse könnte den gesamten auszuführenden Code oder alle Möglichkeiten untersuchen, wie ein Programm mit seinen Nutzenden oder dem Netzwerk kommunizieren kann. „Professionelle Programmierende nutzen die Ergebnisse der statischen Analyse zur Verbesserung ihrer Software, indem sie diese entweder effizienter gestalten oder Programmierfehler beheben“, erklärt Yannis Smaragdakis, Projektkoordinator von PARSe und Professor im Fachbereich für Informatik und Telekommunikation an der griechischen Universität Athen. „Eine Analyse kann beispielsweise einem Programmierenden mitteilen, welche Teile des Codes auf jeden Fall nie ausgeführt werden. Dieser Code kann dann entfernt werden.“
Eine komplexe Welt
Eine wesentliche Herausforderung ist die Tatsache, dass die technologische Innovation rasant voranschreitet. „Computerprogramme gehören heute zu den komplexesten Dingen, welche die Menschheit jemals geschaffen hat“, bemerkt Smaragdakis. Diese Komplexität hat in den vergangenen Jahrzehnten exponentiell zugenommen. Gleichzeitig gewinnt Software in unserem Alltag zunehmend an Bedeutung. Fortschrittliche Software ist überall zu finden, von den Apps, die wir auf unsere Smartphones herunterladen, bis hin zu statistischen Modellen, mit denen Internetunternehmen riesige Datenmengen erfassen und interpretieren. „Es gibt eine große und stetig wachsende Nachfrage nach zuverlässiger und effizienter Software“, sagt er. „Das heißt, dass Programmierende fortgeschrittenere Analysetechniken benötigen, mit denen selbst die komplexesten Programme bewertet werden können.“ Das Projekt PARSe wurde 2015 zur Befriedigung dieser Nachfrage gestartet. „Unser Ziel war es, die neuesten Forschungsergebnisse zur statischen Analyse mit fortschrittlichen Softwareentwicklungsanwendungen zu verbinden“, erklärt Smaragdakis. Dazu entwickelte das Projektteam einen Prototyp einer webbasierten Benutzeroberfläche. Diese gibt Programmierenden den Zugriff auf Analysen und ermöglicht ihnen eine einfachere Navigation durch den Code eines großen Programms. Programmierende können den Dienst der statischen Analyse verwenden, um wichtige Verständnisfragen zu stellen, beispielsweise zu Sicherheitslücken. Diese Fragen werden dann mithilfe von Algorithmen beantwortet, die während des vorherigen ERC-finanzierten Projekts SPADE entwickelt wurden. Durch die Integration dieser Algorithmen in eine webbasierte Benutzeroberfläche hat das Projekt PARSe diese Forschung einen Schritt voran gebracht.
Zugriff auf erweiterte Analyse
Smaragdakis ist zuversichtlich, dass der Prototyp professionellen Programmierenden bei der Optimierung des Codes sowie bei der Erkennung von Fehlern, selbst in der komplexesten Software, helfen kann. „Es handelt sich um eine wichtige Aufgabe in der modernen Softwareentwicklung“, stellt er fest. „Große Unternehmen investieren erhebliche Summen in die Programmanalyse und Entwicklungsunterstützung. Die jüngsten Übernahmen von Unternehmen für statische Analysen beliefen sich auf mehrere hundert Millionen Euro.“ In diesem Zusammenhang könnte die spätere Entwicklung und Vermarktung von Programmanalysewerkzeugen der nächsten Generation ein bedeutendes Projektergebnis sein. Es wurden bereits Schritte unternommen, um die Technologie für den Markt vorzubereiten. „Wir haben ein Android-Optimierungsinstrument entwickelt, um das Programm auf Telefonen und Tablets einzusetzen“, fügt Smaragdakis hinzu. „So können Programmierende den gesamten, von ihnen entwickelten Code einsehen. Aktuelle Lösungen auf dem Markt sind sehr komplex und tendenziell fehleranfällig.“ Derzeit wird die Kommerzialisierung des Prototyps in Zusammenarbeit mit dem Entrepreneurship Accelerator der Universität Athen geprüft. „Ich hoffe, dass sich der Prototyp des Projekts PARSe eines Tages zu einem weit verbreiteten Instrument entwickelt“, merkt er an. „Er wäre das Tor für die Einführung noch weiter fortgeschrittener statischer Analyseforschung in die etablierte Softwareentwicklung.“
Schlüsselbegriffe
PARSe, Code, Programmierende, Software, digital, Android, Netzwerk, Internet