Correctness. The extent to which a program satisfies its
specification and fulfills the customers needs.
Reliability. The extent to which a program can be expected to
perform its intended function without failure in a specified
environment
for a certain period of time.
Integrity. The extent to which a program and its data are
resistant
to corruption.
Usability. The effort required to learn, operate, prepare
input,
and interpret output of a program.
Flexibility. The effort required to modify an operational
program.
Maintainability. The effort required to locate and fix an error
in a program.
Reusability. The degree to which a program component can
be reused as-is in other applications.
Efficiency. The amount of computing resources (time
and
space) required by a program.
Others: Testability, Portability, Compatibility, Security, etc.
Note: Some of these factors are mutually exclusive (can you think of
an example?). So design requires making tradeoffs. We
document our tradeoffs in our design
"rationale" document.
CPE 308 Design Quality
Assurance Checklist