How to Draw Activity 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.
Activity diagrams model workflows step by step: what happens, in what order, with which decisions and parallel branches. They’re the UML answer to “draw me the process” — and the closest thing Dia has to a lightweight BPMN. This guide is part of our UML in Dia series.
The objects you’ll use (UML sheet)
| Dia UML object | Meaning |
|---|---|
| Initial/End state | Start (filled circle) and end (bullseye) of the workflow |
| Activity | One step — rounded rectangle (“Validate payment”) |
| Branch | Decision diamond with guard conditions on outgoing flows |
| Fork/Union | Thick bar: split into parallel flows (fork) / rejoin them (union) |
| Transition | Arrow carrying the flow from step to step |
Step-by-step: order fulfillment workflow
1. Start and first activities
Place the Initial node, then Activity boxes: Receive Order → Validate Payment. Connect with Transition arrows.
2. Add a decision
Drop a Branch diamond after payment validation. Label outgoing arrows with guards in square brackets: [payment ok] → Pack Items, [failed] → Notify Customer → end.
3. Show parallel work with fork/join
After Pack Items, a Fork bar splits the flow: Print Label and Reserve Courier happen in parallel. A Union bar rejoins them before Dispatch. This is the construct most people get wrong — fork and join must pair up.
4. End states
Every path must reach the bullseye End state. A workflow diagram with a dangling path is unfinished — trace each branch to confirm.
Swimlanes: the honest way in Dia
- Draw one tall rectangle per lane (Customer / Warehouse / Courier) side by side, no fill, light border.
- Label each lane at the top.
- Place your activities inside the right lane and route transitions across lane borders.
- Use View → Snap to Grid so lane dividers stay perfectly straight.
For heavy swimlane/BPMN work every day, a dedicated tool is honestly faster — see our BPMN in Dia guide for where Dia stops and draw.io takes over.
Activity diagram vs flowchart vs BPMN
- Flowchart (guide): informal, any audience. Use for documentation and onboarding docs.
- Activity diagram: UML-formal, for software teams. Use when the workflow is part of a system design.
- BPMN (guide): business-process formal, with events and message flows. Use when the business analysts own the process.
FAQ
Does Dia have swimlane shapes?
No native swimlane object exists in Dia’s sheets. The manual method above (labeled rectangles + grid snap) is the standard workaround the community uses.
How are activity diagrams different from state diagrams?
Activity diagrams show workflow steps; state diagrams show an object’s lifecycle. Related but different questions.
Can I show who does each step?
Yes — that’s exactly what the manual swimlanes above are for. One lane per role or department.
How do I label decision branches?
Double-click the transition arrow and add the guard in brackets: [approved], [rejected].
Is an activity diagram enough for business processes?
For software-adjacent workflows, usually yes. For formal business process modeling with events, timers, and message flows, learn BPMN in Dia instead.
