Table C57 C++ PSP2 Design Review Checklist PROGRAM NAME AND #: Purpose: To guide you in conducting an effective design review General: As you complete each review step, check that item in the box to the right. Complete the checklist for one program unit before you start to review the next. __Complete: Ensure that the requirements, specifications, and high-level design are completely covered by the design: __ - all specified outputs are produced __ - all needed inputs are furnished __ - all required includes are stated __Logic: Verify that program sequencing is proper: __ - that stacks, lists, etc. are in the proper order __ - that recursion unwinds properly __ Verify that all loops are properly initiated, incremented, and terminated __ Special Cases: Check all special cases: __ - empty, full, minimum, maximum, negative, zero __ - out of limits, overflow, underflow __ - ensure "impossible" conditions are absolutely impossible __ - handle all incorrect input conditions __Functional use: __ Verify that all functions, procedures, or objects are fully understood and properly used __ Verify that all externally referenced abstractions are precisely defined __Names: Verify that: __ - all special names and types are clear or specifically defined __ - the scopes of all variables and parameters are self-evident or defined __ - all named objects are used within their declared scopes __Standards: Review the design for conformance to all applicable design standards