Agile Analysis with Use Cases
        Balancing Simplicity with Utility




Presented by Ted Husted
NimbleUser
twitter.com...
How is Pong like a Use Case?
How do we play use case?
1. System sends puck toward player.
2. Player moves paddle to meet puck.
3. Puck misses paddle.
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...
How do we play use case?
1. System sends puck toward player.
2. Player moves paddle to meet puck.
3. Puck misses paddle.
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...
How do we play use case?
1. System sends puck toward player.
2. Player moves paddle to meet puck.
3. Puck misses paddle.
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...
How do we play use case?
1. System sends puck toward player.
2. Player moves paddle to meet puck.
3. Puck misses paddle.
4...
Is that all there is?
2a Puck trajectory is too steep
2b Puck angles for a corner shot
3a Player returns puck
3b Puck inte...
Is that all there is?
2a Puck trajectory is too steep
2b Puck angles for a corner shot
3a Player returns puck
3b Puck inte...
Is that all there is?
2a Puck trajectory is too steep
2b Puck angles for a corner shot
3a Player returns puck
3b Puck inte...
Is that all there is?
2a Puck trajectory is too steep
2b Puck angles for a corner shot
3a Player returns puck
3b Puck inte...
Is that all there is?
2a Puck trajectory is too steep
2b Puck angles for a corner shot
3a Player returns puck
3b Puck inte...
Is that all there is?
2a Puck trajectory is too steep
2b Puck angles for a corner shot
3a Player returns puck
3b Puck inte...
How do we win?
2a Puck trajectory is too steep
2b Puck angles for a corner shot
3a Player returns puck
3b Puck intersects ...
How do we win?
2a Puck trajectory is too steep
2b Puck angles for a corner shot
3a Player returns puck
3b Puck intersects ...
What about diagrams?
How is a user story different?
What’s wrong with this story?
Pong is a two-dimensional sports game which
simulates table tennis.
The player controls an i...
What’s wrong with this story?
Pong is a two-dimensional sports game which simulates
table tennis.
The player controls an i...
What’s wrong with this story?
Pong is a two-dimensional sports game which simulates
table tennis.
The player controls an i...
What’s wrong with this story?
Pong is a two-dimensional sports game which simulates
table tennis.
The player controls an i...
What can go wrong with this story?
Agile Analysis with Use Cases
  A mainstay of conventional requirements
  gathering, use cases can ease the
  transition t...
What’s our agenda?
About Ted Husted
  Co-author of JUnit in Action (1st Edition)
  Speaker at Ajax Experience, ApacheCon
  Business Analyst, ...
Do you take questions?




Slides Available at slideshare.net / ted.husted
How to write use cases
               The
Why, What, Where, When, Who, and
             How
           of use cases
Why? Actors Interact
Why? Change Happens
Why? Systems Adapt
What? Main Scenario
What? Main Scenario

First Draft                  Second Draft
 1. System sends puck        1. System sends puck
    towar...
What? Extensions
What? Annotations
What? Annotations
What? Annotations
1a Browser does not provide cookie
1. System redirects to login page and passes
   original URL through ...
What? Annotations
1a Browser does not provide cookie
1. System redirects to login page and passes
   original URL through ...
What? Annotations
1a Browser does not provide cookie
1. System redirects to login page and passes
   original URL through ...
What? Annotations
Extensions
  1a Browser does not provide cookie
  1. System redirects to login page and passes
     orig...
Where? Can use cases do it all?
Where? Requirements Outline
1. Vision and Scope Document
2. Use Cases
3. Software Requirements Specification
4. Business R...
Where? Requirements Outline
1. Findings
2. Requirements
3. Use Cases
4. Technical Specification
When? Requirements Analysis
When? Organize and Allocate
Who? You …
Who? Them …
Who? Us!
How? Use Case Workflow
1. Identify the actors
2. Identify the use cases
3. Identify actor/use case relationships
4. Outlin...
How? Use Case Workflow
1. Identify the actors
2. Identify the use cases
3. Identify actor/use case relationships
4. Outlin...
How? Use Case Workflow
1. Identify the actors
2. Identify the use cases
3. Identify actor/use case relationships
4. Outlin...
How? Use Case Workflow
1. Identify the actors
2. Identify the use cases
3. Identify actor/use case relationships
4. Outlin...
How? Use Case Workflow
1. Identify the actors
2. Identify the use cases
3. Identify actor/use case relationships
4. Outlin...
How? Use Case Workflow
1. Identify the actors
2. Identify the use cases
3. Identify actor/use case relationships
4. Outlin...
How? Use Case Template
1. Name                1. Pre-conditions
2. Brief description   2. Post-conditions
3. Actors       ...
How? Use Case Template
1. Name                1. Pre-conditions
2. Brief description   2. Post-conditions
3. Actors       ...
How? Right-size templates
             1.   Name
             2.   Brief description
             3.   Actors
            ...
Adapt?
Adapt? Agile
Adapt? Agile
Adapt? Backlog
1. Name                1. Pre-conditions
2. Brief description   2. Post-conditions
3. Actors              3...
Adapt? Iteration Planning
1. Name                1. Pre-conditions
2. Brief description   2. Post-conditions
3. Actors    ...
Agile? Backlog Pruning
1. Name                1. Pre-conditions
2. Brief description   2. Post-conditions
3. Actors       ...
Agile? Epic Iteration
1. Name                1. Pre-conditions
2. Brief description   2. Post-conditions
3. Actors        ...
Adapt? Training Materials
Adapt? Quality Assurance
Adapt? Testing
Open Signin Page
  Signin page: http://domain.org/sso/
Enter credentials
  Username: mg
  Password: va12312...
Adapt? Testing
Open Signin Page
  Signin page: http://domain.org/sso/
Enter credentials
  Username: mg
  Password: va12312...
Adapt? Testing
Open Signin Page
  Signin page: http://domain.org/sso/
Enter credentials
  Username: mg
  Password: va12312...
Adapt? Testing
Open Signin Page
  Signin page: http://domain.org/sso/
Enter credentials
  Username: mg
  Password: va12312...
Adapt? Testing
Open Signin Page
  Signin page: http://domain.org/sso/
Enter credentials
  Username: mg
  Password: va12312...
Automate?
Automate? Testing
Automate? Testing
Adapt? Testing




http://seleniumhq.org/
Resources




http://www.rose-hulman.edu/class/csse/csse371/csse371-2007-2008/Lectures/usecases.ppt
Any questions?




Slides Available at slideshare.net / ted.husted
Inventor of Pong, Alan Alcorn




                                                               Disclaimer
Use cases and ...
Upcoming SlideShare
Loading in …5
×

Agile Analysis with Use Cases: Balancing Utility with Simplicity

2,342 views

Published on

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

Ted Husted is a Rochester NY Business Analyst and member of the IIBA. In 2008, he joined NimbleUser, a .NET integrator specializing in non-profits and associations.

Ted is co-author of JUnit in Action and a regular speaker at the Ajax Experience, ApacheCon, and various user groups.

Published in: Technology, Sports
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,342
On SlideShare
0
From Embeds
0
Number of Embeds
17
Actions
Shares
0
Downloads
59
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Agile Analysis with Use Cases: Balancing Utility with Simplicity

  1. 1. Agile Analysis with Use Cases Balancing Simplicity with Utility Presented by Ted Husted NimbleUser twitter.com/TedHusted
  2. 2. How is Pong like a Use Case?
  3. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.
  18. 18. What about diagrams?
  19. 19. How is a user story different?
  20. 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. 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. 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. 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.
  24. 24. What can go wrong with this story?
  25. 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
  26. 26. What’s our agenda?
  27. 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. 28. Do you take questions? Slides Available at slideshare.net / ted.husted
  29. 29. How to write use cases The Why, What, Where, When, Who, and How of use cases
  30. 30. Why? Actors Interact
  31. 31. Why? Change Happens
  32. 32. Why? Systems Adapt
  33. 33. What? Main Scenario
  34. 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. …
  35. 35. What? Extensions
  36. 36. What? Annotations
  37. 37. What? Annotations
  38. 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. 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. 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. 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
  42. 42. Where? Can use cases do it all?
  43. 43. Where? Requirements Outline 1. Vision and Scope Document 2. Use Cases 3. Software Requirements Specification 4. Business Rules
  44. 44. Where? Requirements Outline 1. Findings 2. Requirements 3. Use Cases 4. Technical Specification
  45. 45. When? Requirements Analysis
  46. 46. When? Organize and Allocate
  47. 47. Who? You …
  48. 48. Who? Them …
  49. 49. Who? Us!
  50. 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. 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. 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. 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. 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. 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. 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. 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. 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
  59. 59. Adapt?
  60. 60. Adapt? Agile
  61. 61. Adapt? Agile
  62. 62. Adapt? Backlog 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
  63. 63. Adapt? Iteration Planning 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
  64. 64. Agile? Backlog Pruning 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
  65. 65. Agile? Epic Iteration 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
  66. 66. Adapt? Training Materials
  67. 67. Adapt? Quality Assurance
  68. 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. 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. 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. 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. 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
  73. 73. Automate?
  74. 74. Automate? Testing
  75. 75. Automate? Testing
  76. 76. Adapt? Testing http://seleniumhq.org/
  77. 77. Resources http://www.rose-hulman.edu/class/csse/csse371/csse371-2007-2008/Lectures/usecases.ppt
  78. 78. Any questions? Slides Available at slideshare.net / ted.husted
  79. 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.

×