This chapter is from the book

Use Case Analysis

Use case analysis is the most common technique used to identify the
requirements of the system, information that is then used to define processes
and later to design classes that will ultimately fulfill the use case. The
importance of these requirements cannot be overemphasized. They are the
foundation on which the system is built. If they are incomplete or, worse yet,
incorrect, then the system development effort will obviously suffer.

You should begin use case analysis by identifying the participants, the users
or stakeholders of the system. These are individuals who may have a variety of
responsibilities within the organization, from manager to clerk. The common
thread among these individuals is the interest in the direction and success of
the system.

These stakeholders should be individuals who have a "buy-in" to the
success of the system and are willing to stay with the project for the duration.
It is unfortunately a recurring problem that many chosen stakeholders start with
an interest in a system but then begin to lose interest as the project wears on.
Choosing stakeholders whose job is directly affected by the success or failure
of the system can help alleviate this problem.

If these stakeholders are outside of the system being developed and interact
with the system, then they represent actors for the purposes of use case
analysis. You should select more than one stakeholder with varied backgrounds,
gathering the opinions not only of management (who are often only the consumers
of system information), but of the administrative and professional users of the
system who must input and manage the information in the system.

During the use case sessions, the session facilitator will work on creating
the use case diagrams, most likely UML diagrams, to help visualize the
requirements of the system. This process involves determining how the users
extract value from the system. The value they extract is not only information
retrieved from the system in the form of reports or queries, but the processing
that the system will perform for them, processing that would otherwise need to
be done manually or through one or more disparate legacy systems.