Roles and Activities > Reviewer > Review the Architecture and Design > Review the Design

Purpose
  • To verify that the design model fulfills the requirements on the system, and that it serves as a good basis for its implementation.
  • To ensure that the design model is consistent with respect to the general design guidelines.
  • To ensure that the design guidelines fulfill their objectives.
Steps

Arrange one review of the design model per iteration in the Elaboration and Construction phases, where you review the work in progress. Then, in the iteration of the Construction phase, where the design model is considered to be more or less complete, you should arrange a detailed review of the design model. You should also arrange one review meeting per iteration in the other phases (Inception and Transition) when the design model is refined.

The participants of the review meetings will ultimately approve the design model. Before that, you will probably have to review the system several times, because results from a review will undoubtedly result in changes to the model.

Review the Design Model as a Whole To top of page

Purpose
  • To ensure that the overall structure for the Design Model is well-formed.
  • To detect large-scale quality problems not visible by looking at lower-level elements.
More Information: Checkpoints: Design Model

The design model as a whole must be reviewed to detect glaring problems with layering and responsibility partitioning. The purpose of reviewing the model as a whole is to detect large-scale problems that a more detailed review would miss.

In the Inception phase and early in the Elaboration phase, this review will be focused on the overall structure of the model, with special emphasis on layering and on interfaces. Package and Subsystem dependencies should be examined to ensure loose coupling between packaging elements. The contents of packages and subsystems should be examined to ensure high cohesion within packaging elements. In general, all elements should be examined to ensure that they have clear and appropriate responsibilities, and that their names reflect these responsibilities.

Once at least architectural prototypes have been developed, a more comprehensive review of the design should be conducted. The model should first be reviewed for overall completeness, and then more carefully to discover defects.

Review each Use-Case Realization To top of page

Purpose
  • To ensure that the behavior of the system (as expressed in use-case realizations) matches the required behavior of the system (as expressed in use cases), i.e. is it complete?
  • To ensure that the behavior is allocated appropriately among model elements, i.e. is it correct?
More Information:

Once the structure of the design model is reviewed, the behavior of the model needs to be reviewed. First, make sure that there is no missing behavior by checking to see that all scenarios for the current iteration have been completely covered by use-case realizations. All of the behavior in the relevant use-case sub-flows must be described in the completed use-case realizations.

In cases where the behavior of the system is event-driven, you may have used statechart diagrams to describe the behavior of the use case. Where they exist, statechart diagrams need to be examined to ensure that they describe the correct behavior.

Next, make sure the behavior of the use-case realization is correctly distributed between model elements in the realizations: make sure the operations are used correctly, that all parameters are passed, and that return values are of the correct type.

Review each Subsystem (and its contents) or Class (if the system is small) To top of page

Purpose
  • To ensure that the internal implementation of the subsystem or class performs the behavior required of it.
More Information:

For each model element to which behavior is allocated, the internal design of the model element must be reviewed. For subsystems, this means ensuring that the behavior specified in the interfaces the subsystem realizes has been allocated to one or more contained classes or subsystems. For classes, this means that the description of each operation is sufficiently defined so that it may be implemented unambiguously.

Review Design Guidelines To top of page

Purpose
  • To ensure that the Design Guidelines remain current, and to correct defects in the Guidelines where they exist.
More Information: Checkpoints: Design Guidelines

On the basis of the design review, look for defects in the Design Guidelines:

  • Were they followed? If not, why?
  • Are they correct? Were systematic defects detected that were introduced by erroneous guidelines?
  • Are they complete? Would systematic defects have been reduced if the guidance was provided?

Prepare Review Record and Document Defects To top of page

Purpose
  • To document the review results.
  • To ensure that identified defects are documented.

Following each review meeting, the results of the meeting must be documented in a Review Record. In addition, defects must be documented (and eventually assigned to someone to own and drive to resolution).