Requirements Engineering, Second Edition

Never tell people how to do things. Tell them what to do, and they will surprise you with their ingenuity.
George Smith Patton, general, 1885 1945
The solution domain is the domain in which engineers use their ingenuity to solve problems. The primary characteristic that differentiates the solution domain from the problem domain is that, invariably, requirements engineering in the solution domain starts with a given set of requirements. In the problem domain requirements engineering starts with a vague objective or wish list. The extent to which the input requirements for the solution domain are "well formed" depends on the quality of the people within the customer organization that developed them. In an ideal world, all the requirements would be clearly articulated, individual testable requirements.
As indicated in Chapter 2, the solution is very rarely arrived it in a single step (see Figure 6.1).
At each level there is modelling and analysis done first to understand the input requirements and second to provide a sound basis for deriving the requirements for the next level down. The number of levels of design is dictated by the nature of the application domain and the degree of innovation involved in the development. No matter how many levels are necessary, it is always vital to understand how many solution details - the "how" - should be introduced at each step.
At every level in the solution domain, engineers must...