Software systems are built to satisfy some kind of need to a group of consumers (final users or customer). Understanding those needs is one of most challenging problems in software engineering due to the fact that it is quite common that consumer needs are nebulous (especially in the early stages of the project). Moreover, it is also common that these needs can be deeply changed throughout the project lifetime. Fred Brooks, a well-known software engineer, and computer scientist, defines this problem in his seminal book The Mythical Man-Month (1975):
The importance of requirements
The hardest single part of building a software system is deciding precisely what to build. No other part of the conceptual work is as difficult as establishing the ...
Get Mastering Software Testing with JUnit 5 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.