Die Qualität von Quellcode ist ein zentraler Erfolgsfaktor moderner Softwareentwicklung. In der Praxis zeigen sich jedoch wiederkehrende Probleme wie unzureichende Testabdeckung, ungeeignete Benennungen von Programmelementen, fehlende oder fehlerhafte Kommentare sowie redundante Codefragmente. Bestehende statische Analysewerkzeuge stoßen hier häufig an ihre Grenzen. Gleichzeitig bieten Deep-Learning-Verfahren neue Möglichkeiten, semantische Zusammenhänge im Code zu erkennen und Entwicklerinnen und Entwickler direkt im Arbeitsprozess zu unterstützen.
Ziel des Forschungsprojekts DeepCode war es, Deep-Learning-basierte Verfahren zur nachhaltigen Verbesserung der Quellcodequalität zu entwickeln und ihre Übertragbarkeit von Open-Source-Code auf industriellen Softwarecode zu untersuchen. Der Fokus lag dabei auf praxisrelevanten Anwendungsfällen wie Namensvorschlägen für Methoden und Variablen, der Generierung von Test-Assertions und Kommentaren sowie der Integration der Ergebnisse in gängige Entwicklungsumgebungen.
Im Projekt wurde ein umfassender Basisdatensatz aus öffentlichen GitHub-Repositories sowie internen Repositories der msg systems ag und der Universität Passau aufgebaut. Eine eigens entwickelte Preprocessing-Toolbox bereitete Java-Quellcode einheitlich für verschiedene Modellarchitekturen auf. Darauf aufbauend wurden State-of-the-Art-Modelle wie code2vec, code2seq, ASTNN, GGNN, Transformer-basierte Modelle und CodeT5 implementiert, trainiert und evaluiert. Zur praktischen Erprobung entstanden IDE-Plugins für Visual Studio Code und IntelliJ, die Modellvorschläge direkt im Entwicklungsprozess anzeigen und Feedback der Nutzer erfassen.
Die Ergebnisse zeigen, dass Deep-Learning-Modelle einen messbaren Beitrag zur Verbesserung der Codequalität leisten können, insbesondere bei der Generierung von Methodennamen und Test-Assertions. Hervorzuheben ist das Assertion-Modell AsserT5, das international ausgezeichnet wurde. Gleichzeitig wurde deutlich, dass ein gezieltes Finetuning auf internen Daten sowie konsistentes Preprocessing entscheidend für die Übertragbarkeit auf Industriecode sind. Mit den entwickelten Prototypen und Erkenntnissen leistet DeepCode einen wichtigen Beitrag zur praxisnahen Anwendung von KI in der Softwareentwicklung.






