IntellAgile
Writing Use
Cases:
Requirements
in Context
www.craiglarman.com
Copyright © 2002 Craig Larman. All rights reserved.
DEFINITION: Use Case
IntellAgile
 Informally, a use case is a story of using a system
to fulfill a goal.
 Rent Videos
 Used by primary actors



E.g., Clerk
External agents
something with behavior
 Use supporting actors.

CreditAuthorizationSystem
iterative requirements
use cases
sys. sequence diagrams
domain models
2
IntellAgile
EXAMPLE: Use Case. DEFINITION: Brief
 Here’s one in a brief format:

Rent Videos. A Customer arrives with videos to
rent. The Clerk enters their ID, and each video
ID. The System outputs information on each.
The Clerk requests the rental report. The
System outputs it, which is given to the
Customer with their videos.
iterative requirements
use cases
sys. sequence diagrams
domain models
3
DEFINITION: Scenario
IntellAgile
 Informally, a scenario is a specific sequence of
actions and interactions in a use case.
 One path through the use case.
 E.g., The scenario of renting videos and first
having to pay overdue fines.
 More formally, a use case is a collection of success
and failure scenarios describing a primary actor
using a system to support a goal.
iterative requirements
use cases
sys. sequence diagrams
domain models
4
Use Cases
IntellAgile
 There is nothing object-oriented about use cases.
 So, why bother in an OOA/D workshop?

We need some kind of requirements input for
the design steps.

They are common/popular.

There is a UML-related topic.
– Use case diagrams
iterative requirements
use cases
sys. sequence diagrams
domain models
5
Levels of Use Cases
IntellAgile

A common challenge is
identifying use cases at a
useful goal level.

For example, how do we
know which of these is at a
useful level?




Negotiate a Supplier
Contract
Rent Videos
Log In
Start Up
iterative requirements
use cases
sys. sequence diagrams
domain models
6
Levels of Use Cases
IntellAgile

One answer is that they
are all use cases.

Not helpful…

We can end up with too
many fine-grain use
cases
– management and
complexity problems.

Or “fat” use cases
which span an entire
organization.
iterative requirements
use cases
sys. sequence diagrams
domain models
7
IntellAgile


GUIDELINES: EBP for Use Case Levels
Cockburn supports the
Elementary Business
Process (EBP) guideline.
Focus on use cases at the
level of EBPs.

“A task performed by
one person in one
place at one time, in
response to a business
event, which adds
measurable business
value and leaves the
data in a consistent
state.”
iterative requirements
use cases
sys. sequence diagrams
domain models
8
IntellAgile
GUIDELINES: EBP for Use Case Levels

Naively, can you apply the
“boss test” for an EBP?

Boss: “What do you do all
day?”

Me: “I logged in!”

Is Boss happy?
iterative requirements
use cases
sys. sequence diagrams
domain models
9
IntellAgile
GUIDELINES: Size for Use Case Levels

An EBP-level use case
usually is composed of
several steps, not just one
or two.

It isn’t a single step.
iterative requirements
use cases
sys. sequence diagrams
domain models
10
IntellAgile

Applying the EBP and size
guidelines:





Use Case Levels: Applying the Guidelines
Negotiate a Supplier
Contract
Rent Videos
Log In
Start Up
The others can also be
modeled as use cases.

But, prefer a focus on
the EBP level.
iterative requirements
use cases
sys. sequence diagrams
domain models
11
Use Case Diagrams
IntellAgile
 The UML has use case diagrams.
 Use cases are text, not diagrams.

Use case analysis is a writing effort, not
drawing.
 But a short time drawing a use case diagram
provides a context for:
 identifying use cases by name
 creating a “context diagram”
iterative requirements
use cases
sys. sequence diagrams
domain models
12
Use Case Diagrams
IntellAgile
Video Store
Information System
Clerk
Pay Fines
Rent Items
«actor»
Credit
Authorization
Service
Manage
Memberships
Customer
Log In
Manage
Inventory
Administrator
Manage Users
iterative requirements
use cases
Warning: Don’t spend
much time on
diagramming.
Use case work means
to write text, not draw
diagrams
sys. sequence diagrams
domain models
13
GUIDELINES: Use Case Diagrams
IntellAgile
Show computer system actors
with an alternate notation to
human actors.
Prefer use cases at the EBP level.
Video Store Information System
«actor»
Credit
Authorization
Service
Rent Videos
Clerk
...
primary actors on
the left
iterative requirements
supporting actors
on the right
use cases
sys. sequence diagrams
domain models
14
GUIDELINES: Use Case Diagrams
IntellAgile
Types of Actors
Primary actor – has goal, initiates task
Supporting actor – involved in dialogue, provide
services or information
Off-stage actor – has an interest in the use case
iterative requirements
use cases
sys. sequence diagrams
domain models
15
GUIDELINES: Use Case Modeling
IntellAgile

It is common to group CRUD (Create, Read,
Update, Delete) operations into one use case.

Manage Users

Name starts with a verb.

Manage Users

All systems have a Start Up and Shut Down use
case (perhaps trivial and low level).

But sometimes, important.
– an avionics system
iterative requirements
use cases
sys. sequence diagrams
domain models
16
GUIDELINES: Use Case Modeling
IntellAgile

Prefer EBP-level use cases.

AKA user-level goal use cases.

Common quality assurance checks. Are these
present:

Use Cases:
– Some variant of Configure System
– Sometimes, Start Up and Shut Down

Actors:
– System Administrator
iterative requirements
use cases
sys. sequence diagrams
domain models
17
Detail in Use Cases
IntellAgile
Iterative writing of use cases: idea, basics, scenarios,
fully dressed description
“brief” format = terse one-paragraph summary
“casual” format = one informal paragraph per scenario
“fully dressed” format = everything you want
iterative requirements
use cases
sys. sequence diagrams
domain models
18
IntellAgile
DEFINITION: Fully Dressed Use Cases
 Rich notation for detailed analysis.
 Shows branching scenarios.
 Can include non-functional requirements related to
the functional.
iterative requirements
use cases
sys. sequence diagrams
domain models
19
EXAMPLE: Fully Dressed
IntellAgile
Use Case UC1: Rent Video
Level: User-level goal (EBP level)
Primary Actor: Clerk
Preconditions:
 Clerk is identified and authenticated.
Stakeholders and their Interests:
Clerk: Wants accurate, fast entry.
Customer: Wants videos, and fast service with minimal effort.
Accountant: Wants to accurately record transactions.
Marketing: Wants to track customer habits.
...
iterative requirements
use cases
sys. sequence diagrams
domain models
20
EXAMPLE: Fully Dressed
IntellAgile
Main Success Scenario (or Basic Flow or “Happy Path”):
1.
Customer arrives at a checkout with videos or games to rent.
2.
Clerk enters Customer ID.
3.
Clerk enters rental identifier.
4.
System records rental line item and presents item description.
(Clerk repeats steps 3-4 until indicates done.)
5.
System displays total.
6.
Customer pays. System handles payment.
7.
Clerk requests rental report.
8.
System outputs it. Clerk gives it to Customer.
9.
Customer leaves with rentals and report.
iterative requirements
use cases
sys. sequence diagrams
domain models
21
EXAMPLE: Fully Dressed
IntellAgile
Extensions (or Alternatives):
a*. At any time, System fails:
1.
Clerk restarts System
2.
logs in
3.
requests recovery from prior state
1a. New Customer.
1. Perform use case Manage Membership.
2a. Customer ID not found.
1. Cashier verifies ID. If entry error, reenter, else Manage Membership.
2b. Customer has unpaid fines (usually for late returns).
1. Pay Fines.
iterative requirements
use cases
sys. sequence diagrams
domain models
22
EXAMPLE: Fully Dressed
IntellAgile
Special Requirements:
n
Language internationalization on the display messages and rental
report.
n
Large text on display. Visible from 1 m.
Technology and Data Variations:
n
ID entries by bar code scanner or keyboard.
Frequency:
n
Near continuous
Open Issues:
n
Should we support a magnetic stripe cards for customer ID, and allow
customer to directly use card reader?
iterative requirements
use cases
sys. sequence diagrams
domain models
23
IntellAgile
USE CASES: non-functional requirements
Note that use cases can capture non-functional
requirements
Performance: indicate performance constraints on
individual scenarios
Security: indicate which tasks must be secure
Usability: indicate user characteristics with actor
definitions; indicate frequency of user events with
use case, …
Portability, etc: These are “developer” use cases, not
“user” use cases
iterative requirements
use cases
sys. sequence diagrams
domain models
24
IntellAgile
DEFINITION: Essential & Concrete Use Cases
 “Keep the UI out”
 Essential use cases defer the details of the UI, and
focus on the intentions of the actors.
 Essential: Clerk enters Customer ID.
 Concrete/worse: Clerk takes Customer ID card and
reads the bar code with laser scanner.
iterative requirements
use cases
sys. sequence diagrams
domain models
25
GUIDELINES: Use Case Writing
IntellAgile

Start sentence 1 with “<Actor> does <event>”

Customer arrives with videos to rent.

First write in the essential form, and “Keep the UI
out.”

Capitalize “actor” names.
1. …
2. Clerk enters…
3. System outputs…
iterative requirements
use cases
sys. sequence diagrams
domain models
26
GUIDELINES: Use Case Writing
IntellAgile

Terse is good. People don’t like reading
requirements ;). Avoid noisy words.

More verbose
1. …
2. The Clerk enters…
3. The System outputs…

Less
1. …
2. Clerk enters…
3. System outputs…
iterative requirements
use cases
sys. sequence diagrams
domain models
27
GUIDELINES: Types of Scenarios
IntellAgile
Main scenario
Alternative scenario – other ways of achieving the
goal
Exceptional scenario – where something goes wrong
Recovery scenario – but we can recover
Failure scenario – alas, we cannot recover
NB For Larman, “failure scenario” = “exceptional
scenario”
iterative requirements
use cases
sys. sequence diagrams
domain models
28
IntellAgile
MOTIVATION: Comprehensible & Familiar

Use cases are stories.

A simple and familiar
model that many people,
especially non-technical,
can easily relate to.
iterative requirements
use cases
sys. sequence diagrams
domain models
29
IntellAgile

MOTIVATION: “Requirements in Context”
The subtitle makes an
important point:

Use cases bring
together related
requirements.

More cohesion and
context for related
requirements.
iterative requirements
use cases
sys. sequence diagrams
domain models
30
IntellAgile

Concrete Use Cases
Sometime after the essential form of the use case
has been written, one may optionally write it in a
concrete form.
1. Customer arrives at a checkout with videos or
games to rent.
2. Clerk scans Customer ID…
Extensions
2a. Scanner failed.
1. Clerk enters ID on keyboard (see GUI window
example, fig 5)…
31
Artifacts in the UP Use-Case Model
IntellAgile
Partial artifacts, refined in each iteration.
Use-Case Model
:System
foo( x )
Requirements
bar( y )
text
use
cases
iterative requirements
use
case
diagrams
use cases
system
sequence
diagrams
sys. sequence diagrams
system
operations
system
operation
contracts
domain models
32
Artifacts in the UP Use-Case Model
IntellAgile
Sample UP Artifact Relationships
Domain Model
Sale
Business
Modeling
1..*
1
date
...
Sales
LineItem
...
...
quantity
objects, attributes,
associations
scope, goals,
actors, features
Use-Case Model
Vision
Process Sale
Process
Sale
use
case
names
Cashier
Requirements
Use Case Diagram
1. Customer
arrives ...
2. Cashier
makes new
sale.
3. ...
terms, attributes,
validation
Glossary
Use Case Text
system
events
: System
Operation:
enterItem(…)
Post-conditions:
-...
: Cashier
system
operations
make
NewSale()
Supplementary
Specification
enterItem
(id, quantity)
non-functional reqs,
quality attributes
System Sequence Diagrams
Operation Contracts
requirements
: Register
Design
Design Model
: ProductCatalog
: Sale
enterItem
(itemID, quantity)
spec = getProductSpec( itemID )
addLineItem( spec, quantity )
iterative requirements
use cases
sys. sequence diagrams
domain models
33
Context – Organisational
IntellAgile
Enterprise Selling Things
Checkout Service
Sales Tax
Agency
Goal: Collect
taxes on sales
POS System
Sales Activity
System
Cashier
Customer
Goal: Buy items
iterative requirements
Goal: Analyze sales
and performance data
use cases
Goal: Process sales
sys. sequence diagrams
domain models
34
Context – System Subsystem
IntellAgile
User-level use cases
User work tasks
User goals for task
(External) actor-system
dialogue
Target system being modeled
is the whole system
But … can model use cases of
a subsystem …
Subsystem as target system
Means other subsystems are
actors external to the
subsystem
Means that a client of the
service of the subsystem is
an actor (client is another
subsystem …)
Still have tasks, goals,
scenarios, etc
Can construct a use case
model
iterative requirements
use cases
sys. sequence diagrams
domain models
35