Use cases are a simple, straightforward -- yet very powerful -- way to express the functional requirements (or behaviors) of a system. Use cases have gained widespread acceptance because they make requirements less ambiguous by specifying exactly when and under what conditions certain behaviors occur. As a result, those who effective employ use cases to model their systems can better deliver projects on time, within budget, and with fewer defects. However, use case modeling is not that easy; it is a practice that comes with characteristics that can impact a project. In this new book, the authors allow you to benefit from their considerable experience making use cases work well in a number of different environments. With the advice, tips, and tricks presented herein, the reader will be further along the path to understanding and exploiting the power of use cases, and ultimately constructing better applications. In writing this book, the authors have worked closely with use case founder Ivar Jacobson, and the book is unique in that it presents a Rational Software Corporation-centric examination of this topic.
Table of Contents
(NOTE: Each chapter concludes with a Summary.)
Preface: Why Bother with Use Cases?
What Are “Use Cases” All About?
Who Should Be Interested in Use Cases?
How to Read This Book.
I. GETTING STARTED WITH USE CASE-MODELING. 1. A Brief Introduction to Use-Case Modeling.
Actors and Use Cases.
The Relationship Between Use Cases and Requirements.
Types of Requirements.
Functional and Nonfunctional Requirements.
The Role of Use Cases.
Use Cases Place Software Requirements in Context.
To “Use Case” or not to “Use Case”.
When Are Use Cases Useful?
Use Cases Provide a Conceptual Model of the System.
Use Cases Describe How the System Is Used and What It Does for Its Stakeholders.
Does Everything the System Does Have to Be Described in a Use Case?
General Principles of Use-Case Modeling.
Use Cases Do Not Exist In Isolation.
Use Cases Are a Synthetic Rather Than an Analytic Technique.
Rules of Thumb.2. Fundamentals of Use Case Modeling.
The Use-Case Model.
The Basic Building Blocks of a Use-Case Model.
Connecting Actors and Use cases.
The Glossary and/or the Domain Model.
Declarative and Special Requirements.3. Establishing the Vision.
Introducing Stakeholders and Users.
What Are Stakeholders?
The Role of Stakeholders and Stakeholder Representatives.
Users: A Very Important Class of Stakeholder.
Stakeholders and Use-Case Modeling.
Involving Stakeholders and Users In Your Project.
Step 1: Identify Stakeholder and User Types.
Step 2: Identify and Recruit the Stakeholder Representatives.
Step 3: Involve the Stakeholder Representatives in the Project.
Creating a Shared Vision.
Analyze the Problem.
Understand the Key Stakeholder and User Needs.
Describe the Features and Other High-Level Product Requirements.
Provide an Overview of the Product.
Bringing It All Together: The Vision Document.
Do You Really Need To Do All Of This?4. Finding Actors and Use Cases.
Start by Identifying the Primary Actors.
Work from the Specific to the General.
Don't Forget the Supporting Actors.
Consider All Existing Requirements Information.
Remember That Actors Are Not Always People.
Focus on the System Boundary.
Identify the information sources.
Don't Preempt the Design.
Don't Confuse the Actors with the Devices They Use.
When you Can't Find the Actors, Start with the Use Cases.
Focus First on the Familiar.
Evolve the Set of Actors Alongside the Set of Use Cases.
How to Name Actors.
Don't Confuse Actors with Organizational Roles or Job Titles.
Give Every Actor a Brief Description.
Characterize the Actors.
Trace the Actors to the User Types, Stakeholders, and Stakeholder Roles.
Finding Use Cases.
Start by Identifying the Actor Goals.
Consider the Information Needs of the System and Its Users.
Don't Worry About Commonality (at least at first).
Don't Confuse Use Cases with “Functions”.
Focus on Value.
Derive the Use Cases from the System's Vision.
Don't Forget the Supporting and Operational Use Cases.
Evolve the Set of Use Cases Alongside the Set of Actors and the Supplementary Specification.
Documenting Use Cases.
Associate the Use Cases to their Actors.
Name the Use Cases.
Give every Use Case a Brief Description.
Outline the Use Cases.
Trace the Use Cases to Stakeholders and Stakeholder Roles.
Trace the Use Cases to the Features and Constraints.5. Getting Started With A Use Case Modeling Workshop.
Reasons for Having a Workshop.
To Transfer Expertise.
To Build a Team.
To Create Shared Understanding.
To Tap into the Creative Power of a Group.
Preparing for the Workshop.
Train the Participants.
Understand the Vision.
Keep the Group Small and Involved.
Vary the Composition of the Group.
Select a Facilitator.
Set Objectives for the Workshop.
Schedule the Workshop and Organize the Facilities.
Finding a Mentor.
Find an Effective Communicator.
Find a Skilled Motivator and Manager.
Find a Mentor with Full Lifecycle Experience.
Don't Use the Mentor as a Crutch.
Structuring the Workshop.
Define the Ground Rules for the workshop.
Understand the Problem.
Define the Boundary of the System.
Identify Use Cases.
Consolidate the Model and Validate the Results.
Wrap Up the Workshop and Plan the Next Steps.
Capture Terminology in a Glossary.
Capture Nonfunctional Requirements.
Capture Issues, Risks and Assumptions.
Handling Common Problems.
Avoid Functional Decomposition and Dataflow Modeling.
Synthesize, Don't Analyze.
Don't Describe What Happens Outside the System.
Don't Just Draw Pictures.
Don't Mix Business Use Cases and System Use Cases.6. The Lifecycle of a Use Case.
The Software Development Life Cycle.
The Authoring Life Cycle.
State 1: Discovered.
State 2: Briefly Described.
State 3: Bulleted Outline.
State 4: Essential Outline.
State 5: Detailed Description.
State 6: Fully Described.
The Use-Case Modeling Process.
Establish the Vision.
Produce an Overview of the System.
Reach Agreement on System Scope.
Package the Use-Case Model.
Address Areas of Instability and Author Stable Use Cases and Supplementary Specifications.
Consolidate and Review the Use-Case Model.
II. WRITING AND REVIEWING USE-CASE DESCRIPTIONS. 7. The Structure and Contents of a Use Case.
Use Cases and System State.
The System and External Events.
The System State: More about Preconditions and Postconditions.
How Use Cases Interact.
The SideEffects of Using PreConditions.
The Nature of the Flow of Events.
The Structure of the Flow of Events.
Managing Scope Using Alternative Flows.
The Complexity of the Use-Case Model Versus the Complexity of the Design.
Visualizing the Flow of Events.
What Is a Scenario?
What Is a Use-Case Realization?8. Writing Use-Case Descriptions: An Overview.
Who Writes Use-Case Descriptions?
Programmers Write Poor Descriptions.
The Characteristics of a Good Use-Case Author.
How Long Does It Take to Write a Use Case?
Use a Style Guide.
Write Simply, Directly and Deliberately.
Treat the Use Case Like a Story.
Make a Conscious Decision about the Depth of Detail Required.
Describe What Happens When the Actors and the System Interact.
Don't Rely on Just Text.
Prototype the User Interface.
Good Use-Case Models Have No “Levels”.
Adapt the Description to Your Intended Audience.
Use the Glossary and Domain Model to Capture Definitions.
Capture Business Rules in a Domain Model.
Use Subflows to Simplify Complex Descriptions.
Use Alternative Flows to Capture Unusual or Complex Behavior.
Don't Fill Your Use Cases with CRUD.
Don't Be Afraid of Capturing the Detail.9. Writing Use-Case Descriptions: Revisited.
How Much Detail Is Enough?
Deciding Whether a Precondition Is Needed.
Deciding Whether Post Conditions Are Needed.
Writing The Flow of Events.
Writing the Basic Flow of Events.
Pay Attention to What's Behind the Screen.
Using the Glossary and the Domain Model.
Writing “Named” Subflows.
Writing Optional, Alternate and Exception Flows.
Identifying Alternative Flows.
Representing Alternative Flows in Separate Sections.
Naming Alternative Flows.
Using Extension Points to Target Alternative Behavior.
Describing Alternative Flows That Can Occur Anywhere in the Use Case.
Resuming the Use Case After the Alternative Flow Completes.
Alternative Flows for Alternative Flows and Named Subflows.
Writing Special and Supplementary Specifications.
Capturing Use-Case Scenarios.10. Here There Be Dragons.
Using Named Subflows and Alternate Flows to Structure Text.
Defining Relationships Between Use Cases.
Using the Include Relationship.
Common Errors Using the Include Relationship.
Using the Extends Relationship.
Extension Points, Revisited.
Evaluating the Resulting Use-Case Model.
Using Generalization between Use Cases.
Defining Relationships Between Actors.11. Reviewing Use Cases.
Why Focus on Presenting and Reviewing Use Cases?
Types of Reviews.
What to Review, and When to Review it.
Who Should Review the Use Cases.
Understanding the Audience.
Preparing for the Review.
Running the Review Meeting.
What to Look For When Reviewing.
Reviewing Brief Descriptions.
Reviewing Use-Case Descriptions.
Reviewing Preconditions and Postconditions.
Reviewing the Glossary and Domain Model.
The Role of Prototypes and Storyboards in Use-Case Reviews.12. Wrapping-Up.
Use Cases and the Project Team.
Developers and Use Cases.
Testers and Use Cases.
Use Cases and the User Experience.
Use Cases and Documentation.
Managers, Use Cases and Planning.
Use Cases Across the Lifecycle.
Use Cases and Iterative Development.
Use Cases in the Inception Phase.
Use Cases in the Elaboration Phase.
Use Cases in the Construction and Transition Phases.
Use Cases after Product Release.
Traceability, Completeness and Coverage.
What's Next?Appendix. Glossary. Bibliography. Index. 0201709139T08062002
Developers who effectively employ use cases deliver better applications--on time and under budget. The concept behind use cases is perhaps as old as software itself; they express the behavior of systems in terms of how users will ultimately interact with them. Despite this inherent simplicity, the use case approach is frequently misapplied, resulting in functional requirements that are confusing, cumbersome, or redundant.
In Use Case Modeling, experienced use case practitioners Kurt Bittner and Ian Spence share their tips and tricks for applying use cases in various environments. They delve into all aspects of use case modeling and management, demonstrating how development teams can capitalize on the approach's simplicity when modeling complex systems.
In this ready reference, readers will discover how to
- Introduce a development team to use cases and implement a use case approach
- Identify the key elements of a use case model, including actors; and the components of a use case, including basic flow, preconditions, post-conditions, sub-flows, and alternate flows
- Master the objectives and challenges of creating detailed descriptions of use cases
- Improve their descriptions' readability and consistency
- Prevent and remedy common problems arising from the misuse of include, extend, and generalization use case relationships.
- Organize and conduct a review of a use case model to realize the best possible approach
The book draws extensively on best practices developed at Rational Software Corporation, and presents real-life examples to illustrate the considerable power of use case modeling. As such, Use Case Modeling is sure to give development teams the tools they need to translate vision and creativity into systems that satisfy the most rigorous user demands.
The director for Requirements Management Solutions at Rational Software, Kurt Bittner served on the original Rational Unified Process development team. He has twenty years of experience in software development, including work in requirements capture, analysis, design, development, and project and product management.
A senior consultant at Rational Software, Ian Spence specializes in the adoption of the Rational Unified Process and the use case driven approach that it recommends. He has over eighteen years of experience in the software industry, covering the complete development lifecycle, including requirements capture, architecture, analysis, design, implementation, and project management.