[论文解读] Experimenting a New Programming Practice with LLMs
本文提出AISD,一种AI辅助软件开发框架,将人类反馈贯穿于需求分析、系统设计和验证阶段。通过利用大语言模型(LLM)迭代优化用例、系统设计和实现,并保持用户积极参与,AISD在一项新型基准测试中实现了72.3%的任务通过率,表明人机协同的LLM开发可显著提升复杂软件任务中的可靠性与有效性。
The recent development on large language models makes automatically constructing small programs possible. It thus has the potential to free software engineers from low-level coding and allow us to focus on the perhaps more interesting parts of software development, such as requirement engineering and system testing. In this project, we develop a prototype named AISD (AI-aided Software Development), which is capable of taking high-level (potentially vague) user requirements as inputs, generates detailed use cases, prototype system designs, and subsequently system implementation. Different from existing attempts, AISD is designed to keep the user in the loop, i.e., by repeatedly taking user feedback on use cases, high-level system designs, and prototype implementations through system testing. AISD has been evaluated with a novel benchmark of non-trivial software projects. The experimental results suggest that it might be possible to imagine a future where software engineering is reduced to requirement engineering and system testing only.
研究动机与目标
- 解决完全自动化LLM驱动的软件开发框架缺乏用户参与所带来的局限性。
- 通过在需求分析和系统验证阶段整合人类反馈,提升LLM生成软件的可靠性与对齐度。
- 设计一种轻量化、用户友好的界面,用于需求与设计文档,支持人类与LLM的共同理解。
- 评估以用户输入为核心的LLM驱动开发流程在迭代优化中的有效性。
- 证明在AI与人类反馈支持下,软件工程可被简化为需求工程与系统测试。
提出的方法
- AISD以高层次、模糊的用户需求为输入,生成最小化、聚焦的用例与系统设计文档。
- 该框架利用LLM基于用户反馈,迭代优化用例与系统设计,确保与利益相关者期望保持一致。
- 系统设计被分解为原子级编码任务,由LLM自动实现。
- 通过单元测试与系统测试对原型实现进行验证,失败则触发反馈循环,用于修订需求、设计或代码。
- 创建了一项新型基准测试,包含参考用例,以客观评估任务完成度与对齐度。
- 该框架强调最小化人类参与——仅在关键决策点介入,遵循“少即是多”的理念。
实验结果
研究问题
- RQ1LLM驱动的软件开发框架是否能在最小化人类参与的前提下实现高任务通过率?
- RQ2在需求分析与系统验证阶段整合用户反馈,如何提升生成软件的质量与正确性?
- RQ3在复杂软件开发任务中,人机协同方法在多大程度上优于完全自动化的LLM框架?
- RQ4轻量化、用例驱动的设计流程在引导准确且可维护的代码生成方面有多有效?
- RQ5迭代测试与反馈循环是否能显著减少LLM驱动开发中的实现失败次数?
主要发现
- AISD在一项非平凡软件项目的新基准测试中实现了72.3%的任务通过率,展现出在复杂任务完成方面的强劲性能。
- 通过在需求与设计优化的关键阶段整合用户反馈,该框架显著优于现有端到端LLM驱动方法。
- 通过仅在关键决策点保持用户参与,AISD降低了令牌消耗,同时维持了高准确率与可靠性。
- 采用标准化、最小化用例文档,提升了人类与LLM的理解能力,减少了系统规格中的歧义。
- 迭代测试与反馈循环实现了需求与实现之间不匹配的早期检测,减少了返工并提升了对齐度。
- 结果表明,在AI与人机协同优化支持下,未来软件开发或可简化为需求工程与系统测试。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。