SDeCopilot: Unterstützung von Entwicklern bei der Erstellung korrekter Software mit Debugging-Agenten
Auf einen Blick
Softwaretechnik und Programmiersprachen
DFG Walter Benjamin Programm

Projektbeschreibung
Softwareentwicklerinnen und -entwickler verlassen sich zunehmend auf auf Künstlicher Intelligenz (KI) basierende Programmierassistenten, um alltägliche Programmieraufgaben zu erledigen. Obwohl dies eine deutliche Steigerung der Produktivität verspricht, deuten aktuelle Studien darauf hin, dass der Einsatz von KI-Programmierassistenten auch zu einer erheblich höheren Anzahl von Softwarefehlern im Code führen kann. Infolgedessen sind Softwareentwickler häufig damit beschäftigt, KI-generierte Fehler zu beheben, was die Aufgabe, korrekte und zuverlässige Software zu entwickeln, noch schwieriger macht als zuvor. Diese Beobachtung wirft die Frage auf, ob KI tatsächlich dazu genutzt werden kann, Softwareentwickler bei der Erstellung korrekter und zuverlässiger Softwaresysteme zu unterstützen.
Wir sehen Potenzial zur Beantwortung dieser Frage an der Schnittstelle von KI und traditionellen Methoden des Software Engineering (SE). Jüngste Erkenntnisse zeigen, dass KI-Systeme überprüfbare Aussagen über Code generieren können, etwa potenzielle Kandidaten für Testspezifikationen, Schleifeninvarianten oder funktionale Verträge. Auch wenn diese Aussagen nicht zwangsläufig korrekt sind, können sie dennoch als wertvoller Ausgangspunkt dienen, um Inkonsistenzen oder unerwartetes Verhalten aufzudecken. Traditionelle SE-Methoden wie Fuzzing, Testen, formale Verifikation oder statische Analyse sind besser geeignet, verlässliche Einblicke in das Programmverhalten zu liefern. Um fehlerhaftes Verhalten zu identifizieren, benötigen diese Methoden jedoch häufig eine Form von Korrektheitsspezifikation, die in der Regel von Softwareentwicklern bereitgestellt wird. Diese Abhängigkeit von menschlich erstellten Spezifikationen stellt einen Engpass dar, den KI potenziell verringern kann, indem sie plausible Kandidaten für Spezifikationen vorschlägt. Diese Kandidaten können anschließend von traditionellen SE-Methoden genutzt werden, um potenzielle Inkonsistenzen oder Softwarefehler zu identifizieren.
In diesem Walter-Benjamin-Projekt wollen wir systematisch untersuchen, wie die Fähigkeiten moderner KI-Systeme effektiv mit traditionellen SE-Methoden zur automatischen Fehlersuche und Programmkorrektur kombiniert werden können. Letztlich streben wir die Entwicklung eines neuartigen Software-Debugging-Copiloten (SDECOPILOT) an – eines KI-basierten Debugging-Systems, das bestehende SE-Methoden nutzt, um autonom (1) gegebene Code-Repositories zu analysieren sowie potenzielle Probleme (z. B. Inkonsistenzen mit vorhandenem Code oder der Dokumentation) zu erkennen und zu melden und (2) Lösungsvorschläge für die erkannten Probleme zu unterbreiten. Im folgenden Abschnitt fassen wir den Stand der Forschung und dessen Grenzen im Bereich der KI-gestützten Softwareentwicklung, der automatisierten Fehlersuche und der automatischen Programmkorrigatur zusammen.