In software development, the raw requirements proposed by users are frequently incomplete, which impedes the complete implementation of application functionalities. With the emergence of large language models, recent methods with the top-down waterfall model employ a questioning approach for requirement completion, attempting to explore further user requirements. However, users, constrained by their domain knowledge, lack effective acceptance criteria, which fail to capture the implicit needs of the user. Moreover, the cumulative errors of the waterfall model can lead to discrepancies between the generated code and user requirements. The Agile methodologies reduce cumulative errors through lightweight iteration and collaboration with users, but the challenge lies in ensuring semantic consistency between user requirements and the code generated. We propose AgileGen, an agile-based generative software development through human-AI teamwork. AgileGen attempts for the first time to use testable requirements by Gherkin for semantic consistency between requirements and code. Additionally, we innovate in human-AI teamwork, allowing users to participate in decision-making processes they do well and enhancing the completeness of application functionality. Finally, to improve the reliability of user scenarios, a memory pool mechanism is used to collect user decision-making scenarios and recommend them to new users. AgileGen, as a user-friendly interactive system, significantly outperformed existing best methods by 16.4% and garnered higher user satisfaction.
翻译:在软件开发过程中,用户提出的原始需求往往不完整,这阻碍了应用程序功能的完整实现。随着大语言模型的出现,近期采用自上而下瀑布模型的方法通过提问方式完成需求补全,试图进一步探索用户需求。然而,用户受限于领域知识,缺乏有效的验收标准,难以捕捉其隐含需求。此外,瀑布模型的累积误差可能导致生成的代码与用户需求之间存在偏差。敏捷方法通过轻量级迭代和与用户协作来减少累积误差,但挑战在于如何确保用户需求与生成代码之间的语义一致性。我们提出了AgileGen,一种基于人机协同的敏捷生成式软件开发方法。AgileGen首次尝试使用Gherkin可测试需求来确保需求与代码间的语义一致性。此外,我们在人机协同方面进行了创新,允许用户参与其擅长的决策过程,从而提升应用程序功能的完整性。最后,为提高用户场景的可靠性,采用记忆池机制收集用户决策场景并将其推荐给新用户。AgileGen作为一个用户友好的交互系统,其性能显著优于现有最佳方法16.4%,并获得了更高的用户满意度。