The Who/What Cycle

As we walk through the various scenarios, we go through a series of cycles that identify a what, followed by a who. A what is the description of an action that must be performed. A who is the identification of the agent that will be charged with performing the action.

You know, from your real life experience in organizing committees or clubs, that all actions must be assigned to an individual. If nobody takes charge of an action, it simply will not occur.

Sometimes, however, the appropriate agent may not at first be obvious. For example, who should be responsible for the task of editing an individual recipe. Should this be something the recipe database performs, or should it be the responsibility of another component that represents just one recipe?

Answers to questions such as these can best be explored by trying both alternatives, walking through scenarios with each, and seeing which works out best.

[audio] 15a [real] 15a Text to accompany slide 15a, in Chapter 2 of An Introduction to Object-Oriented Programming