Design is all about optimization and making trade offs. Whenever you optimize one aspect, you necessarily de-optimize
another. Accordingly, you must be clear on how important the relative design criteria are. Is memory size more
important than worst case speed? Which is more important - ease of maintenance or improved throughput achieved through
the use of a complex algorithm? Are safety considerations more or less important than recurring cost (i.e. cost per
shipped system)? Once the criteria are ranked in order of criticality, design approaches that optimize the more
important criteria at the expense of the least important can be selected.
The ranking of design criteria is very important and greatly affects the outcome of the system because design
optimization is all about trade-offs between what is most and least important. Carefully rank the design criteria that
are involved in your subsystem.
|