Fundamentals 15 min read

What Is a Data Flow Diagram (DFD) and How to Draw It

This tutorial explains what a Data Flow Diagram (DFD) is, describes its symbols such as external entities, processes, data stores, and data flows, and provides step‑by‑step instructions for drawing context‑level and level‑1 DFDs, including tips for improving readability.

Architects Research Society
Architects Research Society
Architects Research Society
What Is a Data Flow Diagram (DFD) and How to Draw It

What Is a Data Flow Diagram (DFD)?

A picture is worth a thousand words. A Data Flow Diagram (DFD) is a traditional method for visualizing information flow within a system. A clean DFD can graphically describe many system requirements and may be created manually, automatically, or by a combination of both.

It shows how information enters and leaves the system, what changes the information, and where the information is stored. The purpose of a DFD is to display the scope and boundaries of the entire system and to serve as a communication tool between system analysts and any stakeholders involved in redesigning the system.

Typically a DFD starts with a context diagram as level‑0, a simple representation of the whole system. To add detail, we move to a level‑1 diagram that contains lower‑level functions derived from the main system functions. Further analysis may produce level‑2, level‑3, etc., though levels beyond three are uncommon; the depth of decomposition depends on function complexity.

Diagram Symbols

Below is a brief introduction to the symbols you will encounter in the tutorial.

External Entity

An external entity can represent a person, system, or subsystem. It is a source or destination of data. In business processes it lies outside the system under study, so it is usually drawn at the edge of the diagram.

Process

A process is a business activity or function that performs data manipulation and transformation. Processes can be broken down into finer detail levels to show how data is handled.

Data Store

A data store represents persistent data that a process needs and/or produces. Examples include member forms, database tables, etc.

Data Flow

A data flow represents the movement of information; its direction is indicated by an arrow at the end of the connector.

What We Will Do in This Tutorial

We will show you how to draw a context‑level diagram and a level‑1 diagram.

How to Draw a Context‑Level DFD?

Select Diagram > New from the toolbar.

In the New Diagram window, choose Data Flow Diagram and click Next.

Enter a name for the context diagram and confirm.

Draw the first process by dragging a process shape onto the diagram and naming it (e.g., System).

Create an external entity by dragging the resource palette button to the top‑right of the system shape.

Release the mouse button and select Bi‑directional Data Flow → External Entity from the resource palette.

Name the new external entity "Customer".

Model the database accessed by the system by creating a data store with a bi‑directional data flow.

Name the new data store "Inventory".

Create two more data stores, "Customer" and "Transaction", completing the context diagram.

How to Draw a Level‑1 DFD?

Decompose the system process to form a new DFD instead of creating a fresh diagram. Right‑click the System and choose Decompose.

Connect the selected process (System) to the data stores and/or external entities; when prompted to add them to the new diagram, click Yes.

Note: The new DFD should initially look very similar to the context diagram. All elements remain unchanged except the system process, which is replaced by a placeholder.

Rename the new DFD by right‑clicking its background, selecting Rename…, and entering "Level 1 DFD".

Create three processes in the centre (Process Order, Ship Good, Receive Good) as shown.

Connect data flows between the elements. For example, the customer provides order information to the Process Order.

Drag from the customer shape, release the mouse, and select the appropriate data flow from the resource palette.

Select Data Flow from the resource palette.

The new order information is now represented by a data flow.

The Process Order also receives customer information from the database to process the order.

Create a data flow from Customer to Process Order.

Optionally label the data flow "Customer Information" (omitted here for brevity).

Combine order information from the customer (external entity) and customer data from the data store; Process Order then creates a transaction record in the database and a data flow to the transaction store is added.

To improve readability, right‑click the Level‑1 DFD and choose Connectors > Curved; connectors will now appear as curves.

Move shapes to reduce crowding.

At this point the Level‑1 diagram should look like the image below.

After the transaction is stored, create a data flow from Process Order to Ship Good.

When shipping, read the transaction information (order number) from the database to pack the correct product.

If space is limited, move shapes to create room.

Ship Good also reads the customer's shipping address from the Customer data store.

Ship Good updates the inventory database to reflect the shipped goods, creating a data flow from Ship Good to the Inventory data store.

When the order reaches the customer, the receipt process starts, preparing a receipt based on the transaction record stored in the database.

Create a data flow from the receipt process to the Customer external entity.

At this stage you have completed the Level‑1 diagram.

How to Improve DFD Readability

The completed diagram may look rigid and busy; this section shows how to adjust connectors for better readability.

Right‑click the Level‑1 DFD, choose Connectors > Curved; connectors become curved lines.

Move shapes to reduce crowding.

More Process Examples

The following list introduces various DFD examples covering different business domains, some with multiple context levels.

Customer Service System

Food Ordering System

Securities Trading

Supermarket Application

Vehicle Maintenance

Video Rental Store

Resources

Order-Processing.vpp

Order-Processing_result.vpp

Related Articles

How to Write Effective Use Cases?

Data Flow Diagram: Example – Order System

How to Model Relational Database Design with ERD?

How to Develop Existing and Future Business Processes?

Data Flow Diagram with Example – Customer Service System

Thank you for following, sharing, liking, and viewing.

software architecturefundamentalsSystem ModelingData Flow DiagramDFD
Architects Research Society
Written by

Architects Research Society

A daily treasure trove for architects, expanding your view and depth. We share enterprise, business, application, data, technology, and security architecture, discuss frameworks, planning, governance, standards, and implementation, and explore emerging styles such as microservices, event‑driven, micro‑frontend, big data, data warehousing, IoT, and AI architecture.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.