![]() |
Formal design reviews, variously called "design reviews", "DRs" and "formal technical reviews (FTR)", differ from |
| all other review instruments by being the only reviews that are necessary for approval of the design product. |
![]() |
Without this approval, the development team cannot continue to the next phase of the software development |
| project. |
![]() |
Formal design reviews may be conducted at any development milestone requiring completion of an analysis or |
| design document, whether that document is a requirement specification or an installation plan. |
![]() |
A list of common formal design reviews are: |
![]() |
DPR - Development Plan Review |
![]() |
PDR - Preliminary Design Review |
![]() |
DDR - Detailed Design Review |
![]() |
DBDR - Data Base Design Review |
![]() |
VDR - Version Description Review |
![]() |
OMR - Operator Manual Review |
![]() |
SMR - Support Manual Review |
![]() |
TRR - Test Readiness Review |
![]() |
TPR - Test Plan Review |
![]() |
FTR is a software quality assurance activity performed by software engineers. |
![]() |
Each FTR is conducted as a meeting and is considered successful only if it is properly planned, controlled and |
| attended. |
![]() |
The obvious benefit from formal technical reviews, walkthroughs, is the early discovery of software defects so |
| that each defect may be corrected prior to the next step in the software engineering process. |
![]() |
The of FTR objectives are: |
![]() |
To uncover errors in function, logic, or implementation for any representation of the software. |
![]() |
To verify that software meets its requirements. |
![]() |
To ensure that software representation meets predefined standards. |
![]() |
To achieve software development in a uniform manner. |
![]() |
To make projects more manageable. |
![]() |
In the sections that follow, guidelines are presented as a representative formal technical review. |
![]() |
Every review meeting should abide by the following constraints: |
![]() |
Between 3 and 5 people should be involved in the review; advance preparation should occur but should | |
| require no more than 2 hours of work for each person. |
![]() |
The duration of the review meeting should be less than 2 hours. Rather than attempting to review the entire | |
| design, walkthroughs are conducted for modules or for small groups of modules. |
![]() |
The review meeting is attended by the review leader, all reviewers, and the producer. |
![]() |
The focus of the FTR is on a product- a component of the software. The producer organizes a "walk through" | |
| the product, explaining the material, while the reviewers raise issues based on their advance preparation. | ||
| When errors are discovered, the recorder notes each. |
![]() |
At the end of the review the attendees decide whether to accept the product or not, with or without | |
| modifications. |
![]() |
During the FTR, the reviewer actively records all issues that have been raised. Finally, a review summary report |
| is produced. It answers 3 questions: |
![]() |
What was reviewed? |
![]() |
Who reviewed it? |
![]() |
What were the findings and conclusions? |
![]() |
It is important to establish a follow-up procedure to ensure that items on the issues have been corrected. |
![]() |
Guidelines for the conduct of formal technical reviews must be established in advance, distributed to all |
| reviewers, agreed upon, and then followed. |
![]() |
The following are examples of the guidelines: |
![]() |
Review the product, not the producer: the review leader should conduct the review meeting to ensure | |
| that the proper tone and attitude are maintained. |
![]() |
Set an agenda and maintain it:FTR must keep on track and on schedule. |
![]() |
Limit debate and rebuttal: when an issue raised by a reviewer, there may not be universal agreement on | |
| its impact. Rather than spending time debating the question, the issue should be recorded for further | ||
| discussion off-line. |
![]() |
Enunciate problem areas, but don't attempt to solve every problem noted: the solution of a problem | |
| can often be accomplished by the producer alone with the help of only one other individual. |
![]() |
Take written notes: It is important to take notes to be reviewed and accessed by other reviewers. |
![]() |
Limit the number of participants and insist upon advance preparation: keep the number of people to | |
| the necessary minimum. |
![]() |
Develop a checklist for each product that is likely to be reviewed: checklist helps the review leader to | |
| structure the FTR meeting and helps each reviewer to focus on important issues. Checklists should be | ||
| developed for analysis design, code and documents. |
![]() |
Allocate resources and time schedule for FTRs: Reviewers should be as a task during the software | |
| engineering process. |
![]() |
Conduct meaningful training for all reviewers: all reviewers should have a formal training. |
![]() |
Review your early reviews: Debriefing can be beneficial in uncovering problems with the review process | |
| itself. |
![]() |
Checklists are used to assess products that are derived as part of the software development process. |
![]() |
These are examples according each phase of software. |
![]() |
System Engineering phase: a system specification is prepared |
![]() |
Are major functions defined in unambiguous fashion? |
![]() |
Are interfaces between the system elements defined? |
![]() |
Have performance bounds been established? |
![]() |
Has the best alternative been selected? |
![]() |
Is the solution technically feasible? |
![]() |
Has a mechanism for system validation and verification been established? |
![]() |
Is there consistency among the system components? |
![]() |
Software Project Planning phase: a software project plan is prepared |
![]() |
Is software scope unambiguously defined and bounded? |
![]() |
Are resources adequate for the scope? |
![]() |
Are resources readily available? |
![]() |
Have risks in all important categories been defined? |
![]() |
Is a risk management plan in place? |
![]() |
Is the basis for cost estimation reasonable? |
![]() |
Software Requirements Analysis phase: preparing requirements specification |
![]() |
Is information domain analysis complete, consistent, and accurate? |
![]() |
Is problem partitioning complete? |
![]() |
Are external and internal interfaces properly defined? |
![]() |
Does the model properly reflect data objects, their attributes and relations? |
![]() |
Are all requirements traceable to system level? |
![]() |
Has prototyping been conducted for the user? |
![]() |
Are requirements consistent with schedule, resources, and budget? |
![]() |
Are validation criteria complete? |
![]() |
Software Design phase: preliminary design reviews |
![]() |
Are the software requirements reflected in the architecture |
![]() |
Are interfaces defined for all necessary modules? |
![]() |
Is the data structure consistent with the information domain? |
![]() |
Is the data structure consistent with the requirements? |
![]() |
Has maintainability been considered? |
![]() |
Is the algorithm logically correct? |
![]() |
Is the interface consistent with the architectural design? |
![]() |
Is the logical complexity reasonable? |
![]() |
Are local data structures properly defined? |
![]() |
Is design detail amenable to the implementation language? |
![]() |
Software Coding phase: source code |
![]() |
Has the design been properly translated into code? |
![]() |
Has proper use of language conventions been made? |
![]() |
Is there compliance with coding standards for the language style? |
![]() |
Are data types and data declarations proper? |
![]() |
Have all the items on the design walkthrough checklist been reapplied? |
![]() |
Software Testing phase: test plan |
![]() |
Have major test phases properly been identified? |
![]() |
Are major functions demonstrated early? |
![]() |
Is the test plan consistent with the overall project plan? |
![]() |
Are test resources identified and available? |
![]() |
Has traceability to validation criteria been established as part of the software requirements analysis? |
![]() |
Maintenance phase: test plan |
![]() |
Have side effects associated with change been considered? |
![]() |
Has the change, once made, been documented and reported? |
![]() |
Have appropriate FTRs been conducted? |
![]() |
Has a final acceptance review been conducted? |