A process model is used to describe system activities and flow of data among them; a graphical representation of how the system should operate. It can be used for the as-is system or to-be system. One such process modeling technique is data flow diagramming.
This tutorial focuses on the definition of the data flow diagram (DFD), levels of the DFD, and types of DFD.
What is a Data Flow Diagram?
A data flow diagram (DFD) graphically describes business processes and the flow of information that passes among them. DFD also describes inputs and outputs of the process; and where the data will be stored.
The data flow diagram is used to model a perspective of the system that can be easily understood by the non-technical users as the symbols and syntax used in DFD are simple. It is used by the analysts, customers, and developers to understand the requirements more clearly mainly during the requirements gathering and analysis phase of the SDLC. It shows the current system or the new system to be developed visually.
Elements of DFD
Following are the major details described in a DFD:
- External devices or systems that interact with the system by sending and receiving the data
- Processes that affect the data
- Data flow between the processes
- Data storage locations
DFA uses the following basic elements or symbols to describe how the data flows in a system (Please note that this tutorial follows Gane and Sarson style of symbols developed by Chris Gane and Trish Sarson):
- External Entities – An external entity can be a person, organization, or system that is external to the system; from entities, the information flows into the system (also known as a source) or the entities receive data from the system (also known as a sink). Entities are represented using rectangles.
- Processes – A process is an activity or a function that is carried by the system. Processes manipulate and transform the data; they receive some inputs and generate some outputs. A process name in the DFD should start with a verb and end in a noun e.g. ‘Generate Invoice’; it should have at least one input data flow and one output data flow. Each process in the DFD is numbered uniquely. Processes are described as a segmented rectangle.
- Data Stores – Data stores are used to store the information by the process that can be later retrieved by the same or another process. A data store name should be a noun e.g. ‘Orders’ and it should be assigned a unique number. Data stores are represented as a rectangle that has two parts; one for its number and another for its name.
- Data Flows – Data flows describe the flow of information between processes, entities and data stores. Every data flow name should be a noun. Data flows are represented using arrows; the data name is written above the arrow and the arrow shows the flow direction.
Levels of DFD
It is very difficult to explain all the processes in just one DFD, that is why DFDs are expressed a set of levels. The first step in creating DFDs is to identify the DFD elements (External entities, processes, data stores and data flows) explained in the section above. The next steps involve creating the different levels of the DFDs. The highest level DFD depicts the synopsis of the system and with decreasing levels of the DFDs, detailed explanations of each segment of the whole process are described.
The following are the four levels of data flow diagrams with examples of a generic template of each level:
- Context Diagrams – These diagrams represent the outermost level; an overview of the system. They show how the system interacts with the outside world. They show only one process i.e. the entire system and data to and from the external entities. Usually, data stores are not shown in these diagrams.
- Level – 0 Data Flow Diagrams – These diagrams describe general high-level processes (the first level of numbering is used), external entities, data flows, and data stores. An example of the first level of numbering for a process is 1.
- Level – 1 Data Flow Diagrams – Level – 1 DFD decomposes each parent process of the Level – 0 DFD into more details; into child processes. It also contains data stores, external entities, and data flows. An example of numbering for a process is 1.1.
- Level – 2 Data Flow Diagrams – Level – 2 DFD further decomposes the child process depicted in Level – 1 DFD. An example of numbering for a process is 1.1.1.
Types of DFD
Data flow diagrams can be categorized into two types:
- Logical DFD – A Logical DFD describes how the business operates. In this diagram, the processes are business activities. These diagrams also contain external entities, data stores, and data flows between the entities and processes. Data stores describe data storage locations without explaining how it is stored.
- Physical DFD – A physical DFD describes how the system will be implemented; information that is used to build a system. It describes the physical requirements of the system; containing hardware and software specifications, people involved in the system, etc.
Benefits or Characteristics of DFD
The following are the advantages of using the data flow diagrams:
- DFD depicts the logical flow of information in the system.
- It describes the physical construction specifications needed to build the system.
- It is useful to system analysts and customers to understand the business processes during the requirements analysis stage.
- Its symbols and syntax are simple and easy to understand which helps the customers who do not have any technical background.
- It is also useful for developers as they represent the various processes, entities, data stores, and data flows of the system.
- It helps describe system scope with boundaries and connections to other systems.
- As there are multiple levels of DFD, with each level of DFD describing elements into more details, it helps in understanding not only the overall overview of the system but also the detailed description of the processes.
Data flow diagrams are useful in showing various business processes of the system being developed, external entities sending and receiving data, data flow depicting the flow of data and data stores. DFD is a crucial part of the requirements gathering and analysis stage of the software development lifecycle that is helpful to numerous people such as analysts, customers, and the development team.
Kuldeep is the founder and lead author of ArtOfTesting. He is skilled in test automation, performance testing, big data, and CI-CD. He brings his decade of experience to his current role where he is dedicated to educating the QA professionals. You can find him on LinkedIn.