Skip to content

Use Case Goal Level

A use case describes how a user reaches a goal with a system (see the article “Use Case”). Goals come at different heights. Some are very broad, “up in the clouds”. Others are tiny, “down in the mud”. Getting a card into an ATM is a “down in the mud” goal.

Cockburn sorts use cases by goal level, using a sea-level metaphor with colors:

  • Summary level (white): a broad goal. Each of its steps is likely a separate user goal, described in its own sea-level use case. So steps sit one level below.
  • User goal (blue, sea level): the level Cockburn considers most important.
  • Subfunction (indigo): writing these is often worthwhile.
  • Too low (black): writing these is almost never worthwhile.

How to recognize a user goal

  • The user seeks to complete it in a single sitting.
  • It has one actor, one sitting, and one measurable outcome.
  • A person should manage one blue activity in roughly 2 to 20 minutes.
  • Test question: can the primary actor go away happy after having done this?

Subfunctions

Pull out a subfunction only when several user-goal use cases reuse it.

Marking the level

Cockburn recommends labeling each use case with its goal level, using a symbol. Readers then know what kind of discussion to expect, because writers work at different levels.

An online shop has a broad white goal: “Run the shop’s sales.” Its steps are separate blue goals, each with its own use case: “Place an order”, “Track a delivery”, “Return an item”. Each passes the “go away happy” test.

Several of these need the shopper to find the right product. That shared piece becomes one indigo subfunction use case, reused by the blue ones. Typing a postal code into a form field is too low (black), so it gets no use case.

Writing black-level use cases is almost never worth the effort. Indigo ones can pay off, but only when several user-goal use cases share them. The facts here do not say more about costs or limits of the classification.

Goal levels: a summary goal splits into user goals, which share a subfunction.

Diagram source
flowchart TD
W["Run the shop's sales (summary, white)"]
B1["Place an order (user goal, blue)"]
B2["Track a delivery (user goal, blue)"]
I["Find a product (subfunction, indigo)"]
W --> B1
W --> B2
B1 --> I
B2 --> I
  • Each use case is labeled with its goal level, so readers know what kind of discussion to expect.
  • User-goal use cases each have one actor, one sitting and one measurable outcome.
  • Subfunction use cases exist only where several user-goal use cases reuse them.
  • Steps of summary-level use cases are described by sea-level use cases.