Empowering Agile-Based Generative Software Development through Human-AI Teamwork
<|reference_start|>Empowering Agile-Based Generative Software Development through Human-AI Teamwork: 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.<|reference_end|>
@article{zhang2024empowering,
    title={Empowering Agile-Based Generative Software Development through Human-AI
  Teamwork},
    author={Sai Zhang, Zhenchang Xing, Ronghui Guo, Fangzhou Xu, Lei Chen,
  Zhaoyuan Zhang, Xiaowang Zhang, Zhiyong Feng, Zhiqiang Zhuang},
    journal={arXiv preprint arXiv:2407.15568},
    year={2024},
    archivePrefix={arXiv},
    eprint={2407.15568},
    primaryClass={cs.SE cs.HC}
}