swenet.org1 applying use case templates paul grabow - baylor university stephen frezza – gannon...
TRANSCRIPT
![Page 1: SWENET.org1 Applying Use Case Templates Paul Grabow - Baylor University Stephen Frezza – Gannon University](https://reader030.vdocuments.site/reader030/viewer/2022032723/56649d0f5503460f949e5639/html5/thumbnails/1.jpg)
SWENET.org 1
Applying Use Case Templates
Paul Grabow - Baylor UniversityStephen Frezza – Gannon
University
![Page 2: SWENET.org1 Applying Use Case Templates Paul Grabow - Baylor University Stephen Frezza – Gannon University](https://reader030.vdocuments.site/reader030/viewer/2022032723/56649d0f5503460f949e5639/html5/thumbnails/2.jpg)
SWENET.org 2Version 4
Introduction Who is the audience for this
presentation? Students who have
Read about use cases Discussed use cases in class
What is the purpose of this presentation? To learn how to apply a use case
template Not to give a comprehensive intro to
use cases
![Page 3: SWENET.org1 Applying Use Case Templates Paul Grabow - Baylor University Stephen Frezza – Gannon University](https://reader030.vdocuments.site/reader030/viewer/2022032723/56649d0f5503460f949e5639/html5/thumbnails/3.jpg)
SWENET.org 3Version 4
Some References Cockburn, Alistair,“Structuring Use Cases with Goals”,
Journal of Object-Oriented Programming, Sep-Oct 1997 & Nov-Dec 1997.
Cockburn, Alistair, Writing Effective Use Cases, Addison-Wesley, 2001.
Fowler, M., UML Distilled (3rd ed.), Addison Wesley, 2004.
Jacobson, Ivar, Object-Oriented software engineering: A Use-Driven approach, Addison-Wesley, 1992.
Larman, C., Applying UML and Patterns (3rd ed.), Prentice-Hall, 2005.
![Page 4: SWENET.org1 Applying Use Case Templates Paul Grabow - Baylor University Stephen Frezza – Gannon University](https://reader030.vdocuments.site/reader030/viewer/2022032723/56649d0f5503460f949e5639/html5/thumbnails/4.jpg)
SWENET.org 4Version 4
Use Case: Purpose To uncover and record functional
requirements
To serve as vehicle of communication between customer and contractor during requirements definition
Not to record non-functional requirements
![Page 5: SWENET.org1 Applying Use Case Templates Paul Grabow - Baylor University Stephen Frezza – Gannon University](https://reader030.vdocuments.site/reader030/viewer/2022032723/56649d0f5503460f949e5639/html5/thumbnails/5.jpg)
SWENET.org 5Version 4
Use Case: Vantage Point From “outside” the system
As an observer of the system
System viewed as “black box”
![Page 6: SWENET.org1 Applying Use Case Templates Paul Grabow - Baylor University Stephen Frezza – Gannon University](https://reader030.vdocuments.site/reader030/viewer/2022032723/56649d0f5503460f949e5639/html5/thumbnails/6.jpg)
SWENET.org 6Version 4
Use Case “Pieces” NameName: Verb phrase that represents the goal ScopeScope: {Enterprise, System, Subsystem}
Named LevelLevel: {Summary/System, User, Sub function} Pre-conditionPre-condition: Assumed to be true when UC
begins Success/Failure End ConditionsSuccess/Failure End Conditions: Must be
true (or false) after the UC finishes Primary ActorPrimary Actor: Who (or what) initiates the UC Stakeholders & InterestsStakeholders & Interests: Who & why they
care
![Page 7: SWENET.org1 Applying Use Case Templates Paul Grabow - Baylor University Stephen Frezza – Gannon University](https://reader030.vdocuments.site/reader030/viewer/2022032723/56649d0f5503460f949e5639/html5/thumbnails/7.jpg)
SWENET.org 7Version 4
Use Case “Pieces”, cont. Triggers, GuaranteesTriggers, Guarantees: What event starts
UC, what system promises to provide/do Main Success ScenarioMain Success Scenario: Sequence of
goal-achieving actions Extensions/VariationsExtensions/Variations: Conditions plus
actions/steps to handle branching conditions with respect to any step in main success scenario
Related InformationRelated Information: Performance target, open issues, schedule, super-use cases, sub use cases
![Page 8: SWENET.org1 Applying Use Case Templates Paul Grabow - Baylor University Stephen Frezza – Gannon University](https://reader030.vdocuments.site/reader030/viewer/2022032723/56649d0f5503460f949e5639/html5/thumbnails/8.jpg)
SWENET.org 8Version 4
Use Case Template From Alistair Cockburn See
http://alistair.cockburn.us/usecases/usecases.html
![Page 9: SWENET.org1 Applying Use Case Templates Paul Grabow - Baylor University Stephen Frezza – Gannon University](https://reader030.vdocuments.site/reader030/viewer/2022032723/56649d0f5503460f949e5639/html5/thumbnails/9.jpg)
SWENET.org 9Version 4
Constructing a Use Case1.1. Identify Actors & GoalsIdentify Actors & Goals
• List the actors and the goals that the system will support
2.2. Identify System Success (and FailureIdentify System Success (and Failure)• Identify main goal (that adds value for the stakeholders)
• Success: equivalent to the main goal; failure: inverse of success
3.3. Define Main Success ScenarioDefine Main Success Scenario• Describe ordered series of actions that achieve main goal for
typical actor (with no branching)
![Page 10: SWENET.org1 Applying Use Case Templates Paul Grabow - Baylor University Stephen Frezza – Gannon University](https://reader030.vdocuments.site/reader030/viewer/2022032723/56649d0f5503460f949e5639/html5/thumbnails/10.jpg)
SWENET.org 10Version 4
Constructing a Use Case, cont.
4.4. Identify Extensions and Sub-Identify Extensions and Sub-variationsvariations
• To cover branching and I/O alternatives• And superordinate and subordinate use
cases
5.5. Identify Related informationIdentify Related information• Performance target• Open issues• Schedule
![Page 11: SWENET.org1 Applying Use Case Templates Paul Grabow - Baylor University Stephen Frezza – Gannon University](https://reader030.vdocuments.site/reader030/viewer/2022032723/56649d0f5503460f949e5639/html5/thumbnails/11.jpg)
SWENET.org 11Version 4
System Success & Failure Success
Defined with respect to the stakeholders Often broader than the goal of the primary
actor System
Directly responsible for success (or failure) Cannot be responsible for what it cannot
control Actor(s)
Not directly responsible for success (or failure) because not part of system
![Page 12: SWENET.org1 Applying Use Case Templates Paul Grabow - Baylor University Stephen Frezza – Gannon University](https://reader030.vdocuments.site/reader030/viewer/2022032723/56649d0f5503460f949e5639/html5/thumbnails/12.jpg)
SWENET.org 12Version 4
Example: Create Bank Account
Goal in Context:
Existing customer requests new bank account
Scope: A single bank
Level: Primary
Pre-condition:
None
Success End Condition:
If customer ID is valid, then Bank account established
Failed End Condition:
Bank account not established when customer ID valid or bank account established when ID invalid
![Page 13: SWENET.org1 Applying Use Case Templates Paul Grabow - Baylor University Stephen Frezza – Gannon University](https://reader030.vdocuments.site/reader030/viewer/2022032723/56649d0f5503460f949e5639/html5/thumbnails/13.jpg)
SWENET.org 13Version 4
Example, cont.
Primary Actor:
Teller
Stakeholders:
Bank employees and customers
Trigger Event:
Teller asks system for new account
![Page 14: SWENET.org1 Applying Use Case Templates Paul Grabow - Baylor University Stephen Frezza – Gannon University](https://reader030.vdocuments.site/reader030/viewer/2022032723/56649d0f5503460f949e5639/html5/thumbnails/14.jpg)
SWENET.org 14Version 4
Example, cont.
Main SuccessMain Success ScenarioScenario
Actor Action System Action
1. Request new account
2. Determine if ID valid
3. Generate new account
4. Return new account number
5. Reads new account number
![Page 15: SWENET.org1 Applying Use Case Templates Paul Grabow - Baylor University Stephen Frezza – Gannon University](https://reader030.vdocuments.site/reader030/viewer/2022032723/56649d0f5503460f949e5639/html5/thumbnails/15.jpg)
SWENET.org 15Version 4
Example, cont.
ExtensionsExtensions
Condition Action
3a. Invalid IDNotify user: “Invalid ID”
![Page 16: SWENET.org1 Applying Use Case Templates Paul Grabow - Baylor University Stephen Frezza – Gannon University](https://reader030.vdocuments.site/reader030/viewer/2022032723/56649d0f5503460f949e5639/html5/thumbnails/16.jpg)
SWENET.org 16Version 4
Example, cont.
Sub-variationsSub-variations1. Teller may enter ID by
a. Typing on a keyboardb. Speaking into a microphonec. Scanning a written form
2. Teller may read account number ona. Computer screenb. Paper printed by the system
![Page 17: SWENET.org1 Applying Use Case Templates Paul Grabow - Baylor University Stephen Frezza – Gannon University](https://reader030.vdocuments.site/reader030/viewer/2022032723/56649d0f5503460f949e5639/html5/thumbnails/17.jpg)
SWENET.org 17Version 4
Example, cont. Superordinate use case:
None
Subordinate use case: IsIDValid GenerateNewAccount
![Page 18: SWENET.org1 Applying Use Case Templates Paul Grabow - Baylor University Stephen Frezza – Gannon University](https://reader030.vdocuments.site/reader030/viewer/2022032723/56649d0f5503460f949e5639/html5/thumbnails/18.jpg)
SWENET.org 18Version 4
Example, cont. What would be some possible
Performance targets? Open issues? Schedule
![Page 19: SWENET.org1 Applying Use Case Templates Paul Grabow - Baylor University Stephen Frezza – Gannon University](https://reader030.vdocuments.site/reader030/viewer/2022032723/56649d0f5503460f949e5639/html5/thumbnails/19.jpg)
SWENET.org 19Version 4
Suggestions
IterateIterate: For each UC Not all information will be
known/learned at the same time Okay to leave some things blank Several iterations typical A refinement process More detail added over time
![Page 20: SWENET.org1 Applying Use Case Templates Paul Grabow - Baylor University Stephen Frezza – Gannon University](https://reader030.vdocuments.site/reader030/viewer/2022032723/56649d0f5503460f949e5639/html5/thumbnails/20.jpg)
SWENET.org 20Version 4
Suggestions, cont.
After first version of scenario, can you … Split some actions for clarity? Partition actions that should be
developed together, or written later? Identify a group of actions that
should be a separate use case? Still claim that system is a black box?
![Page 21: SWENET.org1 Applying Use Case Templates Paul Grabow - Baylor University Stephen Frezza – Gannon University](https://reader030.vdocuments.site/reader030/viewer/2022032723/56649d0f5503460f949e5639/html5/thumbnails/21.jpg)
SWENET.org 21Version 4
Suggestions, cont. Check scope
Is scope consistent with scenario? Should scope be expanded? Restricted?
After several iterations of defining scenario, identify
EXTENSIONS
SUB-VARIATIONSSuperordinate Use Case: <optional, name of use case that
includes this one>Subordinate Use Cases: <optional, depending on tools, links
to sub.use cases>
![Page 22: SWENET.org1 Applying Use Case Templates Paul Grabow - Baylor University Stephen Frezza – Gannon University](https://reader030.vdocuments.site/reader030/viewer/2022032723/56649d0f5503460f949e5639/html5/thumbnails/22.jpg)
SWENET.org 22Version 4
Suggestions, cont. After completing extensions and
sub-variations fill in
Performance Target: <the amount of time this use case should take>
OPEN ISSUES
SCHEDULE
![Page 23: SWENET.org1 Applying Use Case Templates Paul Grabow - Baylor University Stephen Frezza – Gannon University](https://reader030.vdocuments.site/reader030/viewer/2022032723/56649d0f5503460f949e5639/html5/thumbnails/23.jpg)
SWENET.org 23Version 4
Summary Use case
Purpose: To identify functional requirements To server as vehicle of communication
Vantage point: From outside system System as a black box
Use case template provides “Check list” Uniform format