Home › How to draw a DFD

How to draw a DFD, step by step

From a blank page to a finished context diagram and Level 1 DFD in eight simple steps.

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.

Need a head start? Open a finished DFD example that's close to your project and edit it instead of starting blank.

The four symbols you'll use

SymbolShapeUse it for
External entityRectangleA person or system outside that sends or receives data
ProcessCircle (Yourdon) or rounded box (Gane–Sarson)Something the system does that changes data
Data storeOpen-ended boxData kept for later: a table, file or register
Data flowLabelled arrowData 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.

Open DrawDFD