- Design should be traceable to the requirements model.
- Always consider the architecture of the system to be built.
- Design of data is as important as design of processing functions.
- Interfaces (both internal and external) must be designed with care.
- User interface design should be tuned to the needs of the end-user. Stress ease of use
- Component-level design should be functionally independent.
- Components should be loosely coupled to each other than the environment.
- Design representations (models) should be easily understandable.
- The design should be developed iteratively.
- Creation of a design model does not preclude using an agile approach.