Use Case Driven Object Modeling with UML_ Theory and Practice.pdf

时间:2022-09-10 07:36:42
【文件属性】:

文件名称:Use Case Driven Object Modeling with UML_ Theory and Practice.pdf

文件大小:11.29MB

文件格式:PDF

更新时间:2022-09-10 07:36:42

Case Driven Object Modeling Theory 

Contents About the Authors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv About the Technical Reviewer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii Acknowledgments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix Preface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii ■CHAPTER 1 Introduction to ICONIX Process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 ICONIX Process in Theory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Overview:Getting from Use Cases to Source Code. . . . . . . . . . . . . . . 2 Requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Analysis/Preliminary Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Detailed Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Extensions to ICONIX Process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Persona Analysis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Test-Driven Development (TDD). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Driving Test Cases from the Analysis Model. . . . . . . . . . . . . . . . . . . . 20 ICONIX Process in Practice:The Internet Bookstore Example. . . . . . . . . . 20 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 PART 1■ ■ ■Requirements Definition ■CHAPTER 2 Domain Modeling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 The 10,000-Foot View. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 What’s a Domain Model?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Why Start with the Domain Model Instead of Use Cases?. . . . . . . . 25 Domain Modeling in Theory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Top 10 Domain Modeling Guidelines. . . . . . . . . . . . . . . . . . . . . . . . . . 26 Internet Bookstore:Extracting the First-Pass Domain Model from High-Level Requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Internet Bookstore:Second Attempt at the Domain Model. . . . . . . . 35 Internet Bookstore:Building Generalization Relationships. . . . . . . . 37 vii 7745fmfinal.qxd 12/13/06 9:23 PM Page vii Domain Modeling in Practice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Exercises. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 More Practice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 ■CHAPTER 3 Use Case Modeling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 The 10,000-Foot View. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Why Do I Need Use Cases in Addition to Functional Requirements?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Don’t Forget the Rainy-Day Scenarios. . . . . . . . . . . . . . . . . . . . . . . . . 50 Do an Initial Domain Model Before You Write the Use Cases. . . . . . 50 Driving Your Design (and Your Tests) from the Use Cases. . . . . . . . . 51 Use Case Modeling in Theory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Top 10 Use Case Modeling Guidelines. . . . . . . . . . . . . . . . . . . . . . . . . 51 Organizing Use Cases into Packages:Internet Bookstore. . . . . . . . . 61 Use Case Relationship Roundup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Internet Bookstore:Refining Use Cases. . . . . . . . . . . . . . . . . . . . . . . . 70 Internet Bookstore:Basic and Alternate Courses. . . . . . . . . . . . . . . . 72 A Couple of Thoughts on Use Case Templates. . . . . . . . . . . . . . . . . . 74 Use Case or Algorithm?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Use Case Modeling in Practice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Exercises. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Exercise Solutions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 More Practice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 ■CHAPTER 4 Requirements Review. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Requirements Review in Theory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Why Review Requirements?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Top 10 Requirements Review Guidelines. . . . . . . . . . . . . . . . . . . . . . 85 Allocating Functional Requirements to Use Cases. . . . . . . . . . . . . . . 89 Requirements Review in Practice:Internet Bookstore. . . . . . . . . . . . . . . . 89 Removing Everything That’s Out of Scope. . . . . . . . . . . . . . . . . . . . . . 90 Naming Participating Domain Objects. . . . . . . . . . . . . . . . . . . . . . . . . 92 Making Sure You Have All the Alternate Courses. . . . . . . . . . . . . . . . 93 Checking That the Use Case Text Isn’t Too Abstract. . . . . . . . . . . . . 93 Changing Passive Voice to Active Voice. . . . . . . . . . . . . . . . . . . . . . . . 95 Tracing Each Requirement to Its Use Cases. . . . . . . . . . . . . . . . . . . . 96 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 ■CONTENTS viii 7745fmfinal.qxd 12/13/06 9:23 PM Page viii PART 2■ ■ ■Analysis,Conceptual Design,and Technical Architecture ■CHAPTER 5 Robustness Analysis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 The 10,000-Foot View. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Where Does Robustness Analysis Fit into the Process?. . . . . . . . . 102 Like Learning to Ride a Bicycle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Anatomy of a Robustness Diagram. . . . . . . . . . . . . . . . . . . . . . . . . . 103 Robustness Analysis in Theory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Top 10 Robustness Analysis Guidelines. . . . . . . . . . . . . . . . . . . . . . . 104 More About Robustness Diagram Rules. . . . . . . . . . . . . . . . . . . . . . . 112 How Do You Perform Robustness Analysis?. . . . . . . . . . . . . . . . . . . 114 Updating Your Domain (Static) Model. . . . . . . . . . . . . . . . . . . . . . . . . 125 Robustness Analysis in Practice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Exercises. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Exercise Solutions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 More Practice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 ■CHAPTER 6 Preliminary Design Review. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Preliminary Design Review in Theory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 Why Do a PDR At All?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 Top 10 PDR Guidelines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Preliminary Design Review in Practice:Internet Bookstore. . . . . . . . . . . 149 PDR for the “Write Customer Review”Robustness Diagram. . . . . 149 The Finished “Write Customer Review”Robustness Diagram. . . . 155 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 ■CHAPTER 7 Technical Architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 The 10,000-Foot View. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 What Is Technical Architecture?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 What Are the Duties of a Technical Architect?. . . . . . . . . . . . . . . . . 160 Technical Architecture in Theory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Top 10 Technical Architecture Guidelines. . . . . . . . . . . . . . . . . . . . . 161 Architectural Layering. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 Technical Architecture in Practice:Internet Bookstore. . . . . . . . . . . . . . . 164 About Spring Framework. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Anatomy of Spring Framework. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 ■CONTENTS ix 7745fmfinal.qxd 12/13/06 9:23 PM Page ix The Internet Bookstore Architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 Layered Architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 Flow of Events. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 Testability. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 Web Security. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 Top 10 Technical Architecture Errors (the “Don’ts”). . . . . . . . . . . . . . . . . 180 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 PART 3■ ■ ■Design and Coding ■CHAPTER 8 Sequence Diagrams. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 The 10,000-Foot View. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 Sequence Diagrams and Detailed OOD. . . . . . . . . . . . . . . . . . . . . . . 186 Sequence Diagram Notation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 Sequence Diagramming in Theory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 Top 10 Sequence Diagramming Guidelines. . . . . . . . . . . . . . . . . . . 187 How to Draw a Sequence Diagram:Four Essential Steps. . . . . . . 195 Continuing the Internet Bookstore Example. . . . . . . . . . . . . . . . . . . 206 Updating Your Class Diagrams As You Go Along. . . . . . . . . . . . . . . . 210 Synchronizing the Static and Dynamic Parts of the Model. . . . . . . 211 Internet Bookstore:Updating the Static Model. . . . . . . . . . . . . . . . . 211 Sequence Diagramming in Practice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 Exercises. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 Exercise Solutions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 More Practice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 ■CHAPTER 9 Critical Design Review. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 The 10,000-Foot View. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 Critical Design Review in Theory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 Top 10 Critical Design Review Guidelines. . . . . . . . . . . . . . . . . . . . . 235 Using the Class Diagrams to Find Errors on the Sequence Diagrams. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 ■CONTENTS x 7745fmfinal.qxd 12/13/06 9:23 PM Page x Critical Design Review in Practice:Internet Bookstore. . . . . . . . . . . . . . . 238 CDR for the “Show Book Details”Use Case. . . . . . . . . . . . . . . . . . . 238 CDR for the “Write Customer Review”Use Case. . . . . . . . . . . . . . . 245 The Updated Bookstore Diagrams. . . . . . . . . . . . . . . . . . . . . . . . . . . 252 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 ■CHAPTER 10Implementation: Getting from Detailed Design to Code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 The 10,000-Foot View. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 Programmer-Driven Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 Spring Framework. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 Implementation in Theory:Getting from Design to Code. . . . . . . . . . . . . 258 Top 10 Implementation Guidelines. . . . . . . . . . . . . . . . . . . . . . . . . . . 259 Implementation in Practice:Internet Bookstore. . . . . . . . . . . . . . . . . . . . . 263 Creating the Database. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 Preparing the Style Sheet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 Mapping Domain (Entity) Classes to Real Classes. . . . . . . . . . . . . . 266 Implementing the “Show Book Details”Use Case. . . . . . . . . . . . . . 268 Implementing the “Write Customer Review”Use Case. . . . . . . . . . 278 More Practice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 ■CHAPTER 11Code Review and Model Update. . . . . . . . . . . . . . . . . . . . . . . . . . 297 The 10,000-Foot View. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 Code Review and Model Update in Theory. . . . . . . . . . . . . . . . . . . . . . . . . 298 Top 10 Code Review and Model Update Guidelines. . . . . . . . . . . . . 299 Why Are Code Reviews Necessary After All That Design Work?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 Code Review and Model Update in Practice . . . . . . . . . . . . . . . . . . . . . . . 303 Code Review and Model Update Checklist. . . . . . . . . . . . . . . . . . . . 304 “Show Book Details”Use Case. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 “Write Customer Review”Use Case. . . . . . . . . . . . . . . . . . . . . . . . . . 309 Future Iterations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 ■CONTENTS xi 7745fmfinal.qxd 12/13/06 9:23 PM Page xi PART 4■ ■ ■Testing and Requirements Traceability ■CHAPTER 12Design-Driven Testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 Design-Driven Testing in Theory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 Top 10 Design-Driven Testing Guidelines. . . . . . . . . . . . . . . . . . . . . 330 Different Kinds of Testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 Driving Test Cases from Robustness Diagrams. . . . . . . . . . . . . . . . 334 Using the Agile ICONIX/EA Add-in. . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 Driving Unit Tests from the Test Cases. . . . . . . . . . . . . . . . . . . . . . . . 338 A Quick Introduction to JUnit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 Writing Effective Unit Tests. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 Design-Driven Testing in Practice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 Unit Tests for the Internet Bookstore. . . . . . . . . . . . . . . . . . . . . . . . . 344 Top 10 Design-Driven Testing Errors (the “Don’ts”). . . . . . . . . . . . . 369 More Practice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 ■CHAPTER 13Addressing Requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 Requirements Gathering in Theory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 Top 10 Requirements Gathering Guidelines. . . . . . . . . . . . . . . . . . . 374 Why Bother Tracking Requirements?. . . . . . . . . . . . . . . . . . . . . . . . . 377 Requirements Allocation and Traceability in Theory. . . . . . . . . . . . 378 Requirements Gathering in Practice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 Organizing Requirements in EA:BillyBob 2.0. . . . . . . . . . . . . . . . . . 379 Using a Visual Modeling Tool to Support Requirements. . . . . . . . . 382 More Practice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390


网友评论