Mark ShackletteUniversity of Chicago CS Department
Use Case Analysis: Purpose and Implementation
http://people.cs.uchicago.edu/~mark/51023/Ucstyleg.html
What’s required to build it?
How should it behave?
Who’s involved? (People, systems and processes)
We’re Building A System
User Experience Driven
Design for the user
Talk about behavior in user’s terms
Think through all of the behavior you can
Why Consider Use Cases?
Everyone can understand plain language
Agreements will stick better
Fewer things fall through the cracks
Prevents bugs
Guides architectural decisions
Use Case Story
Use Case Diagram
UX Diagram
Wireframe
Design Comp
Development Code
Production
Easy to Change
Hard to Change
Answer Four Questions
1. Who are the actors and what are their roles?
2. What’s the purpose of this feature?
3. What are the use cases?
4. How do the use cases relate to each other?
A Use Case Diagram
"Use case restaurant model" by Kishorekumar 62. Licensed under CC BY-SA 3.0 via Wikimedia Commons - http://commons.wikimedia.org/wiki/File:Use_case_restaurant_model.svg#/media/File:Use_case_restaurant_model.svg
1. Who are the actors and what are their
roles?User - exchange money for services
Merchant - exchange services for money
Platform Owner - provide the platform for money
SaaS Platform (The App) - make the exchange possible
CC Service (Stripe) - Verify and charge card, store data
Credit Card Company - Transfer funds if available
2. What’s the purpose of this feature?
Take money from the user
Give it to the merchantand SaaS platform owner
Sad Paths
User fills out the credit card form with invalid information
Credit card is rejected
Stripe accepts card on client but server charge fails
Evil Paths
Hacker breaks into server and steals data and system logs
User figures out how to change price in hidden form field
Hacker launches CSRF attack and creates bogus charges
Weird Paths
Stripe server goes down
JavaScript is disabled, form gets submitted to SaaS server
Connection to Stripe is interrupted
Stories!As a user, when I complete the form with
invalid information and click submit, I should see the invalid inputs become highlighted, and I should see validation errors telling me what went wrong so that I can correct my error and
successfully buy products.
Stories!
…and 11 others
As a user, when I complete the form with invalid information and click submit, I should
see the invalid inputs become highlighted, and I should see validation errors telling me what went wrong so that I can correct my error and
successfully buy products.
Goals
Design with the user experience in mind
Think about how the feature should behave
Agree on the answer to “what are we building?”
Benefits
Gives all the stakeholders a voice
Uncovers edge cases early
Low cost way of changing a feature
Process
1. Who are the actors and what are their roles?
2. What’s the purpose of this feature?
3. What are the use cases?
4. How do the use cases relate to each other?
Answer these four questions:
Ben Lewis
@fluxusfrequency
fluxusfrequency.github.io
github.com/fluxusfrequency