What is it about?

What if end users could own the whole software development life cycle from conception through deployment using only natural requirements, that is, a mix of natural language, pictures (such as sketches of user interfaces), audio, or even a video demonstration? In his 1998 Turing Lecture, Jim Gray described automatic programming as a Turing-style imitation game for a programming staff: replace a software development team with a computer that is "better and requires no more time than dealing with a typical human staff''. The hypothesis of our paper is that Gray's challenge can soon be achieved by building on generative AI. In the paper, we explore the limits and possibilities of end users not only expressing requirements but using them to direct software testing and adaption to deployment changes. We discuss the recent technical breakthroughs that have paved the way and the future work needed to realise this vision in a research agenda encompassing requirements elicitation, testing, and maintenance and deployment.

Featured Image

Why is it important?

By definition, automatic programming solves the problems of end user programmers since they can simply work with the automatic programmer to build apps to meet their needs. Automatic programming will lead to dramatic increases in productivity for end users in many professions.

Perspectives

I remember reading Jim Gray's challenge of automatic programming in the early 2000s. It seemed impossible, and yet today it feels within reach. Still, although generative AI is the transformative technology, it's exciting that techniques from programming languages, software engineering, and HCI will be essential to build usable and trustworthy AI-powered tools to empower human users.

Andy Gordon
Cogna

This research agenda for building software from natural requirements was exciting to work on because of the potential it highlights for users to express the full complexity of their domain knowledge and understanding, allowing for exciting new possibilities and voices in software development.

Diana Robinson
University of Cambridge

Read the Original

This page is a summary of: Requirements are All You Need: The Final Frontier for End-User Software Engineering, ACM Transactions on Software Engineering and Methodology, December 2024, ACM (Association for Computing Machinery),
DOI: 10.1145/3708524.
You can read the full text:

Read

Resources

Contributors

The following have contributed to this page