This guide walks through drawing a complete data flow diagram, from a blank page to a finished context diagram and Level 1 DFD, using the free DrawDFD editor. It works the same with pen and paper. The editor just saves time and catches mistakes.
The four symbols you'll use
| Symbol | Shape | Use it for |
|---|---|---|
| External entity | Rectangle | A person or system outside that sends or receives data |
| Process | Circle (Yourdon) or rounded box (Gane–Sarson) | Something the system does that changes data |
| Data store | Open-ended box | Data kept for later: a table, file or register |
| Data flow | Labelled arrow | Data moving between the other symbols |
Step by step
Step 1: Decide what's inside the system
Write one sentence describing the system, then list everything it must do. Anything the system does itself is inside. People, organisations and other software that send or receive data are outside. They become your external entities.
Step 2: List the external entities
Typical entities are users (Customer, Student, Patient), staff roles (Librarian, Doctor, Admin) and outside systems (Bank, Payment Gateway, Courier). Use role names, not personal names.
Step 3: Draw the context diagram
In the editor, press P to add one process, rename it to your system's name and set its number to 0. Press E for each entity and arrange them around it. Then hover over an entity and drag from a dot to the process to draw each data flow, and type what data it carries.
Step 4: Break process 0 into a Level 1 DFD
Start a new diagram. Add 3–7 processes for the main jobs your system does, numbered 1.0, 2.0, 3.0. Name each one with a verb and a noun (“Issue Book”, “Generate Bill”).
Step 5: Add data stores
Press D for each place data is kept (Members, Orders, Payments). Data stores get IDs like D1, D2. Connect processes to stores: an arrow into a store means writing, and out of a store means reading.
Step 6: Connect and name every data flow
Re-draw each flow from the context diagram against the correct Level 1 process, so the diagrams stay balanced. Then add flows between processes and stores. Every arrow needs a noun label.
Step 7: Check the rules
Click Check DFD rules. Fix any black hole (a process with no output), miracle (a process with no input), flow that skips a process, or store that's never read or written.
Step 8: Tidy up and export
Use a curved or S-curve line style if lines cross, switch notation if your syllabus needs Gane–Sarson, then click Export PNG. Also click Save to keep an editable copy.
Going further: Level 2 DFDs
If one Level 1 process is still complex, give it its own diagram. Draw a System boundary shape labelled with the parent process (for example “2.0 Place Order”) and put its steps inside, numbered 2.1, 2.2, 2.3. Flows crossing the boundary must match the flows connected to 2.0 on Level 1.
Common mistakes to avoid
- Entity talks to entity: data between two outside parties isn't part of your system. Remove it.
- Entity writes to a data store: put a process in between.
- Verbs on arrows: arrows carry data (“Login details”), not actions (“Login”).
- Flowchart thinking: DFDs have no decisions, loops or order of steps.
- Unbalanced levels: an entity on Level 1 that's missing from the context diagram, or the other way round.
- Too many processes: more than about 7 on one level is hard to read. Group them and use Level 2.
Ready to draw your DFD?
Open the free editor. No sign-up, and you can start from any example.