Moving Towards Specifications
• What functions will the new system
provide?
Lecture 9, Part 1:
– How will people interact with it?
Modelling Interactions – Describe functions from a user’s perspective
Jennifer Campbell • UML Use Cases
– Used to show:
CSC340 - Winter 2007 • the functions to be provided by the system
• which actors will use which functions
CSC340 University of Toronto 2
UML Use Case Diagrams Notation for Use Case Diagrams
Communication
Capture the relationships between actors association Use case
and use cases.
Change a
client contact Place book order
Add a Staff contact
Campaign
new client
Manager Customer
Actor
Record
client payment
Accountant System
boundary
CSC340 University of Toronto [BMF99] 3 CSC340 University of Toronto [BMF99] 4
Use cases and Actors Example: Staff Management
Add new Staff
• Use case: staff member Management
System
– a pattern of behavior that the new system is required Add new
to exhibit staff category
– a sequence of related actions performed by an actor
and the system via a dialogue. Change rate
for staff category
• Actor:
– anything that needs to interact with the system: Accountant
Change category
• a person for staff member
• a role that different people may play
• another (external) system. Calculate staff
bonuses
CSC340 University of Toronto 5 CSC340 University of Toronto 6
<<extends>> <<uses>>
When one use case adds behaviour to a base case One use case invokes another (like a procedure call);
– used to model a part of a use case that the user may see as – used to avoid describing the same flow of events several times
optional system behavior;
– puts the common behavior in a use case of its own.
– also models a separate sub-case which is executed conditionally.
Check out item
Distribute info
to students Cashier <<uses>>
Registrar <<extends>>
Swipe UPC
Distribute schedule code
info to students
CSC340 University of Toronto 7 CSC340 University of Toronto 8
Example: Car Example: Meeting Scheduler
Driver GasAttendant Mechanic
Initiator Participant
<<uses>> <<uses>>
Fill Up Check Oil Fix Car Edit <<extends>> Provide
Generate Withdraw constraints
Drive Schedule Constraints
Schedule
<<us
<<uses>>
>
<<uses>> meeing
s>
<<extends>>
se
es>>
<<
<<uses>>
u
Turn On
<<
us
Fix car on
Engine >>
es
the road ses
<<u
>>
Validate
User
CSC340 University of Toronto 9 CSC340 University of Toronto 10
Identifying Actors Finding Use Cases
• Look for: • For each actor, ask the following questions:
– the users who directly use the system – Which functions does the actor require from the system?
– also others who need services from the system – What does the actor need to do ?
• To find actors that are people/roles ask: – Does the actor need to read, create, destroy, modify, or store
some kinds of information in the system ?
– Who will be a primary user of the system? (primary actor)
– Does the actor have to be notified about events in the system?
– Who will need support from the system to do her daily tasks?
– Does the actor need to notify the system about something?
– Who will maintain, administrate, keep the system working?
(secondary actor) – What do those events require in terms of system functionality?
– Who or what has an interest in the results that the system – Could the actor’s daily work be simplified or made more efficient
produces ? through new functions provided by the system?
• To find actors that are external systems ask:
– Which hardware devices does the system need?
– With which other systems does the system need to interact with?
CSC340 University of Toronto 11 CSC340 University of Toronto 12
Generalizations Exercise: Online Order System
Generalization relations: “is a” • Actor classes
– It’s sometimes useful to identify
classes of actor Prepare a use case diagram for the online order
• E.g. where several actors belong
to a single class system:
• Some use cases are needed by
all members in the class
• Other use cases are only needed
by some members of the class • Using the online order system, the customer
– Actors inherit use cases from places his order (by adding items, possibly
the class
• Use Case classes removing items, and then submitting the order).
– Sometimes useful to identify a
generalization of several use • The order clerk retrieves the order from the
cases system and assigns it to a delivery person.
• The delivery person delivers the order to the
customer.
CSC340 University of Toronto 13 CSC340 University of Toronto 14
Example: Place
UML Sequence Diagrams book order
Place book order Customer
Customer Customer Invokes
• Describe a Use Case using Sequence Diagrams initiates the the search method
– Sequence diagrams show step-by-step what’s sequence in OnlineStore
involved in a use case
:OnlineStore :OrderDepartment :Bank
• Which objects are relevant to the use case :Customer
• How those objects participate in the function
search for book
– You may need several sequence diagrams to
describe a single use case.
• Each sequence diagram describes one possible scenario for Time [book exists] order book
the use case submit order request
– Sequence diagrams…
• …should remain easy to read and understand. debit account
• …do not include complex control logic
CSC340 University of Toronto 15 CSC340 University of Toronto 16
Example: Calculate staff bonuses Example: Add an advertisement
iteration
:Accountant :PayrollSystem :Staff :Bank
list payroll
[for each staff] *get account
Activation
[for each staff] *calculate bonus
update payroll
*[for each staff] update account
*[for each staff] schedule direct deposit
CSC340 University of Toronto 17 CSC340 University of Toronto 18
Modelling Sequences of Events Exercise: Online Order System
• Objects “own” information and behaviour • Prepare a sequence diagram for the Assign
– Objects don’t “know” about other objects’ Driver use case:
information, but can ask for it.
– To carry out business processes, objects The order clerk requests a list of drivers from the
have to collaborate. system. Using the system, he selects a driver
• …by sending messages to one another to invoke and the system checks the driver’s availability.
each others’ operations This is repeated until a driver has be selected
– Objects can only send messages to one (until an available driver is found). Then the
another if they “know” each other order clerk assigns the driver using the system,
• I.e. if there is an association between them. and the system notifies the delivery person.
CSC340 University of Toronto 19 CSC340 University of Toronto 20
References
[Amb03] Ambler, S. W. 2003. The Elements of UML
Style. Cambridge, UK: Cambridge University
Press.
[BMF99] Bennett S., McRobb S., and Farmer R. 1999.
Object-Oriented System Analysis and Design
using UML. Berkshire, UK: McGraw Hill.
CSC340 University of Toronto 21