Table of Contents Previous Section Next Section

The Key Elements of Robustness Analysis

Robustness analysis plays several essential roles within the ICONIX process. Note that you will refine both your use case text and your static model as a result of robustness analysis, as shown in Figure 5-4.

Figure 5-4. Robustness Model-Static Model Feedback Loop
graphics/05fig04.gif

Let's take a closer look at the three stereotypes that we apply to objects during robustness analysis.

You perform robustness analysis for a use case by walking through the use case text, one sentence at a time, and drawing the actor(s), the appropriate boundary and entity objects and controllers, and the connections among the various elements of the diagram. You should be able to fit the basic course and all of the alternate courses on one diagram.

Four basic rules apply:

  1. Actors can only talk to boundary objects.

  2. Boundary objects can only talk to controllers and actors.

  3. Entity objects can only talk to controllers.

  4. Controllers can talk to boundary objects, entity objects, and other controllers, but not to actors.

Keep in mind that both boundary objects and entity objects are nouns, and that controllers are verbs. Nouns can't talk to other nouns, but verbs can talk to either nouns or verbs.

Figure 5-5 summarizes the robustness diagram rules.

Figure 5-5. Robustness Diagram Rules
graphics/05fig05.gif

A reviewer of a robustness diagram should be able to read a course of action in the use case text, trace his or her finger along the associations on the diagram, and see a clear match between text and picture. You will probably have to rewrite your use case text as you do this, to remove ambiguity and to explicitly reference boundary objects and entity objects. Most people don't write perfect use case text in the first draft.

In addition to using the results of robustness analysis to tighten up the use case text, you should also continuously refine your static model. The new objects you discover drawing the diagrams should become part of your class diagrams when you discover them. This is also the right time to add some key attributes to your more significant classes.

Table of Contents Previous Section Next Section