Prof. Michael Pradel

Mit künstlicher Intelligenz zu zuverlässiger Software

17. September 2019, Nr. 79

ERC-Starting Grant für neuen Informatik-Professor an der Universität Stuttgart
[Bild: Katrin Binner]

Programmierfehler in Software können teuer werden und im Extremfall Menschenleben kosten. Bisher wurden sie durch Prüfprogramme aufgespürt, doch die Methode hat Lücken. Prof. Michael Pradel, seit dem 1. September 2019 Professor für Programmiersprachen am Institut für Softwaretechnologie der Universität Stuttgart, setzt bei der Fehlersuche auf Künstliche Intelligenz. Für sein revolutionäres Verfahren hat er vor wenigen Tagen einen der begehrten, mit 1,5 Millionen Euro dotierten ERC-Starting-Grants des Europäischen Forschungsrats erhalten.

Die Folgen von Software-Fehlern hat jeder schon am eigenen Leib gespürt: Abstürzende Apps, langsame Webseiten, nicht funktionierende Features… Doch diese sind nur die Spitze des Eisbergs: Programmierfehler im Online-Handel können Millionenbeträge kosten. In sicherheitskritischen Anwendungen, zum Beispiel bei autonomen Fahrzeugen oder in der Medizin, können sie unter Umständen sogar Menschenleben bedrohen. Da Software von Menschen entwickelt wird, sind Fehler nie ganz zu vermeiden. Und mit der zunehmenden Verbreitung und Komplexität von Software nimmt deren Zahl auch noch zu.

Zum Aufspüren von Softwarefehlern setzt man bisher Prüfsoftware ein, die auf dem Prinzip „Programm 1 analysiert Programm 2“ basiert. Diese Prüfprogramme sind jedoch ebenfalls von Menschen geschrieben und spüren nur bekannte Fehler auf. Um auch zukünftige Fehler prognostizieren und verhindern zu können, setzt Michael Pradel in seinem Software-Lab auf künstliche Intelligenz. „Die Kernidee ist, aus den vielen bereits existierenden Softwarefehlern zu lernen, wie neue Fehler automatisch gefunden werden können“, erklärt Pradel. „Hierzu entwickeln wir maschinelle Lernmodelle, die vorhersagen, ob ein Stück Programmcode korrekt oder fehlerhaft ist.“

Deep learning

Um dieses Ziel zu erreichen, wollen Pradel und sein Team im Rahmen des ERC-Projekts neue Methoden entwickeln, mit denen ein Computer ein Programm und die dahinterliegende Idee “verstehen” kann. Hierbei kommt das sogenannte “tiefe Lernen” (Deep Learning) zum Einsatz, welches die Wissenschaftlerinnen und Wissenschaftler in bisher unerforschter Art auf Programme anwenden und weiterentwickeln. Ein wichtiger Hinweis auf Fehler sind dabei natürliche Namen im Quellcode. Künstliche Intelligenz betrachtet eine sehr große Zahl an Codezeilen und lernt, wie die Namen üblicherweise verwendet werden. Stößt sie dann zum Beispiel auf die versehentliche Verknüpfung der Variablen “Länge” und “Farbe”, dann liegt vermutlich ein Fehler vor.

Softwareentwicklung soll produktiver werden

„Das revolutionäre an diesem neuen Verfahren besteht darin, dass jeder Entwickler seine eigenen Werkzeuge zum Finden von Fehlern lernen kann. Bisher konnten solche Werkzeuge nur von einigen wenigen Spezialisten erstellt werden“, erklärt Pradel. Mit ersten Prototypen konnten die Forscherinnen und Forscher bereits sehr ermutigende Erfolge erzielen und eine Vielzahl bisher nicht erkannter beziehungsweise nicht bekannter Fehler detektieren – und das bei Software, die teilweise schon sehr lange im Einsatz ist. Zudem hat Michael Pradel seine Ideen bei einem 6-monatigen Forschungsaufenthalt bei Facebook in der Praxis getestet.

Diese Tests waren schon deshalb spannend, weil die Zahl der Softwareabstürze beim Social Media-Giganten in Menlo Park alleine aufgrund der Masse an Apps in Größenordnungen liegt, über die sich das Unternehmen lieber ausschweigt. Es gibt dort aber auch gut dokumentierte Daten, wie diese Fehler in der Vergangenheit behoben wurden. „Auf dieser Basis konnte ich eine künstliche Intelligenz entwickeln, mit der sich künftige Fehler besser prognostizieren lassen.“ Auch sonst sei der Aufenthalt in der Firmenzentrale mit ihren 25.000 Mitarbeiterinnen und Mitarbeitern eine „super interessante Erfahrung“ gewesen, sagt Pradel. Die Kultur dort sei sehr auf Austausch angelegt und: „Ich konnte Softwareentwicklung unter Realbedingungen kennenlernen und mich in die Sicht der Anwender hineinversetzen.“

Fan der amerikanischen Lehrphilosophie

Von beidem sollen auch Pradels Studierende profitieren. Er sei Fan der amerikanischen Lehrphilosophie, die auf die Verknüpfung von Vorlesung und Anwendung ausgerichtet ist, bekennt der Professor. „Programmanalyse und maschinelles Lernen sind derzeit heiße Themen, da ist Realitätsnähe umso mehr gefragt.“

Dass künstliche Intelligenz schon bald Programmierer ersetzen wird, glaubt Pradel nicht. „Es geht uns vielmehr darum, die eher eintönige Fehlersuche durch automatische Werkzeuge zu unterstützen und den Programmierern mehr Zeit für interessantere Aufgaben wie etwa das Erstellen neuer Funktionalitäten zu verschaffen“, sagt Pradel. Letztendlich soll die Softwareentwicklung produktiver werden – auch, weil es für Unternehmen immer schwieriger wird, auf einem leergefegten Arbeitsmarkt qualifizierte Programmierer zu finden.

Zur Person:

Michael Pradel, geboren 1983 in Jena, studierte Informatik und Ingenieurwesen in Dresden, Paris und Lausanne. Er promovierte 2012 an der ETH Zürich auf dem Gebiet von Programmanalysen zur automatischen und präzisen Fehlererkennung. Nach einem Forschungsaufenthalt an der University of California, Berkeley/USA, wirkte er seit 2014 an der TU Darmstadt, zuletzt als Assistenzprofessor. Im Rahmen eines Industrieaufenthalts lernte er von Februar bis Juli 2019 die Anwenderpraxis beim Branchenriesen Facebook kennen.

Seit 1. September 2019 bekleidet er den Lehrstuhl für Programmiersprachen am Institut für Softwaretechnologie der Universität Stuttgart. Er folgt Prof. Erhard Plödereder, der zum 30. September 2019 in den Ruhestand geht. Michael Pradel ist verheiratet und hat zwei Kinder. In seiner Freizeit läuft er Marathon, liest ein schönes Buch oder bereist die Welt.

Fachlicher Kontakt:

Prof. Michael Pradel, Universität Stuttgart, Institut für Softwaretechnologie, Tel.: +49 (0)711/685 88320, E-Mail

Medienkontakt

 

Hochschul­kommunikation

Keplerstraße 7, 70174 Stuttgart

Zum Seitenanfang