Title: An Introduction to Use-Case Modeling
1An Introduction to Use-Case Modeling
The hardest single part of building a software
system is deciding precisely what to build. No
other part of the conceptual work is a difficult
as establishing the detailed technical
requirements, including all the interfaces to
people, to machines, and to other software
systems. No other work so cripples the resulting
system if done wrong. No other part is more
difficult to rectify later.
-Fred Brooks
2Requirements Process
- Requirements Elicitation Definition of the
system in terms understood by the customer - Requirements Analysis Technical specification
of the system in terms understood by the
developer.
3Requirements Elicitation
- Very challenging activity
- Requires collaboration of people with different
backgrounds - User with application domain knowledge
- Developer with implementation domain knowledge
- Bridging the gap between user and developer
- Scenarios Example of the use of the system in
terms of a series of interactions with between
the user and the system - Use cases Abstraction that describes a class of
scenarios
4Requirements Validation
- Critical step in the development process,
- Usually after requirements engineering or
requirements analysis. Also at delivery - Requirements validation criteria
- Correctness
- The requirements represent the clients view.
- Completeness
- All possible scenarios through the system are
described, including exceptional behavior by the
user or the system
5Requirements Validation
- Consistency
- There are functional or nonfunctional
requirements that contradict each other - Realism
- Requirements can be implemented and delivered
- Traceability
- Each system function can be traced to a
corresponding set of functional requirements
6User-Centered Development and Use-Case Modeling
- User-centered development a process of systems
development based on understanding the needs of
the stakeholders and the reasons why the system
should be developed. - Use-case modeling the process of modeling a
systems functions in terms of business events,
who initiated the events, and how the system
responds to those events. - Use-case modeling has roots in object-oriented
modeling. - Gained popularity in nonobject development
environments because of its usefulness in
communicating with users. - Compliments traditional modeling tools.
7Benefits of Use-Case Modeling
- Provides a tool for capturing functional
requirements. - Assists in decomposing system scope into more
manageable pieces. - Provides a means of communicating with users and
other stakeholders concerning system
functionality in a language that is easily
understood. - Provides a means of identifying, assigning,
tracking, controlling, and management system
development activities, especially incremental
and iterative development. - Provides an aid in estimating project scope,
effort, and schedule. - Provides a baseline for testing in terms of
defining test plans and test cases. - Provides a baseline for user help systems and
manuals as well as system development
documentation. - Provides a tool for requirements traceability.
- Provides a starting point for the identification
of data objects or entities. - Provides functional specifications for designing
user and system interfaces. - Provides a means of defining database access
requirements. - Provides a framework for driving the system
development project.
8System Concepts
- Use-case diagram a diagram that depicts the
interactions between the system and external
systems and users. - It graphically describes who will use the system
and in what ways the user expects to interact
with the system. - Use-case narrative a textual description of
the business even and how the user will interact
with the system to accomplish the task. - Use case a behaviorally related sequence of
steps (a scenario), both automated and manual,
for the purpose of completing a single business
task. - Description of system functions from the
perspective of external users in terminology they
understand.
9Sample Diagram
10Basic Use-Case Symbols
- Use case subset of the overall system
functionality - Represented graphically by a horizontal ellipse
with the name of the use case appearing above,
below, or inside the ellipse. - Actor anything that needs to interact with the
system to exchange information. - Could be a human, an organization, another
information system, an external device, or even
time. - Actors communicate by sending and receiving
stimuli to and from the system. Each actor has a
name. - Temporal event a system event triggered by
time. - The actor is time.
11Four Types of Actors
- Primary business actor
- The stakeholder that primarily benefits from the
execution of the use case. - e.g. the employee receiving the paycheck
- Primary system actor
- The stakeholder that directly interfaces with the
system to initiate or trigger the business or
system event. - e.g. the bank teller entering deposit information
- External server actor
- The stakeholder that responds to a request from
the use case. - e.g. the credit bureau authorizing a credit card
charge - External receiver actor
- The stakeholder that is not the primary actor but
receives something of value from the use case. - e.g. the warehouse receiving a packing slip
12Scenarios
- A narrative description of what people do and
experience as they try to make use of computer
systems and applications - A concrete, focused, informal description of a
single feature of the system used by a single
actor. - Scenarios can have many different uses during the
software lifecycle
13Types of Scenarios
- As-is scenario
- Used in describing a current situation. Usually
used during reengineering. The user describes
the system. - Visionary scenario
- Used to describe a future system.
- Can often not be done by the user or developer
alone - Evaluation scenario
- User tasks against which the system is to be
evaluated - Training scenario
- Step by step instructions designed to guide a
novice user through a system
14How do we find scenarios?
- Dont expect the client to be verbal if the
system does not exist - Dont wait for information even if the system
exists - Engage in a dialectic approach (evolutionary,
incremental) - You help the client to formulate the requirements
- The client helps you to understand the
requirements - The requirements evolve while the scenarios are
being developed
15Heuristics for Finding Scenarios
- Ask yourself or the client the following
questions - What are the primary tasks that the system needs
to perform? - What data will the actor create, store, change,
remove or add in the system? - What external changes does the system need to
know about? - What changes or events will the actor of the
system need to be informed about? - Insist on task observation if the system already
exists (interface engineering or reengineering) - Ask to speak to the end user, not just to the
software contractor - Expect resistance and try to overcome it
16Example Accident Management System
- What needs to be done to report a Cat in a Tree
incident? - What do you need to do if a person reports
Warehouse on Fire? - Who is involved in reporting an incident?
- What does the system do if no police cars are
available? If the police car has an accident on
the way to the cat in a tree incident? - What do you need to do if the Cat in the Tree
turns into a Grandma has fallen from the
Ladder? - Can the system cope with a simultaneous incident
report Warehouse on Fire?
17Scenario Example Warehouse on Fire
- Bob, driving down main street in his patrol car
notices smoke coming out of a warehouse. His
partner, Alice, activates the Report Emergency
function from her laptop. - Alice enters the address of the building, a
brief description of its location (i.e., north
west corner), and an emergency level. In addition
to a fire unit, she requests several paramedic
units on the scene given that area appear to be
relatively busy. She confirms her input and waits
for an acknowledgment. - John, the Dispatcher, is alerted to the emergency
by a beep of his workstation. He reviews the
information submitted by Alice and acknowledges
the report. He creates allocates a fire unit and
two paramedic units to the Incident site and
sends their estimated arrival time (ETA) to
Alice. - Alice received the acknowledgment and the ETA.
18Observations
- Concrete scenario
- Describes a single instance of reporting a fire
incident. - Does not describe all possible situations in
which a fire can be reported. - Participating actors
- Bob, Alice and John
19Next Goal
- Find all the use cases in the scenario that
specifies all possible instances of how to report
a fire - Example Report Emergency in the first
paragraph of the scenario is a candidate for a
use case - Describe each of these use cases in more detail
- Describe the Entry Condition
- Describe the Flow of Events
- Describe the Exit Condition
- Describe Exceptions
- Describe Special Requirements (Constraints,
Nonfunctional Requirements)
20Heuristics
- First name the use case
- Use case name ReportEmergency
- Then find the actors
- Generalize the concrete names (Bob) to
participating actors (Field officer) - Participating Actors
- Field Officer (Bob and Alice in the Scenario)
- Dispatcher (John in the Scenario)
- Then concentrate on the flow of events
- Use informal natural language
21ReportEmergency Flow Events
- The FieldOfficer activates the Report Emergency
function of her terminal. FRIEND responds by
presenting a form to the officer. - The FieldOfficer fills the form, by selecting the
emergency level, type, location, and brief
description of the situation. The FieldOfficer
also describes possible responses to the
emergency situation. Once the form is completed,
the FieldOfficer submits the form, at which
point, the Dispatcher is notified. - The Dispatcher reviews the submitted information
and creates an Incident in the database by
invoking the OpenIncident use case. The
Dispatcher selects a response and acknowledges
the emergency report. - The FieldOfficer receives the acknowledgment and
the selected response.
22Use Case Example
- Use case name ReportEmergency
- Participating Actors
- Field Officer (Bob and Alice in the Scenario)
- Dispatcher (John in the Scenario)
- Exceptions
- The FieldOfficer is notified immediately if the
connection between her terminal and the central
is lost. - The Dispatcher is notified immediately if the
connection between any logged in FieldOfficer and
the central is lost. - Special Requirements
- The FieldOfficers report is acknowledged within
30 seconds. The selected response arrives no
later than 30 seconds after it is sent by the
Dispatcher.
23How to Specify
- Name of Use Case
- Actors (Description of Actors involved in use
case) - Entry condition (This use case starts when)
- Flow of Events (Free form, informal natural
language) - Exit condition (This use cases terminates
when) - Exceptions (Describe what happens if things go
wrong) - Special Requirements (Nonfunctional Requirements,
Constraints)
24Use Case for Incident Management
25A new example
- Consider the case of a person joining and
belonging to a health club
26Step 1 identify Business Actors
- When looking for actors, ask the following
questions - Who or what provides inputs to the system?
- Who or what receives outputs from the system?
- Are interfaces required to other systems?
- Are there events that are automatically triggered
at a predetermined time? - Who will maintain information in the system?
27The Process of Requirements Use-Case Modeling
- Objective is to elicit and analyze enough
requirements information to prepare a model that - Communicates what is required from a user
perspective. - Is free of specific details about how the system
will be built or implemented. - To effectively estimate and schedule project, may
need to include preliminary system
implementation assumptions. - Steps
- Identify business actors.
- Identify business use cases.
- Construct use-case model diagram.
- Documents business requirements use-case
narratives.
28Sample List of Actors
29Step 2 Identify Business Requirements Use Cases
- During requirements analysis, strive to identify
and document only the most critical, complex, and
important use cases, often called essential use
cases. - When looking for use cases, ask the following
questions - What are the main tasks of the actor?
- What information does the actor need form the
system? - What information does the actor provide to the
system? - Does the system need to inform the actor of any
changes or events that have occurred? - Does the actor need to inform the system of any
changes or events that have occurred?
30Use Case Association Relationship
- Association a relationship between an actor
and a use case in which an interaction occurs
between them. - Association modeled as a solid line connecting
the actor and the use case. - Association with an arrowhead touching the use
case indicates that the use case was initiated by
the actor. - Association lacking arrowhead indicates a
receiver actor. - Associations may be bidirectional or
unidirectional.
31Use Case Extends Relationship
- Extension use case a use case consisting of
steps extracted from a more complex use case in
order to simplify the original case and thus
extend its functionality. - Relationship between the extension use case and
the use case it is extending is called an extends
relationship. - Represented as an arrowheaded line beginning at
the extension use case and point to the use case
it is extending. - Each extends relationship line is labeled
ltltextendsgtgt.
32Use Case Uses Relationship
- Abstract use case a use case that reduces
redundancy among two or more other use cases by
combining the common steps found in those cases. - An abstract case is available for use by any
other use case that requires its functionality. - Relationship between the abstract use case and
the use case that uses it is called a uses (or
includes) relationship. - Depicted as an arrowheaded line beginning at
the original use case and pointing to the use
case it is using. - Each uses relationship line is labeled
ltltusesgtgt.
33Use Case Depends On Relationship
- Depends On a use case relationship that
specifies which other use cases must be performed
before the current use case. - Can help determine sequence in which use cases
need to be developed. - Depicted as an arrowheaded line beginning at
one use case and pointing to a use case it is
dependent on. - Each depends on relationship line is labeled
ltltdepends ongtgt.
34Use Case Inheritance Relationship
- Inheritance a use case relationship in which
the common behavior of two actors initiating the
same use case is extrapolated and assigned to a
new abstract actor to reduce redundancy. - Other actors can inherit the interactions of the
abstract actor. - Depicted as an arrowheaded line beginning at
one actor and pointing to the abstract actor
whose interactions the first actor inherits.
35Sample Context Diagram
36Sample Use-Case Glossary
continued
37Sample Use-Case Glossary (continued)
continued
38Sample Use-Case Glossary (concluded)
39Step 3 Construct Use-Case Model Diagram
40Step 4 Document Business Requirements Use-Case
Narratives
- Document first at high level to quickly obtain an
understanding of the events and magnitude of the
system. - Then expand to a fully-documented business
requirement narrative. - Include the use cases typical course of events
and its alternate courses.
41Sample High-Level Version of a Use-Case Narrative
42Sample Expanded Version of a Use-Case Narrative
continued
43Sample Expanded Version of a Use-Case Narrative
(cont)
continued
44Sample Expanded Version of a Use-Case Narrative
(cont)
45Use Cases and Project Management
- Use-case model can drive the entire development
effort. - Project manager or systems analyst uses business
requirements use cases to plan (estimate and
schedule) the build cycles of the project. - Build cycles are scoped on the basis of the
importance of the use case and the time it takes
to implement the use case. - To determine importance of the use cases, will
create - Use-case ranking and evaluation matrix
- Use-case dependency diagram
46Use-Case Ranking and Priority Matrix
- In most projects, the most important use cases
are developed first. - Use-case ranking and priority matrix a tool
used to evaluate use cases and determine their
priority. - Evaluates use cases on a scale of 1 to 5 against
six criteria. - Significant impact on the architectural design.
- Easy to implement but contains significant
functionality. - Includes risky, time-critical, or complex
functions. - Involves significant research or new or risky
technology. - Includes primary business functions.
- Will increase revenue or decrease costs.
47Sample Use-Case Ranking and Priority Matrix
48Use-Case Dependency Diagram
- Use-case dependency diagram a graphical
depiction of the dependencies among use cases. - Provides the following benefits
- Graphical depiction of the systems events and
their states enhances understanding of system
functionality. - Helps identify missing use cases.
- Helps facilitate project management by depicting
which use cases are more critical.
49Sample Use-Case Dependency Diagram