Data Flow Diagrams
Data Flow Diagrams (DFD) Skill
Purpose
Visualize how data moves through a system. DFDs show what the system does with data, unlike Flowcharts which show control flow (sequence).
When to Use
- Understanding legacy systems.
- Analyzing data privacy (where does PII go?).
- Designing integrations.
- Security auditing (identifying trust boundaries).
DFD Notation (Gane & Sarson or Yourdon)
- Process (Circle/Rounded Rect): Transforms data.
- Format: Verb + Noun.
- Example:
Calculate Tax,Validate User.
- External Entity (Square): Source or Sink of data (Outside scope).
- Example:
Customer,Bank API,Admin.
- Example:
- Data Store (Open Rectangle/Parallel Lines): Resting data.
- Example:
Customer DB,Orders File.
- Example:
- Data Flow (Arrow): Movement of data packets.
- Label:
Order Details,Invoice.
- Label:
DFD Levels
Level 0: Context Diagram
Scope: Entire System as ONE process. Shows: System boundary and interaction with external world.
Example:
graph LR
Customer[Customer] -->|Order| System((Order Mgmt System))
System -->|Invoice| Customer
System -->|Payment Info| Bank[Bank]
Bank -->|Confirmation| System
Warehouse[Warehouse] -->|Stock Levels| System
System -->|Shipping Request| Warehouse
Note: NO data stores are shown in Level 0 unless shared with external systems.
Level 1: System Breakdown
Scope: Breaks the "One Process" into major sub-processes (3-7 bubbles). Shows: Data stores used by these processes.
Example:
- Process 1.0: Validate Order
- Input: Order (from Customer)
- Output: Valid Order
- Process 2.0: Calculate Total
- Input: Valid Order + Price (from Product DB)
- Output: Total Amount
- Process 3.0: Process Payment
- Input: Total + Card Info
- Output: Receipt
Methodology Rules
- Conservation of Data: A process cannot create data from nothing (must have input). A process cannot consume data without output (black hole).
- No Direct Connections:
- Entity ↔ Entity (Out of scope)
- Entity ↔ Data Store (Must go through a process)
- Data Store ↔ Data Store (Must go through a process)
- Labeling: All arrows must be labeled with the data moving (not the action).
DFD vs. Flowchart
| DFD | Flowchart |
|---|---|
| Data Focus | Control/Sequence Focus |
| "Calculate Tax" | "If Tax > 0 Then..." |
| No Looping/Branching | Has Loops/Decisions |
| Parallel/Async implied | Sequential implied |
Creating a DFD in Steps
- Identify Entities: Who sends/receives data? (Customer, Manager, API).
- Identify Processes: What logical actions happen? (Check inventory, Save user).
- Identify Data Stores: Where is info kept? (Files, Tables).
- Draw Level 0: Connect Entities to "The System".
- Explode to Level 1: Break system into sub-processes.
- Verify: Check for data conservation and missing flows.
Best Practices
- Keep it logical: Don't worry about physical implementation (e.g., "Paper file" vs "SQL DB" is irrelevant for logical DFD).
- Number processes: 1.0, 2.0, 3.0. Sub-processes: 1.1, 1.2.
- Limit complexity: If a level has > 7 processes, decompose further (Level 2).
Tools
- Visio.
- Lucidchart.
- Draw.io.
- Mermaid (Graph style).
More from danhvb/my-ba-skills
erp domain knowledge
Understand ERP systems covering Finance, HR, Supply Chain, Manufacturing, and Procurement modules for enterprise implementations
98e-commerce domain knowledge
Understand e-commerce business models, core modules, and requirements patterns for B2C, B2B, C2C, and Marketplace platforms
84crm domain knowledge
Understand CRM systems covering Sales, Marketing, and Customer Service modules for lead management, pipeline tracking, and customer engagement
36process mapping
Create clear business process diagrams using BPMN, flowcharts, and swimlane diagrams for Web, Mobile, ERP, CRM, CDP, and E-commerce projects
34requirements elicitation
Guide AI assistants in conducting effective requirements gathering sessions using proven techniques for Web, Mobile, ERP, CRM, CDP, and E-commerce projects
34user story writing
Write effective user stories with acceptance criteria for Agile/Hybrid development in Web, Mobile, ERP, CRM, CDP, and E-commerce projects
31