| |
| |
Preface | |
| |
| |
Acknowledgments | |
| |
| |
| |
Introduction | |
| |
| |
| |
What Is a Use Case (More or Less)? | |
| |
| |
| |
Buy Stocks over the Web | |
| |
| |
| |
Get Paid for Car Accident | |
| |
| |
| |
Register Arrival of a Box | |
| |
| |
| |
Your Use Case Is Not My Use Case | |
| |
| |
| |
Buy Something (Casual Version) | |
| |
| |
| |
Buy Something (Fully Dressed Version) | |
| |
| |
Steve Adolph: "Discovering" Requirements in New Territory | |
| |
| |
| |
Requirements and Use Cases | |
| |
| |
Use Cases as Project-Linking Structure | |
| |
| |
| |
The "Hub-and-Spoke" model of requirements | |
| |
| |
| |
When Use Cases Add Value | |
| |
| |
| |
Manage Your Energy | |
| |
| |
| |
Warm Up with a Usage Narrative | |
| |
| |
Usage Narative: Getting "Fast Cash" | |
| |
| |
| |
Exercises | |
| |
| |
| |
The Use Case Body Parts | |
| |
| |
| |
The Use Case as a Contract for Behavior | |
| |
| |
| |
Interactions between Actors with Goals | |
| |
| |
Actors Have Goals | |
| |
| |
| |
An actor with a goal calls on the responsibilities of another | |
| |
| |
Goals Can Fail | |
| |
| |
Interactions Are Compound | |
| |
| |
A Use Case Collects Scenarios | |
| |
| |
| |
Striped trousers: Scenarios succeed or fail | |
| |
| |
| |
The striped trousers showing subgoals | |
| |
| |
| |
Contract between Stakeholders with Interests | |
| |
| |
| |
The SuD serves the primary actor, protecting offstage stakeholders | |
| |
| |
| |
The Graphical Model | |
| |
| |
| |
Actors and stakeholders | |
| |
| |
| |
Behavior | |
| |
| |
| |
Use Case as responsibility invocation | |
| |
| |
| |
Interactions as composite | |
| |
| |
| |
Scope | |
| |
| |
| |
A Sample In/Out List | |
| |
| |
| |
Functional Scope | |
| |
| |
The Actor-Goal List | |
| |
| |
| |
A Sample Actor-Goal List | |
| |
| |
The Use Case Briefs | |
| |
| |
| |
Sample Use Case Briefs | |
| |
| |
| |
Design Scope | |
| |
| |
| |
Design scope can be any size | |
| |
| |
Using Graphical Icons to Highlight the Design Scope | |
| |
| |
Design Scope Examples | |
| |
| |
Enterprise-to-System Examples | |
| |
| |
| |
Add New Service (Enterprise) | |
| |
| |
| |
Add New Service (Acura) | |
| |
| |
Many Computers to One Application | |
| |
| |
| |
Enter and Update Requests (Joint System) | |
| |
| |
| |
Add New Service (into Acura) | |
| |
| |
| |
Note New Service Request (in BSSO) | |
| |
| |
| |
Update Service Request (in BSSO) | |
| |
| |
| |
Note Updated Request (in Acura) | |
| |
| |
| |
Use case diagrams for Acura-BSSO | |
| |
| |
| |
A combined use case diagram for Acura-BSSO | |
| |
| |
Nuts and Bolts Use Cases | |
| |
| |
| |
Serialize Access to a Resource | |
| |
| |
| |
Apply a Lock Conversion Policy | |
| |
| |
| |
Apply an Access Compatibility Policy | |
| |
| |
| |
Apply an Access Selection Policy | |
| |
| |
| |
Make Service Client Wait for Resource Access | |
| |
| |
| |
The Outermost Use Cases | |
| |
| |
| |
Using the Scope-Defining Work Products | |
| |
| |
| |
Exercises | |
| |
| |
| |
Stakeholders and Actors | |
| |
| |
| |
Stakeholders | |
| |
| |
| |
The Primary Actor | |
| |
| |
Why Primary Actors Are Unimportant (and Important) | |
| |
| |
Actors versus Roles | |
| |
| |
Characterizing the Primary Actors | |
| |
| |
| |
A Sample Actor Profile Table | |
| |
| |
| |
Supporting Actors | |
| |
| |
| |
The System Under Discussion | |
| |
| |
| |
Internal Actors and White-Box Use Cases | |
| |
| |
| |
Exercises | |
| |
| |
| |
Three Named Goal Levels | |
| |
| |
| |
Use case levels | |
| |
| |
| |
User Goals (Blue, Sea-Level) | |
| |
| |
Two Levels of Blue | |
| |
| |
| |
Summary Level (White, Cloud/Kite) | |
| |
| |
| |
Operate an Insurance Policy+ | |
| |
| |
The Outermost Use Cases Revisited | |
| |
| |
| |
Subfunctions (Indigo/Black, Underwater/Clam) | |
| |
| |
Summarizing Goal Levels | |
| |
| |
| |
Using Graphical Icons to Highlight Goal Levels | |
| |
| |
| |
Finding the Right Goal Level | |
| |
| |
Finding the User's Goal | |
| |
| |
Raising and Lowering Goal Levels | |
| |
| |
| |
Ask "why" to shift levels | |
| |
| |
| |
A Longer Writing Sample: "Handle a Claim" at Several Levels | |
| |
| |
| |
Handle a Claim (Business) | |
| |
| |
| |
Evaluate Work Comp Claim | |
| |
| |
| |
Handle a Claim (Systems) + | |
| |
| |
| |
Register a Loss | |
| |
| |
| |
Find a Whatever (Problem Statement) | |
| |
| |
| |
Exercises | |
| |
| |
| |
Preconditions, Triggers, and Guarantees | |
| |
| |
| |
Preconditions | |
| |
| |
| |
Minimal Guarantees | |
| |
| |
| |
Success Guarantee | |
| |
| |
| |
Triggers | |
| |
| |
| |
Exercises | |
| |
| |
| |
Scenarios and Steps | |
| |
| |
| |
The Main Success Scenario | |
| |
| |
The Common Surrounding Structure | |
| |
| |
The Scenario Body | |
| |
| |
| |
Action Steps | |
| |
| |
Guidelines | |
| |
| |
| |
Use Simple Grammar | |
| |
| |
| |
Show Clearly "Who Has the Ball" | |
| |
| |
| |
Write from a Bird's Eye View | |
| |
| |
| |
Show the Process Moving Forward | |
| |
| |
| |
Show the Actor's Intent, Not the Movements | |
| |
| |
| |
Include a "Reasonable" Set of Actions | |
| |
| |
| |
A transaction has four parts | |
| |
| |
| |
"Validate," Don't "Check Whether" | |
| |
| |
| |
Optionally Mention the Timing | |
| |
| |
| |
Idiom: "User Has System A Kick System B" | |
| |
| |
| |
Idiom: "Do Steps x-y until Condition" | |
| |
| |
To Number or Not to Number | |
| |
| |
| |
Exercises | |
| |
| |
| |
Extensions | |
| |
| |
| |
Extension Basics | |
| |
| |
| |
The Extension Conditions | |
| |
| |
Brainstorm All Conceivable Failures and Alternative Courses | |
| |
| |
| |
Make the Condition Say What Was Detected | |
| |
| |
Rationalize the Extensions List | |
| |
| |
Rollup Failures | |
| |
| |
| |
Extension Handling | |
| |
| |
| |
Indent Condition Handling | |
| |
| |
Failures within Failures | |
| |
| |
Creating a New Use Case from an Extension | |
| |
| |
| |
Exercises | |
| |
| |
| |
Technology and Data Variations | |
| |
| |
| |
Technology variations using specialization in UML | |
| |
| |
| |
Linking Use Cases | |
| |
| |
| |
Sub Use Cases | |
| |
| |
| |
Extension Use Cases | |
| |
| |
| |
UML diagram of extension use cases | |
| |
| |
When to Use Extension Use Cases | |
| |
| |
| |
Exercises | |
| |
| |
| |
Use Case Formats | |
| |
| |
| |
Formats to Choose From | |
| |
| |
Fully Dressed | |
| |
| |
| |
Fully Dressed Use Case Template [name] | |
| |
| |
Casual | |
| |
| |
| |
Actually Login (Casual Version) | |
| |
| |
One-Column Table | |
| |
| |
| |
One-Column Table Format of a Use Case | |
| |
| |
Two-Column Table | |
| |
| |
| |
Two-Column Table | |
| |
| |
RUP Style | |
| |
| |
| |
Register for Courses | |
| |
| |
If-Statement Style | |
| |
| |
Occam Style | |
| |
| |
Diagram Style | |
| |
| |
The UML Use Case Diagram | |
| |
| |
| |
Forces Affecting Use Case Writing Styles | |
| |
| |
Consistency | |
| |
| |
Complexity | |
| |
| |
| |
Standards for Five Project Types | |
| |
| |
For Requirements Elicitation | |
| |
| |
| |
Elicitation Template--Oble a New Biscum | |
| |
| |
For Business Process Modeling | |
| |
| |
| |
Business Process Template--Symp a Carstromming | |
| |
| |
For Sizing the Requirements | |
| |
| |
| |
Sizing Template--Burble the Tramling | |
| |
| |
For a Short, High-Pressure Project | |
| |
| |
| |
High-Pressure Template: Kree a Ranfath | |
| |
| |
For Detailed Functional Requirements | |
| |
| |
| |
Use Case Name--Nathorize a Permion | |
| |
| |
| |
Conclusion | |
| |
| |
| |
Exercise | |
| |
| |
| |
Frequently Discussed Topics | |
| |
| |
| |
When Are We Done? | |
| |
| |
On Being Done | |
| |
| |
| |
Scaling Up to Many Use Cases | |
| |
| |
Say Less about Each One (Low-Precision Representation) | |
| |
| |
Create Clusters of Use Cases | |
| |
| |
| |
CRUD and Parameterized Use Cases | |
| |
| |
| |
CRUD Use Cases | |
| |
| |
| |
Manage Reports | |
| |
| |
| |
Save Report | |
| |
| |
| |
Parameterized Use Cases | |
| |
| |
| |
Business Process Modeling | |
| |
| |
| |
Modeling versus Designing | |
| |
| |
Work from the Core Business | |
| |
| |
| |
Core business black box | |
| |
| |
| |
New business design in white box | |
| |
| |
Work from Business Process to Technology | |
| |
| |
| |
New business design in white box (again) | |
| |
| |
| |
New business process in black-box system use cases | |
| |
| |
Work from Technology to Business Process | |
| |
| |
| |
Linking Business and System Use Cases | |
| |
| |
Rusty Walters: Business Modeling and System Requirements | |
| |
| |
| |
The Missing Requirements | |
| |
| |
| |
Precision in Data Requirements | |
| |
| |
| |
Cross-linking from Use Cases to Other Requirements | |
| |
| |
| |
Recap of Figure 1.1, "Hub-and-Spoke" model of requirements | |
| |
| |
| |
Use Cases in the Overall Process | |
| |
| |
| |
Use Cases in Project Organization | |
| |
| |
Organize by Use Case Titles | |
| |
| |
| |
Sample Planning Table | |
| |
| |
Handle Use Cases Crossing Releases | |
| |
| |
Deliver Complete Scenarios | |
| |
| |
| |
Use Cases to Task or Feature Lists | |
| |
| |
| |
Capture Trade-In | |
| |
| |
| |
Work List for Capture Trade-In | |
| |
| |
| |
Use Cases to Design | |
| |
| |
A Special Note to Object-Oriented Designers | |
| |
| |
| |
Use Cases to UI Design | |
| |
| |
| |
Use Cases to Test Cases | |
| |
| |
| |
Order Goods, Generate Invoice (Testing Example) | |
| |
| |
| |
Main Success Scenario Tests (Good Credit Risk) | |
| |
| |
| |
Main Success Scenario Tests (Bad Credit Risk) | |
| |
| |
| |
The Actual Writing | |
| |
| |
A Branch-and-Join Process | |
| |
| |
Time Required per Use Case | |
| |
| |
Collecting Use Cases from Large Groups | |
| |
| |
Andy Kraus: Collecting Use Cases from a Large, Diverse Lay Group | |
| |
| |
| |
Use Case Briefs and Extreme Programming | |
| |
| |
| |
Mistakes Fixed | |
| |
| |
| |
No System | |
| |
| |
| |
No Primary Actor | |
| |
| |
| |
Too Many User Interface Details | |
| |
| |
| |
Very Low Goal Levels | |
| |
| |
| |
Purpose and Content Not Aligned | |
| |
| |
| |
Advanced Example of Too Much UI | |
| |
| |
| |
Research a Solution--Before | |
| |
| |
| |
Research Possible Solutions--After | |
| |
| |
| |
Reminders for the Busy | |
| |
| |
| |
Reminders for Each Use Case | |
| |
| |
| |
A Use Case Is a Prose Essay | |
| |
| |
| |
Make the Use Case Easy to Read | |
| |
| |
| |
Just One Sentence Form | |
| |
| |
| |
"Include" Sub Use Cases | |
| |
| |
| |
Who Has the Ball? | |
| |
| |
| |
Get the Goal Level Right | |
| |
| |
| |
Ask "why" to shift levels | |
| |
| |
| |
Keep the GUI Out | |
| |
| |
| |
Two Endings | |
| |
| |
| |
Stakeholders Need Guarantees | |
| |
| |
| |
Preconditions | |
| |
| |
| |
Pass/Fail Tests for One Use Case | |
| |
| |
| |
Pass/Fail Tests for One Use Case | |
| |
| |
| |
Reminders for the Use Case Set | |
| |
| |
| |
An Ever-Unfolding Story | |
| |
| |
| |
Both Corporate Scope and System Scope | |
| |
| |
| |
Core Values and Variations | |
| |
| |
| |
Quality Questions across the Use Case Set | |
| |
| |
| |
Reminders for Working on the Use Cases | |
| |
| |
| |
It's Just Chapter 3 (Where's Chapter 4?) | |
| |
| |
| |
Work Breadth First | |
| |
| |
| |
Work expands with precision | |
| |
| |
| |
The 12-Step Recipe | |
| |
| |
| |
Know the Cost of Mistakes | |
| |
| |
| |
Blue Jeans Preferred | |
| |
| |
| |
Handle Failures | |
| |
| |
| |
Job Titles Sooner and Later | |
| |
| |
| |
Actors Play Roles | |
| |
| |
| |
The Great Drawing Hoax | |
| |
| |
| |
"Mommy, I want to go home." | |
| |
| |
| |
Context diagram in ellipse figure form | |
| |
| |
| |
Actor-Goal List for Context Diagram | |
| |
| |
| |
The Great Tool Debate | |
| |
| |
| |
Project Planning Using Titles and Briefs | |
| |
| |
Appendices | |
| |
| |
| |
Use Cases in UML | |
| |
| |
| |
Ellipses and Stick Figures | |
| |
| |
| |
UML's Includes Relation | |
| |
| |
| |
Drawing Includes | |
| |
| |
| |
Draw Higher Goals Higher | |
| |
| |
| |
UML's Extends Relation | |
| |
| |
| |
Drawing Extends | |
| |
| |
| |
Draw Extending Use Cases Lower | |
| |
| |
| |
Use Different Arrow Shapes | |
| |
| |
Correct Use of Extends | |
| |
| |
| |
Three interrupting use cases extending a base use case | |
| |
| |
Extension Points | |
| |
| |
| |
UML's Generalizes Relations | |
| |
| |
Correct Use of Generalizes | |
| |
| |
| |
Drawing Generalizes | |
| |
| |
| |
Draw General Goals Higher | |
| |
| |
Hazards of Generalizes | |
| |
| |
| |
Hazardous generalization--closing a big deal | |
| |
| |
| |
Correctly closing a big deal | |
| |
| |
| |
Subordinate versus Sub Use Cases | |
| |
| |
| |
Drawing Use Case Diagrams | |
| |
| |
| |
User Goals in a Context Diagram | |
| |
| |
| |
Supporting Actors on the Right | |
| |
| |
| |
Write Text-based Use Cases Instead | |
| |
| |
| |
Answers to (Some) Exercises | |
| |
| |
Chapter 3, page 51 | |
| |
| |
Exercise 3.1 | |
| |
| |
Exercise 3.2 | |
| |
| |
| |
Design scopes for the ATM | |
| |
| |
Chapter 4, page 60 | |
| |
| |
Exercise 4.2 | |
| |
| |
Exercise 4.3 | |
| |
| |
Chapter 5, page 79 | |
| |
| |
Exercise 5.1 | |
| |
| |
Exercise 5.2 | |
| |
| |
Chapter 6, page 85 | |
| |
| |
Exercise 6.1 | |
| |
| |
Exercise 6.4 | |
| |
| |
Chapter 7, page 98 | |
| |
| |
Exercise 7.1 | |
| |
| |
Exercise 7.2 | |
| |
| |
Exercise 7.4 | |
| |
| |
| |
Use the Order Processing System | |
| |
| |
Chapter 8, page 110 | |
| |
| |
Exercise 8.1 | |
| |
| |
Exercise 8.5 | |
| |
| |
| |
Buy Stocks Over the Web | |
| |
| |
Chapter 11, page 138 | |
| |
| |
Exercise 11.1 | |
| |
| |
| |
Perform Clean Spark Plugs Service | |
| |
| |
| |
Glossary | |
| |
| |
Main Terms | |
| |
| |
Use Case Types | |
| |
| |
Diagrams | |
| |
| |
| |
Readings | |
| |
| |
Books Referenced in the Text | |
| |
| |
Articles Referenced in the Text | |
| |
| |
Useful Online Resources | |
| |
| |
Index | |