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