9.3 Software Design
Once the requirements have been detailed and accepted, the
design will be established through a process of allocating and arranging the
functions of the system so that the aggregate meets all customer needs. Since
several different designs may meet the requirements, alternatives must be
assessed based on technical risks, costs, schedule, and other considerations.
A design developed before there is a clear and
concise analysis of the systemís objectives can result in a product that does
not satisfy the requirements of its customers and users. In addition, an
inferior design can make it very difficult for those who must later code,
test, or maintain the software. During the course of a software development
effort, analysts may offer and explore many possible design alternatives
before choosing the best design.
Frequently, the design of a
software system is developed as a gradual progression from a high-level or
logical system design to a very specific modular or physical design. Many
development teams, however, choose to distinguish separate design stages with
specific deliverables and reviews upon completion of each stage. Two common
review stages are the preliminary design and the detailed design.