Table Of ContentAt PPLYING USE CSS
Second Edition
The Addison-Wesley ObjectTechnology Series
Grady Booch, Ivar Jacobson, and James Rumbau.gh, Series Editors
For more information, check out the series web site at www awprofessional.com/otseries.
Ahmed/Umrysh, Developing Enterprise Java Applications with J2EE™* Lelinngweil/Widrig, Managing Sofhvare Requirements, 2E: A Use Case
and UML Approach
Ariow/Neustadt, Enfeipiise Patterns and MDA: Building Better Software Manassis, Practical Software Engineering: Analysis and Design for the
withArcltetype Patterns and UML .NET Platform
Arlow/Neustadt, UML and Hie Unified Process: Practical Object- Marshall, Enterprise Modeling with UML: Designing Successful Software
Oriented Analysis and Design through Business Analysis
Armour/Miller, Advanced Use Case Modeling: Sofhvare Systems McGregor/Sykes, A Practical Guide to Testing Object-Oriented Software
Bellin/Simone, The CRC Card Book Mellor/Balcer, Executable UML: A Foundation for Model-Driven
Bergstrom/Raberg, Adopting the Rational Unified Process: Success with Architecture
theRUP Mellor et al., MDA Distilled: Principles of Model-Driven Architecture
Binder. Testing Object-Oriented Systems: Models, Patterns, cmdTools Nrdburg/Miiksimchuk, UML for Database Design
Bittner/Soence. Use Case Modeling Oestereich, Developing Software with UML, 2E: Object-Oriented
Booch, Object Solutions: Managing the Object-Oriented Project A}Kiivsis aiul Design in Practice
Booch, Object-Oriented Analysis and Design with Applications, 2E Page-Jones, Fundamentals of Object-Oriented Design in UML
Booch/Bryan, Software Engineering with ADA, 3E Pohl, Object-Oriented Programming Using C++, 2E
Booch/Rumbaugh/Jacobson, The Unified Modeling Language User Poliice et al. Sofhvare Development for Small Teams: A RUP-Centric
Guide Approach
Box/Brown/Ewald/Sells, Effective COM: 50 Ways to Improve Your COM Quatrani, Visual Modeling with Rational Rose 2002 and UML
and MTS-based Applications Rector/Sells, ATL internals
Carlson, Modeling XML Applications with UML: Practical Reed, Developing Applications with Visual Basic and UML
e-Business Applications Rosenberg/Scott, Applying Use Case Driven Object Modeling with UML:
Collins, Designing Object-Oriented User Interfaces An Annotated e-Corninerce Example
Conalien, Building Web Applications with UML, 2E Rosenberg/Scott, Use Case Driven Object Modeling with UML:
D'Souza/Wills, Objects, Components, and Frameworks with UML: Tne A Practical Appmadi
Catalysis(SM) Approach Royce, Sofhvare Project Management: A Unified Framework
Douglass, Doing Hard Time: Developing Real-Tune Systems with UML, Rumbaugh/Jacobson/Booch, Tlie Unified Modeling Language Reference
Objects, Frameworks, and Patterns Manual
Douglass, Real-Time Design Patterns: Robust Scalable Architecture for SchneiderMlnters, Applying Use Cases, 2E: A Practical Guide
Real-Time Systems
Smith/Williams, Performance Solutions: A Practical Guide to Creating
Douglass, Real Time UML, 3E: Advances in The UML for Real-Time Responsive, Scalable Sofhvare
Systems Stevens/Pooiey, Using UML, Updated Edition: Sqfhvare Engineering with
Eeles/Houston/Kozaczynski, Building J2EE'U Applications with the Objects and Components
Rational Unified Process Unhelkar, Process Quality Assurance for UML-Based Projects
Fontoura/Pree/Rumpe, The UML Profile for Framework Architectures van Hannelen, Object Modeling and User Interface Design: Designing
Fowler, Analysis Patterns: Reusable Object Models Interactive Systems
Fowler et al., Refactoring: Improving the Design of Existing Code Wake. Refactoring Workbook
Fowler, UML Distilled, 3E: A Brief Guide to the Standard Object Warmer/Kleppe, Tlu' Object Constraint Language, 2E: Getting Your
MatH'ti" fjri'-i'ct>e Models Ready for MDA'
Coi iki*} w ,' L i/'Z)i 7 iited, and Real-Tune Applications White, Software Configuration Management Strategies and Rational
>\tt!i(. \i' ClearCase": A Practical Introduction
(mi n / M V < P k*-, ties with UML The ComponentSoftware Series
( In i "t I i "V, iL Principles and Practice
Clemens Szyperski, Series Editor
Hi. i \i \ s \ L* 7 ( i i Applications: Object-Oriented
For more information, check out the series web site at
i > s ! i c ons
www.awprofessional.com/csseries.
il n t •> i rArciiiteciure
Alien, Realizing cBusiness with Components
t "i E\ si t t t /?t d Sofr*van' Development Pnicess
Apperly et al., Sen'ice- and Component-based Development: Using the
( t ''inning with the ODMG Standard
Select Perspective™ and UML
\ Hie Model Driven
Atkinson et al., Comi>onent-Based Product Line Engineering with UML
Cbeesnian/Daniels, UML Components: A Simple Process for Specifying
\xvss Made Easy: A
Component-Based Software
Szyperski, Component Software, 2E: Beyond Object-Oriented
>'/,': :\n Sntnxkiction
Programming
//)<•«!.;/! and Arcltitecture
Whitehead, Component-Based Development: Principles and Planning for
Business Systems
applying use
Edition
A Practical Guide
Geri Schneider
Jason P. Winters
ADDISON-WESLEY
BLoosntodno n• SS.ainn FFrraanncicsicsoc o" NNeeww YYoorkr k" TToorroonntoto e MMoonnttrreeaall
London Muntch Paris Madrid
Captetown Sydney Tokyo Singapore Mexico City
Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where
those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed
with initial capital letters or in all capitals.
The authors and publisher have taken care in the preparation of this book but make no expressed or implied warranty of any
kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in
connection with or arising out of the use of the information or programs contained herein.
The publisher offers discounts on this book when ordered in quantity for bulk purchases or special sales. For more information,
please contact:
U.S. Corporate and Government Sales
(800) 382-3419
corpsales@pearsontechgroup.com
For sales outside the U.S., please contact:
International Sales
international @pearsoned.com
Visit us on the Web: www.awprofessional.com
Library of Congress Cataloging-in-Publication Data
Schneider, Geri.
Applying use cases: a practical guide / Geri Schneider, Jason P. Winters-2nd ed.
p. cm-(The Addison-Wesley object technology series)
Includes bibliographical references and index.
ISBN 0-201-70853-1
1. Application software—Development. 2. Use cases (Systems engineering) I. Winters, Jason P. II. Title. III. Series.
QA76.76.A65 S34 2001
005.1—dc21
00-052165
Copyright © 2001 Pearson Education, Inc.
All rights reserved. Printed in the United States of America. This publication is protected by copyright, and permission must be
obtained from the publisher prior to any prohibited reproduction, storage in a retrieval system, or transmission in any form or by
any means, electronic, mechanical, photocopying, recording, or likewise. For information regarding permissions, write to:
Pearson Education, Inc.
Rights and Contracts Department
One Lake Street
Upper Saddle River, NJ 07458
Text printed on recycled and acid-free paper.
ISBN 0201708531
9 1011121314 DOC 080706
9th Printing February 2006
Contents
Foreword xi
Preface to Second Edition xiii
Preface xv
Chapter 1 1
Getting Started
An Iterative Software Process 2
An Example Project 3
The Project Description 4
Starting Risk Analysis 6
Chapter Review 10
Chapter 2 ]_]_
Identifying System Boundaries
Identifying Actors 12
Identifying Use Cases 14
Describing Actors and Use Cases 17
Handling Time 21
Potential Boundary Problems 22
Scoping the Project 23
Chapter Review 24
Chapter 3 27
Documenting Use Cases
The Basic Use Case 27
Pre- and Postconditions 28
Flow of Events 29
V
Vi ! CONTENTS
Guidelines for Correctness and Completeness 31
Presentation Styles 32
Other Requirements 34
Handling Complex Use Cases 34
The Basic Path 35
Alternative Paths 37
Detailing Significant Behavior 40
Documenting Alternatives 42
Scenarios 47
Adding Direction to the Communicates Association 47
Chapter Review 48
Chapter 4 5]_
Advanced Use Case Documentation Techniques
Include 51
Extend 53
Inheritance 58
Interfaces 59
Chapter Review 65
Chapter 5 67
Diagramming Use Cases
Activity Diagrams 67
Simple Sequence Diagrams 73
Diagramming the User Interface 75
Chapter Review 77
Chapter 6 79
Level of Detail
Determining the Level of Detail 79
Traceability between Use Cases 84
Use Cases for Business Processes 85
Chapter Review 87
Contents vii
Chapter 7 89
Documenting Use Cases
Documentation Templates 89
Other Documents 91
Tool Support for Documents 94
Documenting Login 95
Documenting CRUD 98
Chapter Review 99
Chapter 8 101
Reviews
Review for Completeness 101
Review for Potential Problems 103
Review with End Users 103
Review with Customers 104
Review with Development 104
Reviewers 104
Adding Flexibility to Your System 105
Common Mistakes 107
Work Flow on a Use Case Diagram 107
Use Cases Too Small 108
Screens as Use Cases 112
Using Vague Terms 115
Business versus Technical Requirements 120
Chapter Review 122
Chapter 9 123
Dividing Large Systems
Architectural Patterns 123
Three-Tier Architectural Pattern 124
Pipe and Filter Architectural Pattern 125
Object-Oriented Architectural Pattern 126
Order-Processing Architecture Example 126
Testing the Architecture with Use Cases 129
Sequence Diagrams 133
Defining Interfaces between Subsystems 133
Subordinate Use Cases 136
VIII I CONTENTS
Creating Subsystem Documentation 140
Subordinate versus Alternative versus Include 141
Chapter Review 142
Chapter 10 143
Use Cases and the Project Plan
Planning the Project 143
Build versus Buy Decisions 149
Prototyping 150
Estimating Work with Use Cases 151
Weighting Actors 151
Weighting Use Cases 152
Weighting Technical Factors 153
Use Case Points 157
Project Estimate 157
Chapter Review 158
Chapter 11 V59>
Constructing and Delivering a System
Key Abstractions of the Domain 159
Identifying Key Abstractions in Use Cases 160
Diagramming Scenarios with Key Abstractions 161
Diagramming Key Abstractions 163
Use Case versus Subsystem View 164
The Iteration Schedule 166
Delivery and Beyond 167
User Guides and Training 168
Sales Kits and Marketing Literature 168
Use Cases After Delivery 168
Chapter Review 169
Final Wrap-Up 170
Appendix A 1 71
Resources
Confenfs ix
Appendix B 1 75
Documentation Templates
System or Subsystem Documents 175
Use Case Document 176
Appendix C 1 79
UML Notation
Appendix D 185
Sending Results of the Use Case Estimator
Appendix E 187
Order-Processing System
Order-Processing System 188
Risk Factors 188
System-Level Use Cases 189
Architecture 190
index 239