The following is the domain checklist:
- Are automatic alternative facilities built in?
- Have check processes (watchdogs) been applied?
- Will the data processing be done dually?
- Is the operator able to supply status information?
- Has the consistency of data been taken care of by use of checkpoint/restart utilities?
- Is the essential functionality stored in separate modules?
- Are the subsystems distributed?
- How is the technology designed to cater for current and future transaction loads?
- How does the system cater for user errors and mistakes?
- Are the component/module descriptions sufficiently described?
- Have the alternative designs been considered?
- Does the design put emphasis on reusable aspects?
- Are design decisions and assumptions documented explicitly and motivated?
- Does the design support proceeding to the next development step?
- Does the design emphasize simplicity?
- Does the design create reusable components where appropriate and emphasize reusability?
- Have known design risks been identified, analysed, and planned for or mitigated?
- Does the design emphasize the leveraging frameworks and libraries to facilitate maintainability and reuse?
- Does the design define and describe the class diagrams, sequence diagram and various modules in sufficient level of details?
- Are all the components interfaces defined and described?
- Is the entity model/domain model documented?
- Is a requirement traceability matrix included as part of the design document?
- Is error handling, logging and exception handling described?
- Are the NFR requirements addressed by the design document; for instance, security, availability, and scalability?
- Does it describe the tools and procedures for building, testing, and deploying the application/packages?
- Business continuity and recovery considerations
- System monitoring considerations
- Availability considerations