SOEN-101 : Génération de code par émulation de modèles de processus logiciel à l’aide d’agents basés sur des modèles linguistiques massifs

Les modèles de processus logiciel sont essentiels pour faciliter la collaboration et la communication au sein des équipes de développement logiciel afin de résoudre des tâches complexes. Inspirés par ces pratiques du génie logiciel, nous présentons FlowGen, un cadre de génération de code qui émule des modèles de processus logiciel à l’aide de plusieurs agents basés sur des grands modèles linguistiques (LLM). Nous avons reproduit trois modèles de processus : FlowGenWaterfall, FlowGenTDD et FlowGenScrum, en attribuant aux agents LLM des rôles spécifiques (ingénieur des besoins, architecte, développeur, testeur et chef de projet Scrum) correspondant aux activités courantes du développement logiciel, tout en structurant leurs schémas de communication. Ces agents collaborent de manière synergique en utilisant une chaîne de raisonnement (chain-of-thought) et une composition de prompts, accompagnées d’un auto-amélioration continue, afin d’optimiser la qualité du code généré. Nous avons utilisé GPT3.5 comme modèle LLM de base, et comparé nos résultats avec plusieurs méthodes de référence (RawGPT, CodeT, Reflexion) sur quatre benchmarks : HumanEval, HumanEval-ET, MBPP et MBPP-ET. Nos résultats montrent que FlowGenScrum surpasse les autres modèles de processus, atteignant des taux Pass@1 de 75,2, 65,5, 82,5 et 56,7 respectivement sur HumanEval, HumanEval-ET, MBPP et MBPP-ET (une amélioration moyenne de 15 % par rapport à RawGPT). En comparaison avec d’autres techniques de pointe, FlowGenScrum obtient un meilleur score Pass@1 sur MBPP que CodeT, tandis que les deux surpassent Reflexion. Notamment, l’intégration de CodeT dans FlowGenScrum a conduit à des améliorations statistiquement significatives, permettant d’atteindre les meilleurs scores Pass@1. Notre analyse révèle également que les activités de développement influencent différemment les odeurs de code (code smell) et la gestion des exceptions : la conception et la revue de code ajoutent davantage de gestion des exceptions tout en réduisant les odeurs de code. Enfin, les modèles FlowGen maintiennent des scores Pass@1 stables sur différentes versions de GPT3.5 et pour diverses valeurs de température, ce qui souligne l’efficacité des modèles de processus logiciel pour améliorer à la fois la qualité et la stabilité du code généré par les LLM.