ATM USe Case Samples
ATM USe Case Samples
Hadar Ziv
[email protected]
In cooperation with:
Debra Richardson Thomas Alspaugh Thomas Standish And the ROSATEA group at UCI
Presentation Outline
Bank customer
Withdraw money
Kiosk User
Order tickets
Actor
Use Case
Actor
Use Case
Hadar Ziv / [email protected]
The most important role of a use-case model is to communicate The most important role of a use-case model is to communicate the systems functionality and behavior to the customer or end user the systems functionality and behavior to the customer or end user
Hadar Ziv / [email protected]
Bank Customer
Bank System
Scenarios
Describe typical uses of the system as narrative Correspond to a single path or flow through a use case A use case is an abstraction or container of a set of related scenarios
If you dont fully understand the ins and outs of use cases
It is easy to misuse them or turn them into abuse cases
Ellen Gottesdiener
Top Ten Ways Project Teams Misuse Use Cases and How to Correct Them. The Rational Edge, June 2002 (Part I), July 2002 (Part II).
Martin Fowler
Use and Abuse Cases. Distributed Computing, April 1998.
Doug Rosenberg
Top Ten Use Case Mistakes. Software Development, February 2001.
Susan Lilly
How to Avoid Use Case Pitfalls. Software Development, January 2000.
Include nonfunctional requirements and UI details in your usecase text Use lots of extends and includes in your initial use-case diagrams
This allows you to decompose use cases into itty bitty units of work
Dont involve subject matter experts in creating, reviewing, or verifying use cases
Theyll only raise questions!
Write your first and only use case draft in excruciating detail
Why bother iterating with end users when they dont even know what they want
ATM example
High-level stakeholder goals
Increase the banks business success Increase market share Provide greater access to banking services
Low-level goals
Terminate a users session Authenticate a users ATM card and PIN Withdraw $200 cash from users account
increase productivity
invest in automation
automate human teller banking services using Automated Teller Machines (or ATMs)
Scenarios
A sequence of events that corresponds to a purposeful use of a system Purposeful uses are characterized by associated goals
Episodes
Subsequences of events contained within a surrounding scenario Correspond to the pursuit of subgoals Example episodes: Login, Logout, Authenticate
Software requirements
Involve many goals at many different levels of abstraction/detail
provide goals prevent goals
Choose a Transaction
Withdraw Cash
Make Deposit
Find Balance
Log Off
1. The customer inserts an ATM card into an ATM. 2. The ATM presents a choice of languages. 3. The customer selects English. 4. The ATM prompts for a PIN. 5. The customer enters the PIN for his/her ATM card.
1. The customer selects "Withdraw cash". 2. The ATM presents the accounts from which the customer can withdraw. 3. The customer selects "Checking". 4. The ATM prompts for an amount to withdraw. 5. The customer enters $200. 6. The ATM dispenses the requested amount of cash. 7. The ATM prints a receipt. 8. The ATM presents a choice of transactions the customer may perform.
Hadar Ziv / [email protected]
{1}
{2,3}
{4,5}
{14,15}
{16,17}
{6,7}
{8,9}
{10,11}
{12,13}
Allow users who have been granted access to perform authorized transactions OR
make deposit D GOAL G4 credit deposit D to balance B B B + D, tell customer when B is available for withdrawal
W Balance B
prevent concerns
A requirements-level usage-scenario
Will be written as a collection of episodes Will be designed to address multiple concerns Will be implemented using regular code + aspects for the cross cutting concerns
Hadar Ziv / [email protected]
According to Jacobson,
All use cases are extensions to the null system
AOP allows us to
Separate use case extensions all the way down to code Compose back extensions before execution
Be aware of top ten lists of use case mistakes, misuse, and abuse cases
Beware each article has a different list! Beware articles provide different, sometimes conflicting advice!