Sample Use Case Diagrams
Telephone
Sometimes it's useful to distinguish between actor/use case associations that are initiated by the actor and those initiated by the system. This is really an attribute of the association, but in this diagram I am using a navigation arrow to point away from the initiator.
Make Call Scenarios
Here are some make call scenarios:
connected, busy, no answer, invalid number
A scenario may be described using a script. Here's a script for the connected scenario of make call:
subscriber: dial number
telephone: send number to C.O.
central office: ring
telephone: play ring tone
central office: connect
telephone: connect
subscriber: talk
subscriber: hangup
telephone: disconnect
A sequence diagram is a slightly more formal way to describe a scenario:
VCR
Document Editor
The document editor use case model highlights the distinction between includes, extends, and specializes (i.e., generalizes). It's useful to distinguish between actor initiated and use case initiated use cases. Save As specializes Save because it's actor-initiated, whereas First Save extends Save because it can only be initiated by the Save use case. Like First Save, Get Path is also use case initiated, but Get Path is always initiated by First Save, Save As, and Open, while First Save is only conditionally initiated by Save (i.e., if it's the first time the document is being saved).
Note: Dependency arrows are broken in Rose.
Menus and menu items often make good use cases. Often menu item use cases are generalized by their parent menu use case. Buttons and boxes also make good use cases. When the user activates a text or list box, a message is sent to the system. In this case we may regard the text or list selection as a message parameter.
Order Processing System
View Catalog extends Place Order because it is only initiated if the Customer doesn't know what he wants to order.
Credit Card Payment System
It's also possible to show relationships (associations and generalizations) between actors in a use case diagram. (Remember, Actor is just a class stereotype with a special icon. Also remember that when UML talks about actors, what they really mean are roles.) Showing relationships between actors is mostly useful for modeling business processes.
Stack Calculator
Apply Function, Apply Trig Function, and Apply Arithmetic Function are abstract use cases:
Other Examples
Sketch use case diagrams for the following systems:
Point of Sale Terminal (POST)
Inventory Control System
Payroll System
Streaming Media Player
Electronic Business
Web Browser
Web Server
Computer
Car
TV
PBX
Call Center
Chat Room
Statistics/Probability Calculator
Financial Calculator
Graphing/Geometry Calculator
Physics Calculator
Integrated Development Environment
Electronic Auction
Patient Monitoring System
ATM
Battlefield Management System
Manufacturing Control System
Embedded flight Control System
Database Management System
Solitaire
Doom