Design Quality Factors


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 205 Design Quality Assurance Checklist