Actors, Scenarios, and Use CasesActor: entity that shows a behavior, e.g.: a person role, computer system, or organization Scenario: specific sequence of actions and interactions betw
Trang 1Use Cases
Reference: Craig Larman, Applying UML and Patterns, Ch 6
Trang 3Example: Point of Sale
1.Customer arrives at a checkout (+goods) 2.Cashier uses POS system to record items 3.System presents a running total and line-
item details 4.Customer enters payment information,
which the system validates and records 5.System updates inventory
6.Customer receives receipt from the system and leaves.
Trang 4Actors, Scenarios, and Use Cases
Actor: entity that shows a behavior,
e.g.: a person (role), computer system, or organization
Scenario: specific sequence of actions and interactions
between actors and a system
use case instancesinge path of using the systeme.g., purchasing 10 items with cash (or even more detailed)
Use case: collection of related success & failure
scenarios that describe an actor using a system to
support a goal
Trang 5Use Case Example with Scenarios (casual format)
UC Handle Returns
checkout with items to return The cashier uses the POS system to record each returned item …
Alternate Scenarios:
if the customer paid by credit
If the item identifier is not found in the system …
If the system detects failure to communicate with the external accounting system …
Trang 6Use-Case Model
Set of all written use cases Model of the system’s functionality and environment
Unified Process (UP) defined artifact within the requirements discipline
UP also requires glossary.May optionally include a UML use case diagram
use cases, actors, and their relationshipscontext diagram
Trang 7Three Kinds of Actors
Trang 8Use Case FormatBrief
Succinct one-paragraph summaryusually the main success scenariodone during early requirements analysis should take only a couple of minutes
mainly done after many use cases are identified and during early requirements workshop for high-value and high-risk requirements (e.g., core architectural)
Trang 9A Template for Fully Dressed Style
• Use case name
•start with a verb
• Stakeholders and interests
•who cares about this use case, and what do they want?
• Preconditions
•what must be true on start, and worth telling the reader
• Success guarantee (postcondition)
• what must be true on successful completion, and worth telling the reader
• Main success scenario
•a typical, unconditional happy path scenario of success
• Technology and data variations list
•varying I/O methods and date formats
• Frequency of occurrence
• Miscellaneous
Trang 10Coffee Maker Example
Example of a “semi” fully dressed use case
CoffeeMaker
http://agile.csc.ncsu.edu/SEMaterials/tutorials/coffee_maker/
Trang 11Template for a fully dressed use case
Trang 12Write in an Essential Style (early phase)
Keep the user interface outFocus on actor intent
User’s intentions and system’s responsibilities rather than their concrete actions
Example
Manage Users:
1 Administrator identifies self.
2 System authenticates identity.Another is concrete style that embeds user interface decisions - avoid during early analysis
Example
1 Administrator enters ID and Password in a dialog box
Trang 13Write Black-Box Use Cases
Focus on what the system must do,
i.e., the behavior or functional requirements
Not on how it will do (the design)
Examples:
Good: The system records the saleBad: The system writes the sale to the database Worse: System generates SQL INSERT statement for the sale
Trang 14Take an Actor and Actor-Goal Perspective
Use case definition by Jacobson
A set of use-case instances, where each instance is
a sequence of actions a system performs that yields an observable result of value to a particular
actor [Jacobson]Write requirements focusing
on the users/actors of a system,
asking about their goals and typical situations
and what they consider a valuable result
Trang 15Actor-Goal List
Trang 16One Column vs Two Column FormatTwo column emphasizes interaction
Trang 17How to Find Use Cases?
Choose the system boundarywhat you are building?
who will be using the system?what else will be used that you are not building?Find primary actors and their goals
brainstorm the primary actors firstwho starts and stops the system?who gets notified when there are errors or failures?Define use cases that satisfy user goals
prepare an actor-goal list (and not actor-task list)in general, one use case for each user goal
name the use case similar to the user goal
Trang 18What Tests Can Help Find Useful Use Cases?
Which of these are valid use cases?
Negotiate a Supplier Contract
Handle Returns
Log in
Move Piece on the Game Board
Trang 19What Tests Can Help Find Useful Use Cases?
Which of these are valid use cases?
Negotiate a Supplier Contract
Handle Returns
Log in
Move Piece on the Game Board
All of these can be use cases at different levels,
depending on the system, boundary, actors, and goals
Trang 20What Tests Can Help Find Useful Use Cases?
Rather than asking
”What is a valid use case?”More practical question:
“What is a useful level of focus to express use cases for application requirements analysis?”Rules of thumb
The Boss TestThe EBP TestThe size test
Trang 21What Tests Can Help Find Useful Use Cases?
The boss test
“What have you been doing all day?”
Your reply “logging in!”
Is your boss happy? No value? No good use case!
The Elementary Business Process (EBP) test
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 data in a consistent state
Good Examples: Approve Credit or Price OrderBad Examples: delete a line item or print the document
The size test
Just a single step in a sequence of others -> not good!
Trang 22Applying Tests
Negotiate a supplier contract
Much broader than EBP, rather a business use case
Handle returns
OK with the Boss EBP Size is good.
Log in
Boss is not happy is this is all you do all day!
Move piece on game board
Single step – fails the size test.
Trang 23Use Case (Context) Diagrams: Suggested Notation
Trang 24Use Case Diagrams
Downplay diagramming, Keep it short and simpleFocus on text
Do not focus on use case relationships
Context diagram of the systemShows boundary
What lies outside of itHow it gets used
Should be done in conjunction with an actor-goal list
Trang 25Alternative Actor Notation
Trang 26Use Cases form Basis for Others
Trang 27Use Cases in Iterative Development
Functional requirements are primarily captured in use cases
Use cases drive the iteration planning and workEasy for users to understand
Influence user manual/documentationFunctional or system testing corresponds to the scenarios of use cases
Independent of implementing technologyUI shortcuts for most common scenarios
Trang 28More examples?
iTrust
http://agile.csc.ncsu.edu/iTrust/wiki/
doku.php
Trang 29 Questions/Comments/Thoughts?
Trang 30and Patterns - Larman and
www.craiglarman.com