SOEN-101: Codegenerierung durch Nachahmung von Softwareentwicklungsprozessmodellen mittels LLM-Agenten

Software-Entwicklungsmodelle sind entscheidend, um die Zusammenarbeit und Kommunikation innerhalb von Software-Teams zu fördern und komplexe Entwicklungsaufgaben effektiv zu bewältigen. Inspiriert durch etablierte Praktiken der Softwaretechnik stellen wir FlowGen vor – einen Framework zur Codegenerierung, der Software-Entwicklungsmodelle durch mehrere Large Language Model (LLM)-Agenten nachahmt. Wir emulieren drei verschiedene Prozessmodelle: FlowGenWaterfall, FlowGenTDD und FlowGenScrum, indem wir LLM-Agenten bestimmten Rollen zuweisen (z. B. Anforderungsingenieur, Architekt, Entwickler, Tester und Scrum Master), die jeweils typischen Entwicklungsaktivitäten entsprechen, und deren Kommunikationsmuster strukturieren. Die Agenten arbeiten kooperativ unter Verwendung von Chain-of-Thought-Techniken und Prompt-Komposition mit kontinuierlicher Selbstverbesserung, um die Qualität des generierten Codes zu steigern. Als zugrundeliegendes LLM nutzen wir GPT3.5 und vergleichen FlowGen mit mehreren Baselines (RawGPT, CodeT, Reflexion) anhand vier Benchmarks: HumanEval, HumanEval-ET, MBPP und MBPP-ET. Unsere Ergebnisse zeigen, dass FlowGenScrum im Vergleich zu den anderen Prozessmodellen besonders hervorsticht, mit Pass@1-Werten von 75,2, 65,5, 82,5 und 56,7 in den jeweiligen Benchmarks (durchschnittlich 15 % Verbesserung gegenüber RawGPT). Im Vergleich zu anderen state-of-the-art-Techniken erreicht FlowGenScrum eine höhere Pass@1 in MBPP als CodeT, wobei beide Methoden Reflexion übertrifft. Insbesondere die Integration von CodeT in FlowGenScrum führt zu statistisch signifikanten Verbesserungen und erzielt die höchsten Pass@1-Werte. Eine detaillierte Analyse offenbart zudem, dass unterschiedliche Entwicklungsaktivitäten die Code-Smells und die Ausnahmehandhabung unterschiedlich beeinflussen: Design- und Code-Reviews tragen stärker zur Verbesserung der Ausnahmehandhabung bei und reduzieren gleichzeitig Code-Smells. Schließlich zeigen die FlowGen-Modelle stabile Pass@1-Werte über verschiedene Versionen von GPT3.5 und Temperaturwerte hinweg, was die Wirksamkeit von Software-Entwicklungsmodellen bei der Verbesserung der Qualität und Stabilität von LLM-generiertem Code unterstreicht.