90 likes | 110 Vues
Learn to relate use cases efficiently and avoid analysis paralysis. Understand use case terminology and refine them effectively using concrete, abstract, base, include, and extend concepts. Discover how to update use cases for better process modeling.
E N D
Week 11 Iteration 3 Relating Use Cases Domain Model Refinement SSD and Contracts
Chapter 30 Relating Use Case
Avoid agonizing over use cases • Use cases can be related, have common subtasks • While useful - this can waste time! • “Analysis paralysis” • Write the use cases first • Find obvious relations as you go, when they make sense and help • Don’t agonize over getting it perfect. • “A good plan now is worth a perfect plan in the indefinite future.” - George Patton
Use Case Terminology • Concrete - performs an entire action • Abstract - use cases that cannot standalone - part of another use case • Base - Use cases that include other use cases
Include • Allows dividing use cases into sub use cases • Can decompose a complex use case • Asynchronous events • Under extensions * mark async actions • Use include to separate out details • Include is a “pointer” from the original use case to something new.
Extend • For baselined use cases • Used when the initial use cases cannot be changed. • Inherited from another project • Not worth going back to update and change • Baselined • Documents an earlier version • Does not have a pointer from the original use case.
Fig. 30.1 Process Sale and the new Process Rental are updated to include the various payment types.
Fig. 30.2 Process Sale does not have a “gift certificate” state.
Summary • Tweaks on use cases • Why are we coming back to use cases? • When you learn a new process, you have to jump in somewhere along the cycle. • Not clear what to do until you have a view of the entire cycle. • Once the overall structure is in place, come back and fill in some of the details