Design, in contrast to analysis, involves much less
discussion with the customer about the detailed meaning of the system.
Design is about deciding on structures which can be justified as being
necessary in terms of efficiency, flexibility, re-use, and other
factors, that is, in design, there is a significant choice in the
structures we produce. The second stage in the life-cycle of a
software development project - intended to determine precisely how the
functions required of a computer system can be achieved. A number of
design solutions may be examined prior to design decisions being made
about the structure and implementation details. Design, in contrast to
analysis, involves much less discussion with the customer about the
detailed meaning of the system. Design is about deciding on structures
which can be justified as being necessary in terms of efficiency,
flexibility, reuse, and other factors; that is, in design, there is a
significant choice in the structures we produce.