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 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.
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.