48 Model Driven Systems Development with Rational Products
Therefore, in the discussion that follows, much of what is said about use cases
also applies to operations.
MDSD Step 5: Finding use cases
Identifying use cases is an important step in this process, and is, at the same
time simple, profound, and vitally important. Use cases form the basis from which
the dynamic part of the MDSD model is derived. What we are seeking to do here
is to identify the complete set of planned usages of an entity when the entity is
treated as a black box. This is probably the hardest part—staying to a black-box
perspective of an entity. Often those doing this kind of modeling have deep
knowledge of the internals of the particular entity and it is a challenge to keep the
focus at a high level. We often find ourselves reassuring such teams that we will
get to work on the lower-level interactions—which interest them far more—soon
enough and emphasize that the purpose is to derive the lower level interactions
from an analysis of the fundamental usages of the higher level entity—its reason
for being. By keeping to this high level focus, the higher level use cases can be
developed more quickly and the lower levels developed in due time.
Finding use cases involves
stepping back and looking at the entity as a black box,
and asking, how do these actors we have identified interact with the entity? What
are the complete entity usages? What are the major results of value produced by
the entity? When we next expand the entity to its white-box view, we will be
asking the same questions of the subentities. In the case of an enterprise, we will
look at the system and its actors in the white-box expansion.
What do you use your car for?
We often use this illustration in our MDSD courses to help people understand
use cases. If I ask a group what they use their cars for, the first response will
likely be, to get from point A to point B. I ask them where those places are
because I have never seen them on a map. I also ask them if they wake up in the
morning and say to themselves, today I want to get from point A to point B. They
laugh and realize that getting from point A to point B is not a real usage. It is too
vague. So I ask them to forget that they know anything about use cases or
computers for that matter, and just answer the question: What do you use your
car for?
With some thought, we come up with a number of complete usages of the car,
such as:
Commute to work (and back home)
Go shopping
Go on vacation
Take the kids to school
Travel to a remote bike ride