The document discusses using use cases for agile analysis. It begins with an analogy comparing use cases to the game Pong, then provides an overview of writing use cases, including identifying actors and scenarios. It also covers adapting use cases for agile projects by linking them to product backlogs and using them for iteration planning. Automating acceptance testing with use case scenarios is presented as a way to transition use cases to agile. Resources for learning more about use cases and testing automation are provided.
3. How do we play use case?
1. System sends puck toward player.
2. Player moves paddle to meet puck.
3. Puck misses paddle.
4. System increments score for other player.
5. System resets acceleration factor.
6. Round repeats for other player.
4. How do we play use case?
1. System sends puck toward player.
2. Player moves paddle to meet puck.
3. Puck misses paddle.
4. System increments score for other player.
5. System resets acceleration factor.
6. Round repeats for other player.
5. How do we play use case?
1. System sends puck toward player.
2. Player moves paddle to meet puck.
3. Puck misses paddle.
4. System increments score for other player.
5. System resets acceleration factor.
6. Round repeats for other player.
6. How do we play use case?
1. System sends puck toward player.
2. Player moves paddle to meet puck.
3. Puck misses paddle.
4. System increments score for other player.
5. System resets acceleration factor.
6. Round repeats for other player.
7. How do we play use case?
1. System sends puck toward player.
2. Player moves paddle to meet puck.
3. Puck misses paddle.
4. System increments score for other player.
5. System resets acceleration factor.
6. Round repeats for other player.
8. How do we play use case?
1. System sends puck toward player.
2. Player moves paddle to meet puck.
3. Puck misses paddle.
4. System increments score for other player.
5. System resets acceleration factor.
6. Round repeats for other player.
9. How do we play use case?
1. System sends puck toward player.
2. Player moves paddle to meet puck.
3. Puck misses paddle.
4. System increments score for other player.
5. System resets acceleration factor.
6. Round repeats for other player.
10. Is that all there is?
2a Puck trajectory is too steep
2b Puck angles for a corner shot
3a Player returns puck
3b Puck intersects center segment
3c Puck intersects outer segment
5a Player wins
11. Is that all there is?
2a Puck trajectory is too steep
2b Puck angles for a corner shot
3a Player returns puck
3b Puck intersects center segment
3c Puck intersects outer segment
5a Player wins
12. Is that all there is?
2a Puck trajectory is too steep
2b Puck angles for a corner shot
3a Player returns puck
3b Puck intersects center segment
3c Puck intersects outer segment
5a Player wins
13. Is that all there is?
2a Puck trajectory is too steep
2b Puck angles for a corner shot
3a Player returns puck
3b Puck intersects center segment
3c Puck intersects outer segment
5a Player wins
14. Is that all there is?
2a Puck trajectory is too steep
2b Puck angles for a corner shot
3a Player returns puck
3b Puck intersects center segment
3c Puck intersects outer segment
5a Player wins
15. Is that all there is?
2a Puck trajectory is too steep
2b Puck angles for a corner shot
3a Player returns puck
3b Puck intersects center segment
3c Puck intersects outer segment
5a Player wins
16. How do we win?
2a Puck trajectory is too steep
2b Puck angles for a corner shot
3a Player returns puck
3b Puck intersects center segment
3c Puck intersects outer segment
5a Player wins
17. How do we win?
2a Puck trajectory is too steep
2b Puck angles for a corner shot
3a Player returns puck
3b Puck intersects center segment
3c Puck intersects outer segment
5a Player wins
1. Score exceeds the maximum number of points.
2. System presents game over banner.
3. End.
20. What’s wrong with this story?
Pong is a two-dimensional sports game which
simulates table tennis.
The player controls an in-game paddle by moving it
vertically across the left side of the screen, and can
compete against either a computer controlled opponent
or another player controlling a second paddle on the
opposing side.
Players use the paddles to hit a ball back and forth.
The aim is for a player to earn more points than the
opponent; points are earned when one fails to return the
ball to the other.
21. What’s wrong with this story?
Pong is a two-dimensional sports game which simulates
table tennis.
The player controls an in-game paddle by moving it
vertically across the left side of the screen, and can
compete against either a computer controlled opponent
or another player controlling a second paddle on the
opposing side.
Players use the paddles to hit a ball back and forth.
The aim is for a player to earn more points than the
opponent; points are earned when one fails to return the
ball to the other.
22. What’s wrong with this story?
Pong is a two-dimensional sports game which simulates
table tennis.
The player controls an in-game paddle by moving it
vertically across the left side of the screen, and can
compete against either a computer controlled opponent
or another player controlling a second paddle on the
opposing side.
Players use the paddles to hit a ball back and forth.
The aim is for a player to earn more points than the
opponent; points are earned when one fails to return the
ball to the other.
23. What’s wrong with this story?
Pong is a two-dimensional sports game which simulates
table tennis.
The player controls an in-game paddle by moving it
vertically across the left side of the screen, and can
compete against either a computer controlled opponent
or another player controlling a second paddle on the
opposing side.
Players use the paddles to hit a ball back and forth.
The aim is for a player to earn more points than the
opponent; points are earned when one fails to return the
ball to the other.
25. Agile Analysis with Use Cases
A mainstay of conventional requirements
gathering, use cases can ease the
transition to agile methodologies.
In this practical program, we explore:
how to write uses cases
how to adapt uses cases to agile projects
how to automate acceptance testing with use
cases
27. About Ted Husted
Co-author of JUnit in Action (1st Edition)
Speaker at Ajax Experience, ApacheCon
Business Analyst, NimbleUser
Member, International Institute for
Business Analysis (IIBA)
Executive VP, Rochester NY IIBA
twitter.com/TedHusted
28. Do you take questions?
Slides Available at slideshare.net / ted.husted
29. How to write use cases
The
Why, What, Where, When, Who, and
How
of use cases
34. What? Main Scenario
First Draft Second Draft
1. System sends puck 1. System sends puck
toward player. toward player.
2. Player moves paddle to 2. Player moves paddle to
meet puck. meet puck.
3. Puck intersects paddle 3. Puck misses paddle.
4. … 4. …
38. What? Annotations
1a Browser does not provide cookie
1. System redirects to login page and passes
original URL through a parameter
2. System authenticates user (UC-4)
3. Return at Step 1
39. What? Annotations
1a Browser does not provide cookie
1. System redirects to login page and passes
original URL through a parameter
2. System authenticates user (UC-4)
3. Return at Step 1
40. What? Annotations
1a Browser does not provide cookie
1. System redirects to login page and passes
original URL through a parameter
https://www.domain.org/sso/Signon.aspx?redirectUrl=default.aspx
2. System authenticates user (UC-4)
3. Return at Step 1
41. What? Annotations
Extensions
1a Browser does not provide cookie
1. System redirects to login page and passes
original URL through a parameter
2. System authenticates user (UC-4)
3. Return at Step 1
Annotations
1a1 Example URL: https://www.domain.org/sso/Signon.aspx?
redirectUrl=default.aspx
50. How? Use Case Workflow
1. Identify the actors
2. Identify the use cases
3. Identify actor/use case relationships
4. Outline use cases
5. Refine use cases
51. How? Use Case Workflow
1. Identify the actors
2. Identify the use cases
3. Identify actor/use case relationships
4. Outline use cases
5. Refine use cases
52. How? Use Case Workflow
1. Identify the actors
2. Identify the use cases
3. Identify actor/use case relationships
4. Outline use cases
5. Refine use cases
53. How? Use Case Workflow
1. Identify the actors
2. Identify the use cases
3. Identify actor/use case relationships
4. Outline use cases
5. Refine use cases
54. How? Use Case Workflow
1. Identify the actors
2. Identify the use cases
3. Identify actor/use case relationships
4. Outline use cases
5. Refine use cases
55. How? Use Case Workflow
1. Identify the actors
2. Identify the use cases
3. Identify actor/use case relationships
4. Outline use cases
5. Refine use cases
56. How? Use Case Template
1. Name 1. Pre-conditions
2. Brief description 2. Post-conditions
3. Actors 3. Other stakeholders
4. Main Scenario 4. System/sub-system
5. Extensions 5. Special requirements
57. How? Use Case Template
1. Name 1. Pre-conditions
2. Brief description 2. Post-conditions
3. Actors 3. Other stakeholders
4. Main Scenario 4. System/sub-system
5. Extensions 5. Special requirements
58. How? Right-size templates
1. Name
2. Brief description
3. Actors
4. Main Scenario
5. Extensions
6. Pre-conditions
7. Post-Conditions
8. Other stakeholders
9. System/sub-system
10. Special requirements
68. Adapt? Testing
Open Signin Page
Signin page: http://domain.org/sso/
Enter credentials
Username: mg
Password: va123123
Process Succeeds
System Creates Cookie
System Redirects
69. Adapt? Testing
Open Signin Page
Signin page: http://domain.org/sso/
Enter credentials
Username: mg
Password: va123123
Process Succeeds
System Creates Cookie
System Redirects
70. Adapt? Testing
Open Signin Page
Signin page: http://domain.org/sso/
Enter credentials
Username: mg
Password: va123123
Process Succeeds
System Creates Cookie
System Redirects
71. Adapt? Testing
Open Signin Page
Signin page: http://domain.org/sso/
Enter credentials
Username: mg
Password: va123123
Process Succeeds
System Creates Cookie
System Redirects
72. Adapt? Testing
Open Signin Page
Signin page: http://domain.org/sso/
Enter credentials
Username: mg
Password: va123123
Process Succeeds
System Creates Cookie
System Redirects
79. Inventor of Pong, Alan Alcorn
Disclaimer
Use cases and Pong can both make you cross-eyed
Alan Alcorn is not Ted’s cousin,
but he did invent Pong,
though without the help of use cases.