Requirements engineering culminates in a requirements specification, a detailed description of the
external behavior of a system. The first step of design synthesizes an optimal software architecture. There is no reason why the transition from requirements to design should be any easier in software engineering than in any other engineering discipline. Design is hard. Converting from an external view to an
internal optimal design is fundamentally a difficult problem.
Some methods claim transition is easy by suggesting that we use the "architecture" of the requirements specification as
the architecture. Since design is difficult here are three possibilities:
- No thought went into selecting an optimal design during requirements analysis. In this case, you cannot afford to accept the requirements specification implied design as the design.
- Alternative designs were enumerated and analyzed and the best was selected, all during requirements analysis. Organizations cannot afford the effort to do a thorough design (typically 30 to 40 percent of total development costs) prior to baselining requirements, making a make/buy decision, and making a development cost estimate.
- The method assumes that some architecture is optimal for all applications. This is clearly not possible.