Checklist for High-Level Design Reviews
Checklist for High-Level Design Reviews
We want education by which character is formed, strength of mind is increased, the intellect is expanded, and by which one can stand on one's own feet.
~Swami Vivekananda
Structure
- Are data structures clearly partitioned?
- Has the design been decomposed to the point at which the next phase of design can begin?
- Has each component been completely and testably specified?
- Is the modular decomposition consistent with local standards for modular strength and coupling?
Data
- Are global constants and passed data parameterized?
- Has all the data been properly defined?
- Are data structures and element names meaningful? Do they adhere to existing naming conventions?
Correctness and Completeness
- Is the high-level design complete, i.e., does it implement all of the requirements?
- Has all of the infrastructure been specified (backup, recovery, checkpoints, etc.)?
- Are the error messages unique and meaningful?
- Have all reliability and performance requirements been designed?
- Have internationalization issues been properly and adequately addressed?
- Have file maintenance procedures been addressed?
- Have processing priorities been addressed?
- Are there credible analyses to determine that required throughput, response times, and accuracies will be achievable by this design?
- Is there a memory budget to allocate estimated storage requirements for each module, table, and file?
- Have all security considerations been designed?
- Does the high-level design consider all existing constraints?
- Does the high-level design contain unnecessary redundancy that is already implemented in another system component?
- Does the high-level design provide an adequate base for the detail design?
- Have maintainability issues been addressed?
- Is the high-level design complete, correct, and unambiguous?
- Is the high-level design feasible?
- Is the high-level design verifiable?
Standards and Traceability
- Have all design standards been followed?
- Does the human interface follow project standards?
- Can all parts of the high-level design be traced back to requirements?
Interfaces
- Are all interfaces clear and well-defined?
- Is minimum data passed at each interface?
- Is minimum global system data added or impacted by the design?
Robustness
- Have self-test, fail-safe, and degraded mode requirements been accounted for?
- Has an error handling mechanism been identified?
- Are unusual situations handled reasonably and nondestructively?
Copyright © 1999 by Karl E. Wiegers. Permission is granted to use, modify, and distribute this document.