Use Cases: Requirements in Context / Edition 2

Use Cases: Requirements in Context / Edition 2

by Daryl Kulak
ISBN-10:
0321154983
ISBN-13:
2900321154988
Pub. Date:
07/25/2003
Publisher:
Pearson Education
Use Cases: Requirements in Context / Edition 2

Use Cases: Requirements in Context / Edition 2

by Daryl Kulak
$37.26
Current price is , Original price is $54.99. You
$54.99 
  • SHIP THIS ITEM
    This Item is Not Available
  • PICK UP IN STORE
    Check Availability at Nearby Stores
  • SHIP THIS ITEM

    Temporarily Out of Stock Online

    Please check back later for updated availability.

This Item is Not Available


Overview

  • Reduce the incidence of duplicate and inconsistent requirements;
  • Communicate requirements that are understandable to both users and developers;
  • Communicate a vision of what the application needs to do without the distractions inherent in a coded prototype;
  • Document the entire requirements process clearly and efficiently.

Use Cases: Requirements in Context first examines the difficulties of requirements gathering and briefly introduces both use cases and the Unified Modeling Language (UML). Using detailed examples that run through the book, it then elaborates a four-step method for establishing requirements—an iterative process that produces increasingly refined requirements. Drawing on their own extensive experience, the authors offer practical advice on how to manage this process, including guidance on planning, scheduling, and estimating. They also dedicate an entire chapter to the common mistakes made during requirements capture and specification, particularly those related to use case creation.

This detailed, hands-on 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 non-functional 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.

Other tools examined in this book include the stakeholder interview, use case name filters, the context matrix, user interface requirements, teamorganization, and quality assurance.


Product Details

ISBN-13: 2900321154988
Publisher: Pearson Education
Publication date: 07/25/2003
Edition description: REV
Pages: 272
Product dimensions: 6.00(w) x 1.25(h) x 9.00(d)

About the Author


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 17-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.

Read an Excerpt

PREFACE:

Use Cases: Requirements in Context came about, as most books probably do, as the result of a complaint. We felt that there weren't any good books that addressed use cases for requirements gathering. It seemed that a lot of people agreed that use cases were a perfectly good tool to solve the requirements problem, but no one had put down on paper any detailed process to help people understand how to use them this way. In fact, even as we write today, in late 1999, there is no book of this sort that we know of.

Requirements gathering has been a problem on almost every project we've been involved with. The fuzzy nature of requirements makes working with them slippery and unintuitive for most software analysts. Use cases are the first tool we've seen that addresses the specification and communication concerns usually associated with requirements gathering.

Although use cases in themselves are quite intuitive, the process around them is often done poorly. The questions that people have--How many iterations do I do? How fine-grained should a use case be?--are not answered or even addressed in most texts. This is probably because they are hard questions and the answers can vary greatly from one situation to another. However, they are important questions, and we decided to describe our own best practices as a first volley in what we hope will become a spirited industry dialog on how to generate requirements that will address user needs.

Use Cases: Requirements in Context is a practical book for the everyday practitioner. As consultants in the information technology industry, we employ use cases to specify business systems as part of ourdaily lives. We think we understand the issues facing people when they deliver software using tools such as the Unified Modeling Language and use cases. Our main intent is not to describe use case notation, although we do address that. Instead, we show a requirements process that addresses requirements gathering in a way that produces quality results.

While writing, we considered the factors that cause problems in requirements gathering, and we developed a use case method for delivering a requirements-oriented set of deliverables. The methodology breaks down the activity of producing requirements into a series of steps, and it answers the questions that usually come up when people employ use cases. This book relates directly to the real work of delivering a specification, managing that effort with a team, and getting the most bang for your buck.

The sample use cases and use case diagrams that appear throughout the book are also presented in Appendixes B and C. These appendixes demonstrate the development of the use cases and other requirements analysis artifacts through each phase of their development. Appendix B documents a business system for real estate, and Appendix C documents a business system for the garment industry.

We hope you enjoy this book. It was a labor of love for us. This is a process that works well for us. If it works for you, too, that's great. If it doesn't, perhaps you can adapt some of the tools, ideas, or suggestions to your own way of addressing the requirements problem.



0201657678P04062001

Table of Contents

Prefacexv
Preface to the First Editionxix
1The Trouble with Requirements1
1.1First and Least of All ...1
1.2What Is a Requirement?5
1.2.1Functional Requirements9
1.2.2Nonfunctional Requirements9
1.3Requirements Gathering, Definition, and Specification10
1.4The Challenges of Requirements Gathering12
1.4.1Finding Out What the Users Need12
1.4.2Documenting Users' Needs13
1.4.3Avoiding Premature Design Assumptions13
1.4.4Resolving Conflicting Requirements13
1.4.5Eliminating Redundant Requirements14
1.4.6Reducing Overwhelming Volume14
1.4.7Ensuring Requirements Traceability14
1.5Issues with the Standard Approaches15
1.5.1User Interviews15
1.5.2Joint Requirements Planning Sessions16
1.5.3Contract-Style Requirements Lists17
1.5.4Prototypes19
1.6Those Troublesome Requirements20
2Moving to Use Cases21
2.1It's All About Interactions25
2.2The Unified Modeling Language27
2.2.1Nine Diagrams28
2.2.2Extending the UML with Stereotyping34
2.3Introducing Use Cases, Use Case Diagrams, and Scenarios35
2.3.1The Goals of Use Cases36
2.3.2How Use Case Diagrams Show Relationships38
2.3.3The Use Case Template42
2.3.4Paths and Scenarios46
2.4Use Cases Apply Here49
2.4.1Use Cases for Inquiry-Only Systems49
2.4.2Use Cases for Requests for Proposals50
2.4.3Use Cases for Software Package Evaluation50
2.4.4Use Cases for Non-Object-Oriented Systems50
2.5Applying Use Cases to the Requirements Problem51
3A Use-Case-Driven Approach to Requirements Gathering53
3.1Requirements Specification Tools53
3.2Principles for Requirements Success53
3.3Three Steps for Gathering Requirements55
3.4The Role of the Mission, Vision, Values56
3.5The Role of the Statement of Work57
3.6The Role of the Risk Analysis57
3.7The Role of the Prototype57
3.8The Roles of Use Cases59
3.8.1Use Cases Are Effective Communication Vehicles59
3.8.2Use Cases Can Be Used for Functional and Nonfunctional Requirements59
3.8.3Use Cases Help Ensure Requirements Traceability59
3.8.4Use Cases Discourage Premature Design60
3.9The Role of the Business Rules Catalog60
3.10Managing Success62
4The Facade Iteration63
4.1Objectives63
4.1.1Users64
4.1.2Project Team64
4.1.3Industry Experts65
4.1.4IT Management Group65
4.1.5User Management Personnel66
4.1.6Owners of the Data66
4.2Steps in the Facade Iteration67
4.2.1Create the Mission, Vision, Values67
4.2.2Identify and Review Existing Documentation and Intellectual Capital67
4.2.3Get the Executive Sponsor's Unique Viewpoint69
4.2.4Review the Business Process Definitions71
4.2.5Identify the Users, Customers, and Related Groups71
4.2.6Interview the Stakeholders72
4.2.7Create a Stakeholders List73
4.2.8Find the Actors73
4.2.9Create the Use Case Survey (A List of Facade Use Cases)73
4.2.10Collect and Document Nonfunctional Requirements74
4.2.11Start the Business Rules Catalog81
4.2.12Create a Risk Analysis81
4.2.13Create a Statement of Work81
4.2.14Begin Experimenting with User Interface Metaphors81
4.2.15Begin User Interface Storyboards83
4.2.16Get Informal Approval from the Executive Sponsor84
4.3Tools84
4.3.1The Use Case Diagram84
4.3.2The Hierarchy Killer84
4.3.3Use Case Name Filters86
4.3.4Actor Filter86
4.3.5Verb Filter87
4.3.6Noun Filters88
4.3.7Packages as Placeholders for Functionality89
4.3.8Facade Filter89
4.3.9Peer Review89
4.3.10User Review90
4.4Deliverables90
4.5Roles90
4.6Context91
4.7Summary91
5The Filled Iteration93
5.1Objectives93
5.2Steps94
5.2.1Break Out Detailed Use Cases94
5.2.2Create Filled Use Cases96
5.2.3Add Business Rules101
5.2.4Test the Filled Use Cases102
5.2.5Put Some Things Off103
5.3Tools104
5.3.1The Stakeholder Interview104
5.3.2IPA Filter104
5.3.3White Space Analysis Filter105
5.3.4Abstraction Filter105
5.3.5Testing Use Cases with Scenarios105
5.3.6Review105
5.3.7Additional Use Cases106
5.4Deliverables106
5.5Roles106
5.6Context107
5.7Summary107
6Focused Iteration109
6.1Objectives109
6.2What Are Focused Use Cases?110
6.3Steps110
6.3.1Merge Duplicate Processes110
6.3.2Bring Focus to Each Use Case111
6.3.3Manage Scope Changes During This Iteration112
6.3.4Manage Risks and Assumptions113
6.3.5Review113
6.4Tools114
6.4.1Surplus Functionality Filter114
6.4.2Narrow the Focus of the System114
6.4.3Identify Surplus Functionality Inside the Use Case115
6.4.4Vocabulary Filter115
6.5Deliverables116
6.6Roles116
6.7Context116
6.8Summary117
7Managing Requirements and People119
7.1Introduction119
7.2Waterfall Lifecycle Management120
7.2.1Nell and the Coffee Shop121
7.2.2Disadvantages of Waterfall123
7.3Alternatives to Waterfall125
7.3.1Rapid Application Development (RAD)125
7.3.2Spiral126
7.3.3Staged Delivery126
7.3.4Holistic Iterative/Incremental (HI/I)127
7.4Introducing the Holistic Iterative/Incremental Use-Case-Driven Project Lifecycle127
7.4.1The Meaning of Iterative128
7.4.2The Meaning of Incremental129
7.4.3The Meaning of Holistic130
7.4.4The Meaning of Adaptivity131
7.4.5Complex Adaptive Systems132
7.5Process133
7.6Principles of the Holistic Iterative/Incremental Software Lifecycle135
7.6.1Manage Requirements Not Tasks136
7.6.2The Important Goals Are the Business Goals--Dates and Budgets137
7.6.3Think Like a Businessperson--What Have You Done for Me Lately?138
7.6.4Divide and Conquer138
7.6.5Cut the Job into Programs and Projects141
7.6.6Tie Everything Back to the Business144
7.6.7Create Demonstrable Deliverables145
7.6.8Learn the Art of "Good Enough" Quality145
7.6.9The Pieces Will Be Smaller Than You Think146
7.6.10Expect Negotiation, Not Specification146
7.6.11Forget about Baselines and Sign-offs147
7.6.12Estimate by Doing147
7.6.13Calculate Return-on-Investment in a New Way Using Portfolios148
8Requirements Traceability149
8.1Tracing Back to Use Cases152
8.1.1Analysis Model Traceability153
8.1.2Design Model Traceability153
8.1.3CRC Card Session Traceability154
8.1.4Test Model Traceability154
8.1.5User Interface Design Traceability154
8.1.6Application Architecture Traceability154
8.1.7Project Management Traceability155
8.1.8Documentation and Training Traceability155
8.1.9Product Marketing Traceability155
8.1.10Security Traceability155
8.1.11Release Planning155
8.2Tracing Back to Nonfunctionals156
8.3Tracing Back to Business Rules157
8.3.1Structural Facts157
8.3.2Action-Restricting and Action-Triggering Rules157
8.3.3Calculations and Inferences157
9Classic Mistakes159
9.1Mistakes, Pitfalls, and Bruised Knees159
9.2Classic Mistakes: Make Them and Move On160
10The Case for Use Cases173
10.1Why Did Use Cases Win?174
10.1.1Use Cases Are Sensible to Businesspeople174
10.1.2Use Cases Are Traceable175
10.1.3Use Cases Are an Excellent Scoping Tool175
10.1.4Use Cases Don't Use a Special Language175
10.1.5Use Cases Allow Us to Tell Stories175
10.1.6The Alternatives Are Awful176
10.2Use Cases Beyond Software176
10.2.1Service Use Cases176
10.2.2Business Use Cases178
10.3Summary181
AReal Estate Management System183
A.1Overview183
A.2The Use Cases184
A.2.1The Actors186
A.2.2Technical Requirements and Business Rules187
A.3Scope Decisions187
A.3.1List of Use Cases190
A.4Refining the Requirements212
A.4.1Investment Returns Calculation213
A.4.2Tightening Requirements215
BIntegrated Systems219
B.1Overview219
B.2Background219
B.3Problem Description221
B.4Solution Analysis222
CInstant Messaging Encryption225
C.1Overview225
C.2The Use Cases226
DOrder a Product from a Catalog229
Bibliography235
Index237

Preface

Use Cases: Requirements in Context came about, as most books probably do, as the result of a complaint. We felt that there weren't any good books that addressed use cases for requirements gathering. It seemed that a lot of people agreed that use cases were a perfectly good tool to solve the requirements problem, but no one had put down on paper any detailed process to help people understand how to use them this way. In fact, even as we write today, in late 1999, there is no book of this sort that we know of.

Requirements gathering has been a problem on almost every project we've been involved with. The fuzzy nature of requirements makes working with them slippery and unintuitive for most software analysts. Use cases are the first tool we've seen that addresses the specification and communication concerns usually associated with requirements gathering.

Although use cases in themselves are quite intuitive, the process around them is often done poorly. The questions that people have—How many iterations do I do? How fine-grained should a use case be?—are not answered or even addressed in most texts. This is probably because they are hard questions and the answers can vary greatly from one situation to another. However, they are important questions, and we decided to describe our own best practices as a first volley in what we hope will become a spirited industry dialog on how to generate requirements that will address user needs.

Use Cases: Requirements in Context is a practical book for the everyday practitioner. As consultants in the information technology industry, we employ use cases to specify businesssystems as part of our daily lives. We think we understand the issues facing people when they deliver software using tools such as the Unified Modeling Language and use cases. Our main intent is not to describe use case notation, although we do address that. Instead, we show a requirements process that addresses requirements gathering in a way that produces quality results.

While writing, we considered the factors that cause problems in requirements gathering, and we developed a use case method for delivering a requirements-oriented set of deliverables. The methodology breaks down the activity of producing requirements into a series of steps, and it answers the questions that usually come up when people employ use cases. This book relates directly to the real work of delivering a specification, managing that effort with a team, and getting the most bang for your buck.

The sample use cases and use case diagrams that appear throughout the book are also presented in Appendixes B and C. These appendixes demonstrate the development of the use cases and other requirements analysis artifacts through each phase of their development. Appendix B documents a business system for real estate, and Appendix C documents a business system for the garment industry.

We hope you enjoy this book. It was a labor of love for us. This is a process that works well for us. If it works for you, too, that's great. If it doesn't, perhaps you can adapt some of the tools, ideas, or suggestions to your own way of addressing the requirements problem.



From the B&N Reads Blog

Customer Reviews