中文

SOEN-101: 通过模拟软件过程模型使用大语言模型智能体进行代码生成

软件工程 2024-11-01 v2 人工智能

摘要

软件过程模型对于促进软件团队之间的协作和沟通以解决复杂开发任务至关重要。受这些软件工程实践的启发,我们提出了FlowGen——一个基于多个大语言模型智能体模拟软件过程模型的代码生成框架。我们通过分配LLM智能体扮演角色(即需求工程师、架构师、开发人员、测试人员和Scrum Master),对应日常开发活动并组织其通信模式,模拟了三种过程模型:FlowGenWaterfall、FlowGenTDD和FlowGenScrum。智能体使用思维链和提示组合,通过持续自我精炼协作提高代码质量。我们使用GPT3.5作为底层LLM,并采用多个基线(RawGPT、CodeT、Reflexion)在四个基准测试(HumanEval、HumanEval-ET、MBPP和MBPP-ET)上评估代码生成。我们的发现表明,FlowGenScrum相比其他过程模型表现优异,在HumanEval、HumanEval-ET、MBPP和MBPP-ET上分别达到75.2、65.5、82.5和56.7的Pass@1(平均比RawGPT提高15%)。与其他最先进技术相比,FlowGenScrum在MBPP上比CodeT获得更高的Pass@1,两者均优于Reflexion。值得注意的是,将CodeT集成到FlowGenScrum中带来了统计显著的改进,获得了最高的Pass@1分数。我们的分析还揭示了开发活动对代码气味和异常处理的不同影响,设计和代码审查增加了异常处理并减少了代码气味。最后,FlowGen模型在GPT3.5版本和温度值上保持稳定的Pass@1分数,突显了软件过程模型在提高LLM生成代码质量和稳定性方面的有效性。

关键词

引用

@article{arxiv.2403.15852,
  title  = {SOEN-101: Code Generation by Emulating Software Process Models Using Large Language Model Agents},
  author = {Feng Lin and Dong Jae Kim and Tse-Husn and Chen},
  journal= {arXiv preprint arXiv:2403.15852},
  year   = {2024}
}

备注

ICSE 2025