论文
桥接行为和实现:用于行为驱动开发的自动 Java Glue 代码生成
Bridging Behavior and Implementation: Automated Java Glue Code Generation for Behavior-Driven Development
摘要
行为驱动开发 (BDD) 帮助技术和非技术利益相关者通过自然语言场景对软件需求达成共识。粘合代码通过将每个步骤映射到相应的项目代码来使这些场景可执行。然而,开发和维护粘合代码需要了解预期行为和底层代码库,随着需求的发展,它成为 BDD 的劳动密集型部分。尽管 大语言模型 (LLM) 已显示出强大的代码生成功能,但它们在自动粘合代码生成方面的用途仍未被探索。此任务需要对未指定的行为、相关 BDD 工件和大型项目代码库进行推理。我们提出了 AutoGlue,一个用于自动化 Java 粘合代码生成的分层多代理框架。 AutoGlue 遵循行为优先的工作流程,将行为解释、上下文检索和代码生成分开。行为解释器从其场景上下文中导出步骤的意图,而开发代理在生成最终粘合代码之前检索相关的 BDD 工件和项目代码。我们根据 8 个开源 Java 项目的 1,307 个步骤对 AutoGlue 进行了评估。与few-shot提示相比,AutoGlue将API F1提高了58.7%,将CodeBLEU提高了43.7%。它为 46.1% 的评估步骤生成直接可用的粘合代码,而大多数部分正确的输出只需要进行较小的修改,例如添加缺少的操作或优化参数。消融结果表明,行为解释和项目感知上下文检索都对生成质量做出了重大贡献。这些发现表明,LLM 可以有效地将自然语言行为规范与项目代码连接起来,并支持规范驱动的软件开发。