Data flow diagram maker

Draw a DFD from text: external entities, numbered processes, data stores and labelled data flows. Edit the example below or paste your own, then export it for your report.

How to write steps
  • One step per line. Lines connect top to bottom.
  • End a line with ? to make a decision. Indent the answers under it: yes: Ship it, no: Refund.
  • Indent more lines under an answer to continue that branch.
  • -> Step name jumps back to an earlier step (a loop). no -> Step name works inside a decision.
  • Start, End, Done or Stop become rounded start/end shapes.
  • Shape tags: [input] [output] [doc] [db] [sub] [manual] [delay].
  • lane: Sales on its own line puts the next steps in a swimlane.
  • Or paste Mermaid code starting with flowchart TD. It’s detected automatically.

Mermaid code for this chart
flowchart LR
  %% External entities: rectangles. Processes: circles. Data stores: cylinders.
  S["Student"]
  T["Teacher"]
  P1(("1.0 Submit assignment"))
  P2(("2.0 Grade assignment"))
  D1[("D1 Submissions")]
  D2[("D2 Grades")]
  S -->|"Assignment file"| P1
  P1 -->|"Submission record"| D1
  D1 -->|"Ungraded work"| P2
  T -->|"Marks, feedback"| P2
  P2 -->|"Grade"| D2
  P2 -->|"Feedback"| S

Level 0 vs level 1, side by side

The idea behind DFD levels is zooming in. Toggle between the two levels of the same food ordering system and watch the single process open up without any data flow appearing from nowhere.

Level 0 treats the whole system as one process (the circle). You see only who it talks to (external entities, the rectangles) and what data crosses the boundary.

Count the flows: 2 in from the customer side, 3 out, plus the payment round trip. Switch to level 1 and check they’re all still there.

DFD symbols

ElementYourdon–DeMarcoGane–SarsonMermaid
External entityRectangleShaded rectangleE["Customer"]
ProcessCircleRounded rectangleP1(("1.0 Take order"))
Data storeTwo parallel linesOpen-ended boxD1[("D1 Orders")]
Data flowLabelled arrowE -->|"Order"| P1

FlowBuilder draws data stores as cylinders, which most readers recognise as storage. Say so in a caption if your course insists on a specific notation.

Rules for a correct DFD

  • Every process has at least one input and one output flow.
  • Data can’t flow directly between two entities or two stores. A process must sit in between.
  • Label every flow with a noun (“Order”, not “Send order”).
  • Number processes (1.0, 2.0…) and keep the numbers when you decompose (1.1, 1.2…).
  • Balance the levels: flows into and out of a process must match its child diagram.

Need the order of steps instead? That is a flowchart. For who does what, use a swimlane diagram.

Questions people ask

What is a data flow diagram (DFD)?

A DFD shows how information moves through a system: which processes transform it, where it’s stored and which outside people or systems send and receive it. Unlike a flowchart, it shows no decisions or order of steps, only data movement.

What are the four DFD symbols?

External entity (a source or destination outside the system, drawn as a rectangle), process (transforms data; a circle in Yourdon–DeMarco notation or a rounded rectangle in Gane–Sarson), data store (an open-ended box or cylinder) and data flow (a labelled arrow).

What is the difference between a level 0 and level 1 DFD?

Level 0, the context diagram, shows the whole system as one process with its external entities. Level 1 breaks that process into its main sub-processes and shows the data stores between them. Level 2 breaks a level 1 process down further.

DFD vs flowchart: which should I use?

Use a flowchart to show the order of steps and decisions (control flow). Use a DFD to show where data comes from, where it goes and where it’s kept. Systems analysis courses usually ask for both.

How do I draw a DFD in FlowBuilder?

Use Mermaid code in the editor: rectangles A["Customer"] for entities, circles P1(("1.0 Take order")) for processes, cylinders D1[("D1 Orders")] for data stores, and labelled arrows A -->|"Order"| P1. The starter chart shows the pattern.

More ways to chart it