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.
翻译:大型语言模型的最新发展使得自动构建小型程序成为可能。这因此有望将软件工程师从低层编码中解放出来,使我们能够专注于软件开发中或许更有趣的部分,如需求工程和系统测试。在本项目中,我们开发了一个名为AISD(AI辅助软件开发)的原型系统,它能够将高层级(可能较为模糊)的用户需求作为输入,生成详细的用例、原型系统设计,并随后实现系统。与现有尝试不同,AISD的设计保持用户参与其中,即通过反复获取用户对用例、高层级系统设计以及通过系统测试对原型实现的反馈。我们用一个由非平凡软件项目组成的新基准对AISD进行了评估。实验结果表明,或许可以设想这样一个未来:软件工程仅简化为需求工程和系统测试。