Werkzeug zum automatisierten, KI-gestützen Beheben von SonarQube-Issues
Hintergrund: Bisherige Forschung hat sich vor allem auf das automatische Beheben von Bugs konzentriert. Bei SonarQube-Regeln handelt es sich aber nicht nur um Bugs, sondern auch um Code Smells und Verwundbarkeiten.
Ziel der Arbeit: Ziel dieser Masterarbeit ist es, eine Prompt-Vorlage für das automatische Generieren von Code Refactorings zu erstellen, d.h. das automatische Beheben von SonarQube-Issues. Mittels eines zu entwickelnden (einfachen) Toolings soll der Prompt verfeinert und ausgiebig getestet und validiert werden. Fragen hierzu könnten sein: Kompiliert der automatisch refactorte Code? Konnten die SonarQube-Issues eliminiert werden? Werden neue Issues gefunden? Bestehen in Summe mehr oder weniger Issues? Wie viele manuelle Änderungen sind nötig? Auch eine manuelle Bewertung der Ergebnisse (+/-/o) ist denkbar.
Aufgaben:
- Literaturrecherche zu Prompting-Techniken, Related Work im Bereich KI-Code-Generierung, Hyperparameter-Einstellungen
- Ausarbeitung eines Prompts
- Entwicklung des Tools, das
- aus SonarQube-Issues und relevantem Source Code den Prompt zusammensetzt,
- eine GenAI-Schnittstelle abfragt (z.B. OpenAI),
- den Vorschlag zur Behebung des/der Issues darstellt und
- die Bewertung sowie manuelle Korrektur dieses Vorschlags ermöglicht.
- Metriken wie eliminierte / neu hinzugekommene Issues, Kompilierbarkeit sind auch automatisiert denkbar (optional)
- Idealerweise bietet das Tooling auch statistische Daten zu den generierten Refactoring-Vorschlägen.
Erwartete Ergebnisse:
- Auto-Refactoring-Werkzeug
- Ausgearbeitete Prompting-Methodik
- Umfassende quantitative und qualitative Auswertungen der Refactoring-Ergebnisse, nach obigen Kriterien
Betreuung: Reinhold Plösch