How to Draw Use Case Diagrams in Dia
Dia Diagram Editor is a free, open-source project by the GNOME community. This site is an independent community resource — we are not affiliated with the GNOME Dia project. Download links point to the official upstream release channels.
Use case diagrams are the first diagram most students draw in a UML course — and Dia handles them well. This guide is part of our UML in Dia series (see also our class diagram and sequence diagram tutorials). We’ll build a classic ATM example: actors, use cases, and include/extend relationships.
What you need
- Dia installed (download Dia here — free, Windows/Mac/Linux)
- The UML sheet enabled: File → Sheets and Objects, tick UML
The building blocks
| Shape | UML object in Dia | Used for |
|---|---|---|
| Stick figure | Actor | A person or external system interacting with yours |
| Ellipse | Use case | A goal the actor wants to achieve (“Withdraw Cash”) |
| Solid line | Association | Actor participates in a use case |
| Dashed arrow + label | Dependency labeled <<include>> / <<extend>> | One use case reuses or optionally extends another |
| Large rectangle | Plain box (Assorted sheet) | System boundary — everything inside is your system |
Step-by-step: ATM use case diagram
1. Set up the canvas
Create a new diagram (File → New). From the UML sheet, everything you need is two clicks away.
2. Draw the system boundary
Drag a large rectangle from the Assorted sheet and label it “ATM System”. All use cases go inside; actors stay outside. This one box instantly makes the diagram readable.
3. Add the actors
Drag Actor objects outside the boundary: Customer on the left, Bank Clerk on the right. Double-click each to set the name.
4. Add the use cases
Drag Use case ellipses inside the boundary: Withdraw Cash, Check Balance, Deposit Funds, Authenticate. Keep names short and verb-led.
5. Connect actors to use cases
Use plain Association lines from each actor to the use cases they participate in. Lines in Dia snap to connection points — they turn red when properly attached, so the diagram survives rearranging.
6. Add include/extend
Withdraw Cash always requires Authenticate — that’s an include. Draw a dashed Dependency arrow from Withdraw Cash to Authenticate and label it <<include>>. A paper receipt is optional — that’s an extend: dashed arrow from Print Receipt to Withdraw Cash labeled <<extend>>.
7. Tidy up and export
Select all (Ctrl+A) and use alignment via right-click to straighten rows. Export with File → Export as SVG for reports or PNG for slides — see our high-quality export guide.
Common mistakes
- Putting the system inside actors: actors are always outside the boundary box.
- Functional decomposition: “Press Button” is not a use case — “Withdraw Cash” is. Use cases deliver value to the actor.
- Overusing extend: if everything extends everything, merge them.
FAQ
Does Dia have a dedicated use case template?
No template needed — the UML sheet’s Actor and Use case objects plus a plain rectangle for the boundary are everything. It takes about two minutes to set up.
How do I draw the system boundary?
Use a large rectangle from the Assorted sheet, no fill, labeled with the system name at the top. It’s a visual convention, not a special UML object.
Can I show include vs extend in Dia?
Yes: draw a Dependency (dashed arrow) and double-click the line to add the <<include>> or <<extend>> stereotype as its label.
Which UML diagrams should I learn next?
Continue the series: class diagrams for structure, sequence diagrams for behavior over time.
Is Dia good enough for a university UML assignment?
For use case, class, sequence, state and activity diagrams — absolutely. Export to PDF and it looks as clean as anything from a paid tool.
