n the design must implement all of the explicit requirements contained in the analysis model, and it must accommodate all of the implicit requirements desired by the customer.
n the design must be a readable, understandable guide for those who generate code and for those who test and subsequently support the software.
n the design should provide a complete picture of the software, addressing the data, functional, and behavioral domains from an implementation perspective.