Use Cases for Requirements

advertisement
Use Cases for Requirements
Today’s material: Arlow and Neustadt
ch. 4 and 5 Larman: part of chapter 6
What are requirements?
Use Cases for Requirements
Today’s material: Arlow and Neustadt ch. 4
What are requirements?
Larman: part of chapter 6
Requirements (or specifications, or requirements
specifications)
“…are capabilities…to which the system…must conform”
“Requirements” also names a UP discipline
– Larman p. 41 (2nd), p. 54 (3rd)
See Fig. next
(or L. sect. 2.4 in 2nd ed., and 2.7 in 3rd ed.)
…it is done throughout the project
Unlike in non-iterative life cycle models
(e.g. waterfall model, fountain model)
Disciplines in the RUP
Domain diagrams
Use
cases
Sequence
& Design
class
diagrams
Modified from: http://dn.codegear.com/article/images/33319/RUP.JPG
Use Cases - Background
A use case is a “case of use”
…that is, (generalized) example of usage
Precise translation from the Swedish is “usage
case”
Invented by Ivar Jacobson in 1986
Major advance in the book:
Writing Effective Use Cases,
Alistair Cockburn (“Coburn”), 2000
What is a Use Case?
A use case is a story about using the
system
A use case is a set of related system use
scenarios
A use case is a set of related system use
instances
As a way to communicate among
humans…
Stories are
flexible and human-friendly
Use Cases for System Needs
Because use cases are human friendly…
…they are a good way to capture needs
They are stories about how a system can
meet needs
Example for POS system (what’s another?)
Customer brings items to checkout counter.
Cashier records each item. System displays each
item & price, and current total. Customer provides
payment somehow. System validates it, logs it,
and updates inventory data. System prints receipt
and customer waves a cheery goodbye.
the “somehow” can be expanded into multiple scenarios
E.g. L. p. 46 2nd ed., p. 63 3rd ed.
Stories Can Have Titles…
The title of that use case could be
“Process a customer with items to buy”
Consider a course registration system
A title of a use case might be
“Process a student with courses to sign up for”
Consider a project planning, or general UML
editor system, or _______ system
Write down a title for one use case…
(We’ll have more to say about these in the future)
Use Case – What Is It?
Set of related scenarios
(i.e. set of related use case instances)…
…in which actor(s) use the system…
…to meet some need
Actor: something that behaves in some way
E.g. a cashier, a computer(?), a retail store, a customer…
Not the system itself though
What actors exist in a _____ or UML editing system?
Need: a goal that the system can support
Buying things
Returning things
Determining what to order to restock inventory
Use Cases are Appropriately General
Too specific: Joe Schmoe goes to the grocery store at
11:00 a.m. on Thursday to buy stuff for breakfast. In
his basket he puts beer, chips, and the book “All
About Healthy Breakfasts.” Then he…
A use case instance (specific but not too specific):
one path through a use case.
Example: someone goes to the store, puts items into a cart,
proceeds to the cash only express line…
Another example: . . .
(scenario: same as a use case instance)
A use case: set of “related…scenarios”
The Use Case
as a
Set of Use Case Instances/Scenarios
Use case title: Handle Returns
There is a main use case instance (scenario)
Main success scenario
Credit card expired use case instance
Customer has items to return, cashier scans in each, gets
total, gives refund
Customer paid with credit card, but now can’t refund to
the credit card account, so give cash
Bar code missing scenario
…
Use Case Instances
in the Use Case
Write down a use case instance
(scenario) for a project planning system
use case, UML editor use case, or ____
use case
…then…we’ll put a few on the board…
A Couple of Scenarios…
Make new SSD or use case diagram
E.g. Create, drag, drop a stick figure
(User, mouse, computer have behaviors)
Load and modify previously created
diagram
Use file browser to search the right .uml file,
click to bring it up, ….
(Monitor, file system have behaviors)
Recall ‘Actor’: something that
behaves in some way
What is the actor for each of these?
Make SSD or use case diagram
Load and modify previously created diagram
Create, drag, drop a stick figure
User, mouse, computer
Use file browser to search for diagram in a .uml file,
click to bring it up, ….
Monitor, file system
How about some other examples?
Use Cases – One
Requirements Tool
In the FURPS+ model, use cases…
…are primarily oriented toward one letter
Which letter? (See next slide to figure out)
FURPS+ Model for
Requirements
F is for Functionality
U is for Usability
Speed, resource consumption, accuracy, response delay, etc.
S is for Supportability
MTBF, availability, fail softness, etc.
P is for Performance
Things that help people use it: help, documentation, ergonomics
R is for Reliability
Things it does: features, etc.
Maintenance friendly, configuration support, international issues
+ is for other stuff
Like what?
Functionality:
features vs. valuable features
“…the software industry is littered with failed
projects that did not deliver what people really
needed” – Larman p. 48 (2nd ed.)
Requirements (hence, use cases) should
“Lack of user involvement …is near the top of the list of
reasons for project failure” – p. 65 (3rd ed.)
…focus on reaching goals and adding value
(…not on laundry lists of features)
Otherwise, the system could end up with:
features that don’t add much value; and
important goals that aren’t actually met
Types of Use Cases I
What-based (“black box”) use cases
Describe what system does
Do not describe how system does it
Example of a step:
How-based (“glass box”) use cases
Describe mechanism – how the system does it
Example of a step:
“system records sale to database”
Example 2:
“system records the sale”
“system issues SQL INSERT command”
Which is better?
Types of Use Cases II:
Essential Vs. Concrete Style
Essential: “user is authenticated”
Concrete: “user types name and
password”
Which captures intent?
Which impacts UI?
Which is good to do first?
Which is good to do later?
Use Cases:
Concrete Vs. Essential
versus
What-Based Vs. How-Based
Which pairs of terms are more-or-less
synonymous?
Types of Use Cases III
Brief – 1 paragraph of main use case instance
Casual – Multiple paragraphs
each is a different use case instance (scenario)
Fully dressed – Full details
…of each step
…of each variation
…with preconditions and postconditions
(what are those?)
What is a precondition/postcondition for the UML editor?
See: Arlow and Neustadt Figs. 4.9-4.11, 4.13-4.15, 5,5-5.6,
5.8-5.9, 5.11-5.13, etc.; Larman table on pp. 50-53 (2nd ed.), 68-72 (3rd ed.)
A&N examples are short; reality can be over 1 or 2 pages
Which might one write first? Second? Third?
Example of Use Case –
brief format
Customer brings items to checkout
counter. Cashier records each item.
System displays each item & price, and
current total. Customer provides payment
somehow. System validates it, logs it,
and updates inventory data. System
prints receipt and customer waves a
cheery goodbye.
This “brief format” use case actually
contains several use case instances…
(e.g. L. p. 46 (2nd), 63 (3rd))
Casual Format for Use Cases
Like brief format, except:
Multiple paragraphs instead of one
Each paragraph covers a different scenario
One paragraph is the main success scenario
Other alternatives are in other paragraphs
Fully Dressed
Use Case
Has multiple scenarios
Has numbered steps
(Like casual format)
(Formal, not casual)
Has extra sections
Is fully detailed
http://api.ning.com/files/iaBxrA602vVRgcJuQTS1k*p088*NcQhp87iZ6VY1VFILwH
PGN*9ub*xBTW2VLoGSMcsTjf82l94E9JIaPA3MPR7rEEeG*h/dog.jpg
Examples
See several figures in Arlow and Neustadt
-
Note: you can have alternate subsections
-
Step 6, alternate step 6a, and 6b
Steps can have substeps
In Larman see Fig. p. 50 ff., 2nd ed.; p. 68 ff., 3rd ed.
Types of Use Cases IV:
1-Column Vs. 2-Column
Used for “fully dressed” use cases
2-Column (see e.g. L. p. 53, 2 ; p. 79, 3 ):
nd
Left column is for things outside actors do
Right column is for things the system does
Makes the interaction with the system clear
1-Column:
rd
More compact
Various other format options exist
More Parts of the Use Case
Main Success Scenario
“Happy path” typically with no branches
It’s what you hope will happen
Extension (to alternative paths)
All the (“not-so-happy”) branches off the main
success scenario
Can be several of them
steps numerically keyed to Basic Flow
(5a instead of 5, etc.)
longer than Basic Flow
The Fully Dressed Use Case
Primary actor – the main system user
Stakeholders and their interests –
A use case should describe all behaviors
needed to serve the stakeholder(s)
…that is what should be in a use case
More Use Case Sections…
Precondition –
something that must hold
…before a use case begins
Postcondition –
something that must hold
…after a use case ends
(Postcondition is also called
success guarantee)
Example?
More Parts of the Use Case
Special Requirements
Constraints that aren’t things the system does
Technology and Data Variations List
Requirements that are almost design-like in
flavor
We’re not designing yet
but when we can’t avoid it entirely…
…this is where these aspects go
…If Time Allows
List some use cases for the _______
sysetm or UML editor system
For one of them, list use case instances
Download