Use Case Documentation Skill
Purpose
Describe how a user interactions with a system to achieve a specific goal. Use cases capture functional requirements from a user-centric perspective, often used in Waterfall or Hybrid environments where detailed specification is needed before implementation.
When to Use
-
Complex transactional systems (banking, healthcare).
-
When specific alternate flows and error handling must be rigorously defined.
-
Regulatory compliance requires detailed documentation.
-
Bridging gap between business needs and technical functional specs.
Anatomy of a Use Case
Key Elements
-
Use Case Name: Verb-Noun phrase (e.g., "Withdraw Cash").
-
ID: Unique identifier (e.g., UC-ATM-01).
-
Actor(s): Who interacts? (Primary: Initiates; Secondary: External systems).
-
Description: Brief summary of goal.
-
Preconditions: What must be true BEFORE this starts? (e.g., "User is logged in").
-
Trigger: What starts the use case? (e.g., "User clicks Withdraw").
-
Main Success Scenario (Basic Flow): The "Happy Path" steps.
-
Alternative Flows (Extensions): Variations or error paths.
-
Postconditions: What is true AFTER reliable completion? (e.g., "Balance updated").
-
Business Rules: Logic links.
Use Case Template
Example: Withdraw Cash at ATM
ID: UC-ATM-01 Name: Withdraw Cash Primary Actor: Bank Customer Secondary Actor: Bank System (Backend)
Description: Customer withdraws physical cash from their checking account via ATM.
Preconditions:
-
ATM has sufficient cash.
-
ATM is online.
-
Customer has valid card and PIN.
Trigger: Customer inserts card.
Main Success Scenario (Happy Path):
-
Customer inserts debit card.
-
System validates card readability.
-
System prompts for PIN.
-
Customer enters PIN.
-
System validates PIN with Bank System.
-
System displays Application Menu.
-
Customer selects "Withdraw Cash".
-
System prompts for Amount.
-
Customer enters Amount (e.g., $100).
-
System checks daily limit and account balance.
-
System authorizes transaction.
-
System dispenses Cash.
-
System prints Receipt.
-
System ejects Card.
-
Use case ends.
Alternative Flows:
A1: Invalid PIN (at Step 5)
-
System displays "Invalid PIN" message.
-
System prompts to re-enter PIN.
-
Customer re-enters PIN.
-
Resume at Step 5.
-
Constraint: If PIN invalid 3 times, perform A2 (Lock Card).
A2: Lock Card (from A1)
-
System displays "Card Locked due to attempts".
-
System retains card.
-
Use case ends.
A3: Insufficient Funds (at Step 10)
-
System determines account balance < requested amount.
-
System displays "Insufficient Funds".
-
System prompts to enter lower amount or cancel.
-
Customer enters new amount.
-
Resume at Step 10.
A4: ATM Out of Cash (at Step 10)
-
System checks internal cash dispenser > requested amount.
-
System detects low cash.
-
System displays "Unable to dispense full amount".
-
Use case ends.
Postconditions:
-
User account debited by withdrawal amount.
-
Transaction log created.
-
Cash inventory updated.
Use Case vs. User Story
Feature Use Case User Story
Focus System interaction steps User value/goal
Detail High (Flows, Errors) Low (Conversation starter)
Format Document/Structured Text card/Post-it (Who, What, Why)
Lifecycle Update/Maintain over time Done and discarded/archived
Context Waterfall/Hybrid/Complex Agile/Scrum
Best Practices
-
Write in Active Voice: "System validates PIN" (not "PIN is validated").
-
Keep it System-Neutral UI: Don't say "User clicks blue button at top right". Say "User selects Option".
-
Focus on Goal: Don't get lost in technical details (e.g., "System sends JSON packet").
-
Link Exceptions: Ensure every error path is handled.
Tools
-
Lark Docs / MS Word: Standard formatting.
-
Visual Paradigm / UML Tools: For Use Case Diagrams.
-
Gherkin: Can translate Use Case flows into Gherkin scenarios for testing.