1. Is the architecture, including the data flows, control flows, and interfaces, clearly represented?
1. Are the goals defined?
2. Have all TBDs been resolved in requirements and specifications?
3. Can the design support any anticipated changes in the TBD requirements?
4. Have the impacts of the TBDs been assessed?
5. Has a risk plan been made for the parts of the design which may not be feasible?
6. Have design tradeoffs been documented? Does the documentation include the definition of the trade space and the criteria for choosing between tradeoffs?
7. Has design modeling been performed and documented?
8. Are all of the assumptions, constraints, decisions, and dependencies for this design documented?
1. Does the documentation follow project and/or JPL standards?
1. Are data elements, procedures, and functions named and used consistently throughout the program set and with external interfaces?
2. Does the design reflect the actual operating environment? Hardware? Software?
3. When appropriate, are there multiple, consistent, representations of the design (i.e., static vs. dynamic)?
1. Is the design feasible from schedule, budget, and technology standpoints?
2. Is the logic correct and complete?
1. Is the conceptual view for all composite data elements, parameters, and objects documented?
2. Is there any data structure needed that has not been defined, and vice versa?
3. Have data elements been described to a sufficiently low level of detail? Have valid value ranges been specified?
4. Has the management and use of shared and stored data been clearly described?
1. Are the specifications for the modules consistent with the full functionality required for the module in the Software Requirements Document (SRD) and Software Interface Specifications (SIS-1)?
2. Is an abstract algorithm specified for each sublevel module?
3. Will the selected design or algorithm meet all of the requirements for the module?
1. Are the functional characteristics of the interfaces described?
2. Will the interface facilitate troubleshooting?
3. Are all interfaces consistent with each other, other modules, and requirements in SRD, SIS-1/2?
4. Do all interfaces provide the required types, amounts, and quality of information?
5. Have the number and complexity of interfaces been effectively balanced against one another to result in a small number of total interfaces, each of which is of acceptable complexity?
6. Is the operator interface designed with the user in mind (i.e., precise and non-jargon vocabulary, useful messages)?
1. Has the size of each sublevel module been estimated (lines of code)? Is it reasonable?
2. Is a reasonably large and representative set of the possible states or cases considered?
3. Is the design of sufficient detail to proceed to the detailed design phase?
1. Is the design modular?
2. Do the modules have high cohesion and low coupling?
1. Has performance modeling been performed when appropriate and has it been documented?
2. Are all performance parameters specified (e.g., real time constraints, memory size, speed requirements, amount of disk I/O)?
3. Do processes have time windows (e.g., flags may be needed to "lock" structures, semaphores, some code may need to be non-interruptible)?
4. Have all critical paths of execution been identified and analyzed?
1. Does the design provide for error detection and recovery (e.g., input checking )?
2. Are abnormal conditions considered?
3. Are all error conditions specified completely and accurately?
4. Does the design satisfy all systems integrity commitments for this product?
1. Can the program set be tested, demonstrated, analyzed, or inspected to show that it satisfies requirements?
2. Can the program set be integrated with previously tested code and can it be tested incrementally?
1. Are all parts of the design traced back to requirements in SRD, SIS-1, other project documents?
2. Can all design decisions be traced back to trade studies?
3. Has the impact of special or unusual features of inherited designs on the current design been addressed?
4. Are all known risks from inherited designs identified and analyzed?