Geeks With Blogs
SACHIN NARUTE Software Engineer

Checklist for Design Reviews

Reviews for software design focus on data design, architectural design, and procedural design. In general, two types of design reviews are conducted. The preliminary design review assesses the translation of requirements to design of data and architecture. The second review, often called design walkthrough, concentrates on the procedural correctness of algorithms as they are implemented within program modules. Below you can find two checklists, one for each kind of design review.

Preliminary Design Review

  1. Traceability
    • Did you ensure traceability of the design back to the systems specification and statement of requirements?
    • Is a scheme used for naming of modules, data, and interfaces?
    • Are all modules, data, and interfaces uniquely identified?
  2. Consistency
    • Is the data structure consistent with the information domain?
    • Is the data structure consistent with software requirements?
    • Is a standard design representation used?
    • Is a standard data usage representation used?
  3. Completeness
    • Are software requirements reflected in the software architecture?
    • Are all referenced data defined?
    • Are all defined data used?
    • Are all referenced modules defined?
    • Are all defined modules used?
    • Are interfaces defined for modules and external elements?
    • Has maintainability been considered?
    • Have quality factors been explicitly assessed?
  4. Efficiency
    • Are data grouped for efficient processing?
    • Are storage requirements allocated to design?
    • Is effective modularity achieved? Are modules functionally independent?

Design Walkthrough

  1. Does the algorithm accomplish the desired function?
  2. Is the algorithm logically correct?
  3. Is the interface consistent with the architectural design?
  4. Is the logical complexity reasonable?
  5. Has error handling been specified?
  6. Are local data structures properly defined?
  7. Are structured programming constructs used throughout?
  8. Is design detail amenable to implementation language?
  9. Has maintainability been considered?
  10. Are all conditions and processing defined for each decision point?
  11. Do all defined and referenced calling sequence parameters agree?
Posted on Thursday, September 22, 2005 3:45 AM | Back to top

Copyright © SACHIN NARUTE | Powered by: