Data flow diagram
A data flow diagram (DFD) is graphic representation of the "flow" of data through business functions or processes. More generally, a data flow diagram is used for the visualization of data processing. It illustrates the processes, data stores, external entities, data flows in a business or other system and the relationships between these things. Physical DFD's represent physical files and transactions, or while logical or conceptual DFD's can be used to represent business functions or processes. DFDs can be of an existing system, or can describe the requirements for a proposed or planned system. A DFD of an existing system should represent the functions and processes that are already in place, flaws and all. A required system DFD is a diagram of a system that will be implemented in the place of the current one.
Table of contents
The components described or illustrated in a DFD should include:
- External entities
- Level-1 processes
- Data stores
- Transient data stores
- Manual data stores
- Computerized data stores
- Data flows
- Unidirectional data flows
- Bidirectional data flows
A data flow diagram's boundary is the imaginary boundary of the system. This is conventionally drawn on the diagram as a continuous line going through all the data flows from external entities to processes and back.
Note: It is a bad practice to have external entities have direct access to data stores.
External entities and data stores can be duplicated in the system for more clearity, while processes cannot. External entities that have been replicated are marked by * in the lower right part of the oval that represents that entity. Data stores have a double line of the left side of their box.
On Level 0, a DFD shows all the data flows from the system to the external entities, with the whole system being represented as one large process. A Level 0 diagram is sometimes created to show the interaction of the system with external entities, some of which may also be systems.
A Level 1 DFD normally shows very few (8 – 10) processes, and is intended to explain the basic functioning of the system. A Level 1 diagram should show all the processes of the system and the external entities that the system actively interacts with (and in some rare cases exchange of data between those external entities, when absolutely necessary).
Higher levels break down single processes to show internal data flows. Each process can contain subprocesses and internal data stores, processes that cannot be broken down any further are represented by * in the lower right corner of the process box.
Higher levels of the diagram break up any single process into subprocesses, and show that process's interaction with the system as well as the internal composition of the process. Breaking down is done until no further break-down is possible.
- Quick Reference
- Chapter from a book by Edward Yourdon
- Article "Data Flow Diagrams (DFD)" by Vicki L. Sauter
- Article "Data Flow Diagrams" by Tony Drewry
- Article "Representing Systems With Data Flow Diagrams" by Kenneth A. Kozar
- Article "The Semantics of Data Flow Diagrams" by P. D. Bruza and Th. P. van der Weide