  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.

Software Engineering