Design Principles:
- The design process should not suffer from “tunnel vision ”
- The design should be traceable to the analysis model
- The design should not reinvent the wheel
- The design should “minimize the intellectual distance” between the software and the problem as it exists in the real world
- The design should exhibit uniformity and integration
- The design should be structured to accommodate change
- The design should be structured to degrade gently, even when abnormal data, events, or operating conditions are encountered
- Design is not coding, coding is not design
- The design should be assessed for quality as it is being created, not after the fact
- The design should be reviewed to minimize conceptual (semantic) errors