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

ShapeUML object in DiaUsed for
Stick figureActorA person or external system interacting with yours
EllipseUse caseA goal the actor wants to achieve (“Withdraw Cash”)
Solid lineAssociationActor participates in a use case
Dashed arrow + labelDependency labeled <<include>> / <<extend>>One use case reuses or optionally extends another
Large rectanglePlain 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.

Tip: If a use case diagram starts looking like spaghetti, you have too many use cases. Split it: one diagram per actor, or per subsystem. Markers of a good diagram: a non-technical reader can follow it in 30 seconds.

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.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *