iteration 3 relating use cases domain model refinement ssd and contracts
TRANSCRIPT
![Page 1: Iteration 3 Relating Use Cases Domain Model Refinement SSD and Contracts](https://reader035.vdocuments.mx/reader035/viewer/2022072008/56649d6e5503460f94a4fdce/html5/thumbnails/1.jpg)
Iteration 3•Relating Use Cases•Domain Model Refinement•SSD and Contracts
![Page 2: Iteration 3 Relating Use Cases Domain Model Refinement SSD and Contracts](https://reader035.vdocuments.mx/reader035/viewer/2022072008/56649d6e5503460f94a4fdce/html5/thumbnails/2.jpg)
Relating Use Case
![Page 3: Iteration 3 Relating Use Cases Domain Model Refinement SSD and Contracts](https://reader035.vdocuments.mx/reader035/viewer/2022072008/56649d6e5503460f94a4fdce/html5/thumbnails/3.jpg)
Avoid agonizing over use casesUse cases can be related, have common
subtasksWhile 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
![Page 4: Iteration 3 Relating Use Cases Domain Model Refinement SSD and Contracts](https://reader035.vdocuments.mx/reader035/viewer/2022072008/56649d6e5503460f94a4fdce/html5/thumbnails/4.jpg)
Use Case Terminology
Concrete - performs an entire actionAbstract - use cases that cannot standalone -
part of another use caseBase - Use cases that include other use cases
![Page 5: Iteration 3 Relating Use Cases Domain Model Refinement SSD and Contracts](https://reader035.vdocuments.mx/reader035/viewer/2022072008/56649d6e5503460f94a4fdce/html5/thumbnails/5.jpg)
Include
Allows dividing use cases into sub use casesCan decompose a complex use case Asynchronous events
Under extensions * mark async actionsUse include to separate out details
Include is a “pointer” from the original use case to something new.
![Page 6: Iteration 3 Relating Use Cases Domain Model Refinement SSD and Contracts](https://reader035.vdocuments.mx/reader035/viewer/2022072008/56649d6e5503460f94a4fdce/html5/thumbnails/6.jpg)
Extend
For baselined use cases Used when the initial use cases cannot be
changed.Inherited from another projectNot worth going back to update and changeBaselinedDocuments an earlier versionDoes not have a pointer from the original use
case.
![Page 7: Iteration 3 Relating Use Cases Domain Model Refinement SSD and Contracts](https://reader035.vdocuments.mx/reader035/viewer/2022072008/56649d6e5503460f94a4fdce/html5/thumbnails/7.jpg)
Fig. 30.1NextGen POS
Cashier
Customer
Handle CashPayment
Process Rental
Process Sale
Handle CheckPayment
Handle Returns
«include» «include»
«include»
«include» «include»«include»
«actor»Accounting
System
«actor»Credit
AuthorizationService
Manage Users
...
UML notation: the base use case points to the included use case
Handle CreditPayment
Process Sale and the new Process Rental are updated to include the various payment types.
![Page 8: Iteration 3 Relating Use Cases Domain Model Refinement SSD and Contracts](https://reader035.vdocuments.mx/reader035/viewer/2022072008/56649d6e5503460f94a4fdce/html5/thumbnails/8.jpg)
Fig. 30.2
Process Sale
Extension Points:Payment
VIP Customer
«extend»Payment, if Customer
presents a gift certificate
UML notation: 1. The extending use case points to the base use case.
2. The condition and extension point can be shown on the line.
Handle Gift Certificate Payment
Process Sale does not have a “gift certificate” state.
![Page 9: Iteration 3 Relating Use Cases Domain Model Refinement SSD and Contracts](https://reader035.vdocuments.mx/reader035/viewer/2022072008/56649d6e5503460f94a4fdce/html5/thumbnails/9.jpg)
Summary
Tweaks on use casesWhy 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