How would you decide whether a system design is a good one?
Some criteria....
does the design achieve the objectives?
is it possible to implement the design with the manpower and expertise
available?
is it technically feasible? Does all the hardware exist?
is the design as simple as possible so people can easily
understand how it works? Complex designs are harder to get working and harder to solve
problems which arise.
is it possible to implement it within the time-scale
proposed?
is it possible to implement the design within the budget
available?
Completed software must be...
Easy to use
Robust - it should not crash
or fail.
Flexible - it can be easily
reconfigured.
Reliable - it should not
fail due to design faults
Portable - it can be used on
different hardware systems
Easy to maintain -
modifications can be easily made.
...and the best way to ensure all of these is with a
good design.