![]() |
Data Flow Diagram (DFD) tools are structured analysis techniques that are used for analysis and design in |
| software development. |
![]() |
A data flow diagram is an essential tool that is used in system analysis and design. |
![]() |
A DFD aid the designers/end users to visualize how the information being inputted travels through the system. |
![]() |
The main difference between the system flowchart and the DFD is that a DFD shows the flow of data through |
| the software instead of hardware. |
![]() |
Data Flow Diagram objectives include: |
![]() |
Providing a means for functional decomposition of projects/systems |
![]() |
Used as a primary tool in analysis to model data transformation in the system |
![]() |
As well as being a representation of how information flows in a system, DFDs also highlight the many parts of |
| a system that are interlinked with one another. |
![]() |
In system analysis data flow diagram is the primary step. |
![]() |
It shows how the data flows from higher to lower level of the software architecture. |
![]() |
This step of using DFDs is very crucial to design. |
![]() |
Without this step direct design can be a risky process. |
![]() |
DFD is a graphical depiction of the software program data flow through an information system that the |
| program represents. |
![]() |
Data Flow Diagrams can also be used to visualize the processing of the data in a software system. |
![]() |
A DFD provides information on data items flow from an external or internal data source to an internal data |
| store or an external data sink. |
![]() |
A DFD does not provide information about the timing of system processes, or about whether processes |
| operate sequentially or concurrently in parallel. |
![]() |
A DFD is different from a flowchart, as a flowchart illustrates how an algorithm (that is part of a program) |
| operates in terms of what order the algorithm will take place and the various conditions that may be | |
| associated with it, if any. |
![]() |
A DFD on the other hand concentrates on how the data is affected by the algorithms. How and from where is |
| the data inputted and outputted and how and where it will be stored. |
![]() |
In DFD approach information about the way the variables are used and defined in the project/system is |
| collected. |
![]() |
Information at specific parts of the system is collected during the process of data-flow analysis. |
![]() |
The parts of the system that are analyzed and have information collected at are called the 'basic blocks' of |
| the system. |
![]() |
Each process (block/node) in the DFD has input, output, and a function. Due to blocks being ordered one after |
| the other, the output of one block will be the input of the next one. The input of a block is always based on the | |
| output of the block before it. This produces a set of data-flow equations: |
![]() |
For each block i: |
![]() |
Outputi = functioni(inputi) |
![]() |
In the above equation, functioni is the function of the block i. It works on the input inputi, yielding the | |
| output Outputi. |
![]() |
Figure 3 shows the graphical representation of block i. |

![]() |
After solving the set of equations for all blocks of the DFG, the input and output are used to obtain information |
| about the program such as its 'basic blocks' properties; for example, when does one block start and finish. |
![]() |
As stated before, each block will have an input and output and both are closely related to one another, as the |
| output of one block will be the input of the next. |
![]() |
However, the very first block in the system will not have any output from a predecessor block to use as its |
| input and this makes its entry start a distinct one. |
![]() |
This makes the job of solving the block equations an easy one (if no cycles/loops exist in the control flow |
| graph), as the inputs of each block are calculated (based on the output of the preceding block). |
![]() |
The initial value of the input states is important to obtain correct and accurate results. |
![]() |
DFDs use a set of notations that represent various parts of the system i.e. data stores, data flow, processes, |
| and external entities. Data Flow Diagrams (DFDs) are directed graphs. |
![]() |
There are two elements in the DFDs: arcs and nodes. |
![]() |
Data is represented using arcs and circles are used to represent processes, which manipulate this data. |
![]() |
Processes can be large and complicated but DFDs have the ability to repeatedly break processes down into |
| small parts in order to show the sub-processes and their data flow. |
![]() |
In addition to this, these sub-processes can be broken down further using DFDs in order to fully understand |
| how they work and how the information flows between them. |
![]() |
In essence, DFDs illustrate the structure of a system as an arrangement of linked processes that serve |
| specific functions. |
![]() |
The lowest levels of sub-processes are processes which do not need to be broken down any further, |
| representing the functionality of the process. |
![]() |
The functionality of a process/sub-process is described by a process specification which can be written in |
| many forms, including pseudo-code, flowcharts, or even in natural language e.g. English. |
![]() |
There is an associated data dictionary with each DFD. |
![]() |
This serves as a set of entry definition for data flows, data elements, files, and databases. |
![]() |
Figure 1 shows the notations and symbols used in DFD. |

![]() |
Example: |
![]() |
The program that computes a=(X+Y)*(W-Z) is Figure 2 is represented as a DFG in figure 3. |
![]() |
In Figure 2, X,Y, W, and Z are inputs from the environment and A is an output to the environment. |
![]() |
T1 and T2 are temporary results (data stores). |


![]() |
A data flow diagram is developed using the event partitioning method which was described by Edward |
| Yourdon. |
![]() |
This method is described in some detail below. |
![]() |
In the course of event partitioning method and when using DFDs to describe systems, the analyst/designers |
| focuses on decomposing the system into component sub-systems, on identifying the transaction data in the | |
| data model. |
![]() |
A set of leveled data flow diagrams is created during this process. |
![]() |
In using the data flow approach of the system analysis and design, the system engineer first draws a context- |
| level data flow diagram (level 0 DFD). |
![]() |
This diagram describes the interaction between the system and its surrounding environment which acts as a |
| data source and a data sink. |
![]() |
In this level, the interactions between the system and the outside world are illustrated only as data flows that |
| cross the border between them. |
![]() |
The context diagrams depict the whole system as a one process (represented by a black box), and give no |
| hint or idea about its internal organization. |
![]() |
This level of abstraction shows the overall context of the system and its surrounding. |
![]() |
Context-level DFD is next expanded into Level 1 DFD (low level diagram) that shows some details of the |
| system being modeled. |
![]() |
Level 1 DFD shows the division of the system into sub-systems (processes). |
![]() |
Each process in level 1 DFD deals with one or more of the data flows to or from the external environment of |
| the system. |
![]() |
Each process also identifies internal data processing that shows how the system does its associated job, and |
| shows the data flow between system parts. |
![]() |
Level 1 DFD shows all processes with details such as data stores, external entities and internal entities and |
| the data flows between them. |
![]() |
Level 1 DFD is a decomposition of the process shown in Level 0 DFD. |
![]() |
Hence, there should be a Level 1 DFD for every process shown in a Level 0 DFD. |
![]() |
The expanded process in Level 0 DFD is the parent of the processes in the corresponding Level 1 DFD. |
![]() |
The processes in Level 1 DFD are children of the process in the corresponding Level 0 DFD. |
![]() |
The purpose of Level 1 DFD is to show the high-level processes of the system and their interactions. |
![]() |
Level 1 DFD is also called a process model. |
![]() |
It will have one, and only one, Level 1 DFD diagram. Level 1 DFD diagram must match its parent context level |
| diagram. |
![]() |
It must have the same external entities and the same data flows. |
![]() |
These external entities and the data flows can be broken down to more detail in the Level 1 DFD. |
![]() |
A Level 1 DFD shows the "Process Enquiry" process for the same system that is represented in Level 0 DFD. |
![]() |
As an example, the "design an electronic device" Level 0 DFD could be split into | |
| "design data path" and "design control" Level 1 DFD. |