From Executable Specifications to Hard-to-Specify Requirements: Challenges in Describing Reactive System Behavior
David Harel, Assaf Marron · IEEE Transactions on Software Engineering · 2025
System and Software Engineering is about implementing “what the user wanted” (colloquial phrasing borrowed from the famous tree-swing cartoon; seeFig. 1). We begin this paper by revisiting briefly the decades-long continuous pursuit of answers to some of the underlying engineering challenges, carried out by the first-listed author and his colleagues. Along this road, concepts like executable specifications, visual formalisms, hierarchies, abstractions, and scenarios play major roles. We then reflect upon the observation that the very discovery of “what the user wanted,” which often appears to require only elicitation in some structured requirement engineering process, actually poses significant challenges of its own. Documenting in advance the requirements for a real-world reactive system, such as an autonomous vehicle—and more generally, producing a textual and visual description of what a system does or needs to do—is becoming ever harder, and in certain cases impossible. Furthermore, producing quality specifications is critical not only for eventually satisfying the user, but for early detection of critical faults. We conclude by outlining future approaches and tools that may be able to mitigate the severity of this issue.