This edition describes a process based on employing use cases to gather and define software requirements. Use cases, roughly defined, involve the process of figuring out exactly how end-users will “use” a software system when it is completed before coding begins. Both the process and its presentation have been thoroughly revised based on the authors' more recent consulting experience and on feedback gathered from readers of the first edition over the past three years.
Thoroughly updated and revised, the second edition of a popular tutorial on how to apply use cases effectively in determining requirements.
° An excellent introduction to this increasingly popular topic that assumes no prior knowledge of uses cases or requirements
° Shows how use cases can be applied to solve the most challenging requirements issues faced daily in industry
° Expanded coverage, including thorough treatment of iterative/incremental use case driven project management
Table of Contents
Preface to the First Edition.
1. The Trouble with Requirements.
First and Least of All.
What Is a Requirement?
Requirements Gathering, Definition, and Specification.
The Challenges of Requirements Gathering.
Finding Out What the Users Need.
Documenting Users' Needs.
Avoiding Premature Design Assumptions.
Resolving Conflicting Requirements.
Eliminating Redundant Requirements.
Reducing Overwhelming Volume.
Ensuring Requirements Traceability.
Issues with the Standard Approaches.
Joint Requirements Planning Sessions.
Contract-Style Requirements Lists.
Those Troublesome Requirements. 2. Moving to Use Cases.
It's All About Interactions.
The Unified Modeling Language.
Extending the UML with Stereotyping.
Introducing Use Cases, Use Case Diagrams, and Scenarios.
The Goals of Use Cases.
How Use Case Diagrams Show Relationships.
The Use Case Template.
Paths and Scenarios.
Use Cases Apply Here.
Use Cases for Inquiry-Only Systems.
Use Cases for Requests for Proposals.
Use Cases for Software Package Evaluation.
Use Cases for Non-Object-Oriented Systems.
Applying Use Cases to the Requirements Problem. 3. A Use-Case-Driven Approach to Requirements Gathering.
Requirements Specification Tools.
Principles for Requirements Success.
Three Steps for Gathering Requirements.
The Role of the Mission, Vision, Values.
The Role of the Statement of Work.
The Role of the Risk Analysis.
The Role of the Prototype.
The Roles of Use Cases.
Use Cases Are Effective Communication Vehicles.
Use Cases Can Be Used for Functional and Nonfunctional Requirements.
Use Cases Help Ensure Requirements Traceability.
Use Cases Discourage Premature Design.
The Role of the Business Rules Catalog.
Managing Success. 4. The Facade Iteration.
IT Management Group.
User Management Personnel.
Owners of the Data.
Steps in the Facade Iteration.
Create the Mission, Vision, Values.
Identify and Review Existing Documentation and Intellectual Capital.
Get the Executive Sponsor's Unique Viewpoint.
Review the Business Process Definitions.
Identify the Users, Customers, and Related Groups.
Interview the Stakeholders.
Create a Stakeholders List.
Find the Actors.
Create the Use Case Survey (A List of Facade Use Cases).
Collect and Document Nonfunctional Requirements.
Start the Business Rules Catalog.
Create a Risk Analysis.
Create a Statement of Work.
Begin Experimenting with User Interface Metaphors.
Begin User Interface Storyboards.
Get Informal Approval from the Executive Sponsor.
The Use Case Diagram.
The Hierarchy Killer.
Use Case Name Filters.
Packages as Placeholders for Functionality.
Summary. 5. The Filled Iteration.
Break Out Detailed Use Cases.
Create Filled Use Cases.
Add Business Rules.
Test the Filled Use Cases.
Put Some Things Off.
The Stakeholder Interview.
White Space Analysis Filter.
Testing Use Cases with Scenarios.
Additional Use Cases.
Summary. 6. Focused Iteration.
What Are Focused Use Cases?
Merge Duplicate Processes.
Bring Focus to Each Use Case.
Manage Scope Changes During This Iteration.
Manage Risks and Assumptions.
Surplus Functionality Filter.
Narrow the Focus of the System.
Identify Surplus Functionality Inside the Use Case.
Summary. 7. Managing Requirements and People.
Waterfall Lifecycle Management.
Nell and the Coffee Shop.
Disadvantages of Waterfall.
Alternatives to Waterfall.
Rapid Application Development (RAD).
Holistic Iterative/Incremental (HI/I).
Introducing the Holistic Iterative/Incremental Use-Case-Driven Project Lifecycle.
The Meaning of Iterative.
The Meaning of Incremental.
The Meaning of Holistic.
The Meaning of Adaptivity.
Complex Adaptive Systems.
Principles of the Holistic Iterative/Incremental Software Lifecycle.
Manage Requirements Not Tasks.
The Important Goals Are the Business Goals--Dates and Budgets.
Think Like a Businessperson--What Have You Done for Me Lately?
Divide and Conquer.
Cut the Job into Programs and Projects.
Tie Everything Back to the Business.
Create Demonstrable Deliverables.
Learn the Art of 'Good Enough' Quality.
The Pieces Will Be Smaller Than You Think.
Expect Negotiation, Not Specification.
Forget about Baselines and Sign-offs.
Estimate by Doing.
Calculate Return-on-Investment in a New Way Using Portfolios. 8. Requirements Traceability.
Tracing Back to Use Cases.
Analysis Model Traceability.
Design Model Traceability.
CRC Card Session Traceability.
Test Model Traceability.
User Interface Design Traceability.
Application Architecture Traceability.
Project Management Traceability.
Documentation and Training Traceability.
Product Marketing Traceability.
Tracing Back to Nonfunctionals.
Tracing Back to Business Rules.
Action-Restricting and Action-Triggering Rules.
Calculations and Inferences. 9. Classic Mistakes.
Mistakes, Pitfalls, and Bruised Knees.
Classic Mistakes: Make Them and Move On. 10. The Case for Use Cases.
Why Did Use Cases Win?
Use Cases Are Sensible to Businesspeople.
Use Cases Are Traceable.
Use Cases Are an Excellent Scoping Tool.
Use Cases Don't Use a Special Language.
Use Cases Allow Us to Tell Stories.
The Alternatives Are Awful.
Use Cases Beyond Software.
Service Use Cases.
Business Use Cases.
Summary. Appendix A. Real Estate Management System.
The Use Cases.
Technical Requirements and Business Rules.
List of Use Cases.
Refining the Requirements.
Investment Returns Calculation.
Tightening Requirements. Appendix B. Integrated Systems.
Solution Analysis. Appendix C. Instant Messaging Encryption.
The Use Cases. Appendix D. Order a Product from a Catalog. Bibliography. Index.
This book describes how to gather and define software requirements using a process based on use cases. It shows systems analysts and designers how use cases can provide solutions to the most challenging requirements issues, resulting in effective, quality systems that meet the needs of users.
Use Cases, Second Edition: Requirements in Context describes a three-step method for establishing requirements--an iterative process that produces increasingly refined requirements. Drawing on their extensive, real- world experience, the authors offer a wealth of advice on use-case driven lifecycles, planning for change, and keeping on track. In addition, they include numerous detailed examples to illustrate practical applications.
This second edition incorporates the many advancements in use case methodology that have occurred over the past few years. Specifically, this new edition features major changes to the methodology's iterations, and the section on management reflects the faster-paced, more 'chaordic' software lifecycles prominent today. In addition, the authors have included a new chapter on use case traceability issues and have revised the appendixes to show more clearly how use cases evolve.
The book opens with a brief introduction to use cases and the Unified Modeling Language (UML). It explains how use cases reduce the incidence of duplicate and inconsistent requirements, and how they facilitate the documentation process and communication among stakeholders.
The book shows you how to:
- Describe the context of relationships and interactions between actors and applications using use case diagrams and scenarios
- Specify functional and nonfunctional requirements
- Create the candidate use case list
- Break out detailed use cases and add detail to use case diagrams
- Add triggers, preconditions, basic course of events, and exceptions to use cases
- Manage the iterative/incremental use case driven project lifecycle
- Trace back to use cases, nonfunctionals, and business rules
- Avoid classic mistakes and pitfalls
The book also highlights numerous currently available tools, including use case name filters, the context matrix, user interface requirements, and the authors' own 'hierarchy killer.'
Daryl Kulak is the president and CEO of Water-Logic Software (www.water-logic.com), an Internet business and technology consulting firm based in Columbus, Ohio. He is a graduate of the Northern Alberta Institute of Technology (NAIT) in Edmonton, Alberta. During much of his seventeen-year career managing software development projects in the United States and Canada, Daryl has focused on use cases, iterative/incremental development, and component design. Eamonn Guiney is a consultant at NewtonPartners (www.newtonpartners.com), a company that provides management consulting and system integration services to the money management industry. He is based in Sacramento, California. Eamonn creates business systems using a variety of tools, particularly object-oriented methodologies and use cases.