usecasediagrams
DESCRIPTION
Use Case Diagrams A Detailed Description Use case diagrams describe relationships between users and use cases A use case is a (usually high-level) user activity in the system A use case is a collection of related success and failure scenarios that describe actors using a system to support a goal A use case name should generally begin with a verbTRANSCRIPT
![Page 1: UseCaseDiagrams](https://reader030.vdocuments.net/reader030/viewer/2022020421/568bf3ad1a28ab89339b32e4/html5/thumbnails/1.jpg)
Use Case Diagrams
A Detailed Description
![Page 2: UseCaseDiagrams](https://reader030.vdocuments.net/reader030/viewer/2022020421/568bf3ad1a28ab89339b32e4/html5/thumbnails/2.jpg)
Use Case Diagrams
Use case diagrams describe relationships between users and use cases
A use case is a (usually high-level) user activity in the system A use case is a collection of related success and failure
scenarios that describe actors using a system to support a goal
A use case name should generally begin with a verb
![Page 3: UseCaseDiagrams](https://reader030.vdocuments.net/reader030/viewer/2022020421/568bf3ad1a28ab89339b32e4/html5/thumbnails/3.jpg)
Use Case Diagrams
Use case diagrams consist of at least two components: An actor
Actors are represented as stick people, with a label below, naming the actor's role
There may be multiple actors in a diagram A use case
Use cases are represented as ellipses, with a label inside, naming the use case
There may be multiple use cases in a diagram
![Page 4: UseCaseDiagrams](https://reader030.vdocuments.net/reader030/viewer/2022020421/568bf3ad1a28ab89339b32e4/html5/thumbnails/4.jpg)
Use Cases
For an example, consider an auction website (e.g. eBay)
The actor customer might: Register for an account Search for items by keyword Place a bid on an item Put an item up for auction Check the status of this item
![Page 5: UseCaseDiagrams](https://reader030.vdocuments.net/reader030/viewer/2022020421/568bf3ad1a28ab89339b32e4/html5/thumbnails/5.jpg)
Actors
An actor represents a role that a user might play For example, a network administrator at a
company might play the following roles: NetAdmin Employee
Each role must be represented separately
![Page 6: UseCaseDiagrams](https://reader030.vdocuments.net/reader030/viewer/2022020421/568bf3ad1a28ab89339b32e4/html5/thumbnails/6.jpg)
Use Cases
For the auction website example, a system administrator can act in two roles: Administrator Customer
So 'Colby Townsend' might actually perform use cases through both of these roles This is important, since users of a system may act under
more than one role
![Page 7: UseCaseDiagrams](https://reader030.vdocuments.net/reader030/viewer/2022020421/568bf3ad1a28ab89339b32e4/html5/thumbnails/7.jpg)
Auction Website Use Cases
Customer
Auction Website
Search for item
Place bid
Put item upfor auction
Register account
![Page 8: UseCaseDiagrams](https://reader030.vdocuments.net/reader030/viewer/2022020421/568bf3ad1a28ab89339b32e4/html5/thumbnails/8.jpg)
Use Case Diagrams
Obviously, actor and use case names must be unique within a given diagram
Consider use cases to be similar to classes: A use case describes an activity that is possible A given system may have several instances of
that activity throughout its lifetime A use case is a (coarse-grained/large) unit of
behaviour, and a class is a unit of software
![Page 9: UseCaseDiagrams](https://reader030.vdocuments.net/reader030/viewer/2022020421/568bf3ad1a28ab89339b32e4/html5/thumbnails/9.jpg)
Use Case Diagrams
If you consider use cases to be similar to classes, you might wonder about the following: Is there inheritance in use cases? Are there associations between use cases? Can use cases contain other use cases?
![Page 10: UseCaseDiagrams](https://reader030.vdocuments.net/reader030/viewer/2022020421/568bf3ad1a28ab89339b32e4/html5/thumbnails/10.jpg)
Use Case Inheritance
Consider the following use case from the auction website example: Place bid
Say that it is possible for a customer to pay for a purchased item by sending a cheque to the auctioning customer
What if it is also possible for a customer to pay using his/her credit card?
![Page 11: UseCaseDiagrams](https://reader030.vdocuments.net/reader030/viewer/2022020421/568bf3ad1a28ab89339b32e4/html5/thumbnails/11.jpg)
Use Case Inheritance
This is an example of use case inheritance A use case 'Pay with credit card' might inherit
from the use case 'Pay' In UML (and OOAD) terminology:
‘Pay with credit card’ is a specialization of 'Pay' 'Pay' is a generalization of 'Pay with credit card'
![Page 12: UseCaseDiagrams](https://reader030.vdocuments.net/reader030/viewer/2022020421/568bf3ad1a28ab89339b32e4/html5/thumbnails/12.jpg)
Use Case Inheritance
Use case inheritance is usually conceptual For example, 2 operations may be implemented differently,
but both represent the same 'kind of' action In object-oriented software, it is common to give
these actions similar names e.g. payByCreditCard(card: CreditCard),
payByCheque(cheque: Cheque) e.g. pay(card: CreditCard), pay(cheque: Cheque)
![Page 13: UseCaseDiagrams](https://reader030.vdocuments.net/reader030/viewer/2022020421/568bf3ad1a28ab89339b32e4/html5/thumbnails/13.jpg)
Use Case Inheritance
Use case inheritance is shown with a solid arrow, with a triangular arrowhead The arrow points from the specialized use case to
the generalized use case
![Page 14: UseCaseDiagrams](https://reader030.vdocuments.net/reader030/viewer/2022020421/568bf3ad1a28ab89339b32e4/html5/thumbnails/14.jpg)
Use Case Inheritance Example
Pay
Pay by Credit Card Pay by Cheque
![Page 15: UseCaseDiagrams](https://reader030.vdocuments.net/reader030/viewer/2022020421/568bf3ad1a28ab89339b32e4/html5/thumbnails/15.jpg)
Use Case Extensions
Use cases can be extended by other use cases
Usually, conditions exist somewhere in the use case's activity that would cause the extended use case to occur This 'somewhere' is called an extension point in
UML
![Page 16: UseCaseDiagrams](https://reader030.vdocuments.net/reader030/viewer/2022020421/568bf3ad1a28ab89339b32e4/html5/thumbnails/16.jpg)
Use Case Extensions
The original use case is called the base use case
The new use case is called the extended use case
The extended use case usually augments the base use case with additional behaviour
![Page 17: UseCaseDiagrams](https://reader030.vdocuments.net/reader030/viewer/2022020421/568bf3ad1a28ab89339b32e4/html5/thumbnails/17.jpg)
Use Case Extensions
For example, a use case for a hotel might be 'reserve hotel room'
An extension to this use case might be 'request coffee machine' to request that a coffee maker be in the room The customer still wants to reserve a hotel room,
but they also want a coffee maker in their room when they arrive
![Page 18: UseCaseDiagrams](https://reader030.vdocuments.net/reader030/viewer/2022020421/568bf3ad1a28ab89339b32e4/html5/thumbnails/18.jpg)
Use Case Extensions
Use cases extensions are specified using a dashed arrow The arrow points from the extended use case to the base
use case The arrows are labelled with «extend» plus a description of
the conditions which cause the extension to occur The base use case usually contains a description of the
extension points where the use case may be extended
![Page 19: UseCaseDiagrams](https://reader030.vdocuments.net/reader030/viewer/2022020421/568bf3ad1a28ab89339b32e4/html5/thumbnails/19.jpg)
Use Case Extension Example
Customer
Request coffeemachine
«extend»Customer requestscoffee machine
Reserve room
Extension pointsAdditional requests: After reserving a room
![Page 20: UseCaseDiagrams](https://reader030.vdocuments.net/reader030/viewer/2022020421/568bf3ad1a28ab89339b32e4/html5/thumbnails/20.jpg)
Use Case Inclusion
Use case inclusion is when one use case is used within another use case For example, the use cases 'withdraw' and
'deposit' in a bank, might be used within the use case 'transfer funds'
![Page 21: UseCaseDiagrams](https://reader030.vdocuments.net/reader030/viewer/2022020421/568bf3ad1a28ab89339b32e4/html5/thumbnails/21.jpg)
Use Case Inclusion
Use case inclusion is specified using a dashed arrow The arrow points from the container use case to
the included use case The arrow is labelled with «include»
![Page 22: UseCaseDiagrams](https://reader030.vdocuments.net/reader030/viewer/2022020421/568bf3ad1a28ab89339b32e4/html5/thumbnails/22.jpg)
Use Case Inclusion Example
Customer
Submit room key
«include»
Pay bill
«include»
Checkout
![Page 23: UseCaseDiagrams](https://reader030.vdocuments.net/reader030/viewer/2022020421/568bf3ad1a28ab89339b32e4/html5/thumbnails/23.jpg)
Actor Inheritance
It may also make sense to have actor inheritance in a system
For example, an employee might have a specialization called manager A manager might handle (in addition to normal
employee duties) customer complaints, refunds, scheduling, etc.
![Page 24: UseCaseDiagrams](https://reader030.vdocuments.net/reader030/viewer/2022020421/568bf3ad1a28ab89339b32e4/html5/thumbnails/24.jpg)
Actor Inheritance
Submit hours
Payroll
Employee
Manager
![Page 25: UseCaseDiagrams](https://reader030.vdocuments.net/reader030/viewer/2022020421/568bf3ad1a28ab89339b32e4/html5/thumbnails/25.jpg)
Use Case Links
It is possible to link diagrams together For example, one diagram might illustrate the
relationship between 'transfer funds', 'deposit', and 'withdraw' Another diagram might describe 'deposit' more specifically The diagrams may be referenced, or else an invisible
hyperlink may be used The same name is used for both use cases, thus it can be
assumed the symbols represent the same use case in both diagrams
![Page 26: UseCaseDiagrams](https://reader030.vdocuments.net/reader030/viewer/2022020421/568bf3ad1a28ab89339b32e4/html5/thumbnails/26.jpg)
Use Case Links
You could link a use case diagram to another use case diagram
You could also link a use case diagram to a behaviour diagram (such as a system sequence diagram or an activity diagram) Simply use a UML note