In den letzten Jahren sind neuartige KI-gestützte Programmierassistenten, die auf großen Sprachmodellen (LLMs) basieren, beim Erstellen von Code äußerst populär geworden. Allerdings entfällt mindestens 50 % des Aufwands in der Softwareentwicklung auf das Verstehen und Warten bestehender Software – Aufgaben, die für LLMs nach wie vor große Herausforderungen darstellen. Dies liegt daran, dass die meisten Wartungsaufgaben mit dem dynamischen Verhalten von Programmen zusammenhängen, welches durch das Lernen ausschließlich aus statischem Code unzureichend erfasst wird. Das Verstehen, wie die einzelnen Komponenten eines großen Programms zusammenarbeiten, kann menschlichen Experten Monate bis Jahre in Anspruch nehmen.
Im Rahmen unseres ERC Advanced Grants „S3 – Semantics of Software Systems“ haben wir innovative Techniken entwickelt, um Softwaresysteme systematisch zu testen und ihr Verhalten umfassend zu erforschen. Dadurch können wir die dynamischen Eigenschaften von Eingaben, Ausgaben und Ausführungen erfassen und programmspezifische maschinelle Lernmodelle trainieren, die diese zueinander in Beziehung setzen. Das resultierende Modell kann dann Wartungsfragen beantworten wie „Welche Konfigurationseingabe benötige ich, damit dieser Button grün wird?“ oder „Welche Eingabe löst diese Fehlermeldung aus?“
Unsere zugrunde liegende Forschung hat bereits die prinzipielle Machbarkeit dieses Ansatzes gezeigt, war jedoch auf kleine Beispiele beschränkt. Die Frage ist, ob diese Ansätze auf die Vielzahl von Merkmalen skalieren, die bei der Ausführung eines komplexen Programms auftreten. Ziel dieses Proof-of-Concept-Antrags ist es daher, einen Demonstrator eines Programmspezifischen Agenten zu erstellen, der automatisch aus einem nicht-trivialen Softwarestück trainiert wird und mit hoher Genauigkeit wartungsbezogene Fragen beantworten kann.
Das Training eines solchen Agenten für auch nur ein einziges Softwarestück wird erhebliche Ressourcen erfordern, weshalb dieser Förderantrag gestellt wird. Ein derart trainierter Agent wird jedoch solange als Experte für das Verhalten der Software agieren, wie diese existiert, und verspricht damit erhebliche Kosteneinsparungen für die Zukunft der Softwareentwicklung.
Funded by the European Union. Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union or [name of the granting authority]. Neither the European Union nor the granting authority can be held responsible for them.