Data Flow Diagramming



index
Disabled back button Next Section
printable version




Section 0: Module Objectives or Competencies
Course Objective or Competency Module Objectives or Competency
The student will develop the analytical skills required to examine a situation in order to thoroughly understand the factors involved, to recognize any problems, and to derive potential solutions. Students will gain experience developing data flow diagrams (DFDs), including the context diagram, diagram 0, more detailed DFD levels.
Students will learn how to choose the level of details for DFD depending on the type of implementation team.
The student will experience developing both logical and physical DFDs, and when each is appropriate.
The student will experience partitioning DFDs in order to modularize a system prior to implementation.
The student will experience how to use DFDs as a both documentation and as a communication tool.
The student will be able to use their analytical skills to analyze system requirements and specify system processes and data flows, express requirements through various approaches, and develop that component of a Problem Specification. The student will apply the analytical skills learned in analyzing the requirements specification and transforming those requirements into a DFD in order to develop that component of the Problem Specification.


Section 1: Overview

Process models graphically represent the processes that capture, manipulate, store, and distribute data between a system and its environment and among system components.



Section 2: Data Flow Diagrams

Data Flow Diagrams (DFDs), in combination with state diagrams (not covered in this section), process specifications and a data dictionary make up the components of structured analysis.


Data Flow Diagrams


Benefits


Advantages of Graphical Depiction over narrative explanations of data movement



Section 3: Symbols

Video Explanation

Let's start with a video: Data Flow Diagram (DFD)

Let's see another video: How to Draw Data Flow Diagram?

Comparison of DeMarco and Yourdon vs. Gane and Sarson DFD symbol sets

Comparison of DeMarco and Yourdon vs. Gane and Sarson DFD symbol sets


Process or Transform


Data Store


Source/sink (external entity)


Data Flow



Section 4: Developing Data Flow Diagrams

Current System

Developing Data Flow Diagrams

Data flow diagrams are built in layers using the following guidelines:

Developing Data Flow Diagrams Using a Top-Down Approach

Developing Data Flow Diagrams Using a Top-Down Approach



Section 5: Context Diagram
Generic 
				Context Diagram

Generic Context Diagram


Example 
				Context Diagram

Example Context Diagram



Section 6: Diagram 0

Diagram 0 is an explosion of the context diagram, which means that it provides a detailed depiction of the context diagram. It represents a system’s major processes, data flows, and data stores at a high level of detail.

Generic Diagram 0

Generic Diagram 0


Example Diagram 0

Example Diagram 0



Section 7: More Detailed DFD Levels

Child Diagrams

Here's a video that explains the process: What is a Data Flow Diagram and Why Do You Need One?

And another: Data Flow Diagram


Creating Child Diagrams


Lower Levels


Numbering


Differences between the Parent Diagram (above) and the Child Diagram (below)

Differences between the Parent Diagram (above) and the Child Diagram (below)



Section 8: Choosing Level of Detail

A decision has to be made when to stop decomposition.


Rules for stopping decomposition

If you begin to decompose a process and end up with only two processes on the lower-level DFD, you have two options. Further reflection may reveal additional processes that you neglected to include in the decomposition. However, if you can envision no neglected processes you probably do not need to decompose it. Instead you should simply incorporate those two processes into the parent DFD.

Likewise, a DFD with more than nine processes becomes difficult for users to read and understand, because it is very complex and crowded. Some of these processes should be combined and explained on a lower-level DFD.



Section 9: Drawing DFDs

Tips for Creating DFDs

Because a data flow diagram is two-dimensional rather than linear, you can start at any point and work forward or backward through the diagram.


Guidelines for Drawing DFDs



Section 10: Rules, Rules, and More Rules

Naming Conventions


Diagramming Guidelines


Major Rules


Basic Rules to Keep in Mind


More Rules

Data Flow Diagramming Rules

Data Flow Diagramming Rules



Section 11: Common Errors

The following conditions are errors that occur when drawing a data flow diagram:

Data Flow 
				Diagramming Rules

Common DFD Errors


Typical Errors (clickable example)

Incorrect Version

Typical Errors that Can Occur in a Data Flow Diagram (click image for correct version)



Section 12: Example #1

Writing a Research Paper

Step 1: Draw Context Diagram

Research Paper Context Diagram.

Research Paper Context Diagram.

The context diagram establishes the boundary between the system and the external environment, i.e., shows scope and boundary.

The next level, Level 0, provides provides details for the system description.


Step 2: Decompose processes – using the functional decomposition resulting from the example in the previous set of notes, we begin to develop the Level 0 DFD. Be sure to include external entities and data flows from context diagram.

Recall that the top level processes determined in the functional decomposition included

Level 0 DFD: Write Research Paper

Level 0 DFD: Write Research Paper

Level 0 DFD: Write Research Paper

Labels:


Step 3: Expand each process on Diagram 0 in a Level 1 diagram of its own.

In this example, the Level 1 diagram will consist of four diagrams: Level 1 Diagram 1, Level 1 Diagram 2, Level 1 Diagram 3, and Level 1 Diagram 4.

Technique: Identify functions and what is needed to conduct functions.

For example, recall that the functional decomposition determined that Determine Paper Topic required the combined efforts of the following processes:

Remember that every flow in or out of Determine Paper Topic process on Level 0 must be shown in Level 1 Diagram 1: Determine Paper Topic.

Boundary is sometimes indicated with dotted line.

Level 1 Diagram 1: Determine Paper Topic

Level 1 Diagram 1: Determine Paper Topic

We do this for every process on Diagram 0, referring to the functional decomposition.


Step 4: Analyze every process in each Level 1 diagram to derive Level 2 diagrams

We won't take this example any farther, but if a process such as Level 1, Diagram 1, Process 1.3 (Perform Background Research) requires three or more tasks for it to be completed, then it should be decomposed into a Level 2 diagram.



Section 13: Example #2

Big Belly Burger Joint

Step 1: Draw Context Diagram

Big Belly Context Diagram

Big Belly Context Diagram

Step 2: Decompose process – list activities involved, and then group those activities into 3 to 9 major processes.

  1. Receive and Transform Customer Food Order
  2. Update Goods Sold File
  3. Update Inventory File
  4. Produce Management Reports

Step 3: Use major processes and external entities and data flows from context diagram to develop Level 0 DFD.

Big Belly Diagram 0

Big Belly Diagram 0

Step 4: Analyze each process in Level 0 to derive Level 1 diagrams.

The figure below shows a decomposition of Process 4: Produce Management Reports.

Big Belly Level 1 DFD

Big Belly Level 1 DFD

Step 5: Analyze each process in Level 1 to derive Level 2 diagrams.

The example below shows the decomposition of Level 1, Diagram 4, Process 4.3 (Prepare Management Reports).

Big Belly 
				Level 2 DFD

Big Belly Level 2 DFD



Section 14: Logical and Physical Data Flow Diagrams

Logical


Physical


Types of DFDs



Section 15: Progression of DFDs

The progression of creating data flow diagrams is

This approach ensures that essential features of the old system are retained and provides for a gradual transition to the design of the new system.

DFD Progression

DFD Progression


DFD Progression Example

DFD Progression Example


CRUD

CRUD 
				Matrix

CRUD Matrix



Section 16: Partitioning Data Flow Diagrams

Partitioning is the process of examining a data flow diagram and determining how it should be divided into collections of manual procedures and computer programs.


The reasons for partitioning a data flow diagram into separate computer programs are:



Section 17: Using Data Flow Diagrams

Let's see another video: Data Flow Diagrams - Simply Put!

Data flow diagrams can be used for several different purposes:



Section 18: Sample Data Flow Diagrams

Here are links to a couple of sample DFDs that other professors have posted. I thought you might like to try your hand at a few that have answers. I have not reviewed them thoroughly, so if you see anything questionable, ask!



Section 19: Resources