At 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 [email protected] 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