There are a few techniques available to verify that the detailed design is consistent with the system design. The focus of verification in the detailed design phase is on showing that the detailed design meets the specifications laid down in the system design. The three verification methods we consider are design walkthrough, critical design review, and consistency checkers.
A design walkthrough is a manual method of verification. The definition and use of walkthroughs change from organization to organization. A design walkthrough is done in an informal meeting called by the designer or the leader of the designer's group. The walkthrough group is usually small and contains, along with designer, the group and/or another designer of the group.
Critical Design Review
The purpose of critical design review is to ensure that the detailed design satisfies the specification laid down by system design. It is very desirable to detect and remove design error, as the cost of removing them later can be considerably more than the cost of removing them at design time. Detecting errors in detailed design is the aim of critical design review.
The critical design review process is similar to the other reviews, in that groups of people get together to discuss the design with the aim of revealing design errors or undesirable properties. The review groups include, besides the author of the detailed design, a member of the system design team, the programmer responsible for ultimately coding the module(s) under review, and an independent software quality engineer.
It should be kept in mind that the aim of the meeting is to uncover design errors, not to fix them. Fixing is done later. Also, the psychological frame of mind should be healthy, and the designer should not be put in a defensive position. The meeting should end with a list of action items, to be acted on later by the designer.
A Sample Checklist
Does each of the modules in the system design exist in detailed design?
Are there analyses to demonstrate the performance requirement can be met?
Are all the assumptions explicitly stated and are they acceptable?
Are all relevant aspects of system design reflected in detailed design?
Are all the data formats consistent with the system design?
Design reviews and walkthrough are manual processes; the people involved in the review and walkthrough determine the error in the design .If the design is specified in PDL or some other formally defined design language, it is possible to detect some design defects by using consistency checkers.
Consistency checkers are essentially compilers that take as input the design specified in a design language (PDL in our case). Clearly, they cannot produce executable code because the inner syntax of PDL allows natural language and many activities are specified in the natural language. A consistency checker can ensure that any modules invoke or used by a given module actually exist in the design and that the interface used by the called is consistent with the interface definition of the called module.