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.