Symbol Used In Data Flow Diagram (DFD)


  • can be people, departments, other companies, other systems…
  • are called sources if they are external to the system and provide data to the system, and sinks if they are external to the system and receive information from the system


  • must have at least one input and at least one output
  • at the primitive level (see below) are labeled with verb + object (e.g. “print invoice” or “add customer”) (e.g. in the hierarchy below, none of the processes are primitive)
  • at the non-primitive level, are labeled more generally (e.g. “customer maintenance” or “warehouse reports”)

Data stores:

· can be online or “hard copy” (see notes on logical VS physical DFD’s below)

· are labeled with a noun (e.g. the label “customer” indicates that information about customers is kept in that data store)

· data is stored whenever there are more than one process that needs it and these processes don’t always run one after the other (if the data is ever needed in the future it must be stored)

Data flows:

  • must originate from and/or lead to a process (this means that entities and data stores cannot communicate with anything except processes –remember that it takes a process to make the data flow)
  • can go from process to process, but that does imply that no data is stored at that point
  • can have one arrowhead indicating the direction in which the data is flowing
  • can have 2 arrowheads when a process is altering (updating) existing records in a data stores.

Drawing DFD’s

Except for the context DFD, each DFD represents the breakdown of one process.

For example, in the hierarchy on the next page, the level 1 DFD that represents the breakdown of process 1.2 will contain processes 1.2.1, 1.2.2 and 1.2.3. But it will not contain 1.2, nor any other process.

Context level diagrams show all external entities. They do not show any data stores. The context diagram always has only one process labeled 0.

When you draw a level 0 diagram, follow these rules:

· include all entities in the context diagram

· show any data store that are shared by the processes in the level 0 diagram

When you draw a level 1 or 2 etc. diagram, follow these rules:

  • include all entities and data stores that are directly connected by data flow to the one process you are breaking down
  • show all other data stores that are shared by the processes in this breakdown (these data stores are “internal” to this diagram and will not appear in higher level diagrams, but will appear in lower level diagrams)

That last statement is often confusing. Here is another explanation using the hierarchy on the next page. If a data store is used only by processes 3.2.1 and 3.2.3, then it will appear only in the level 2 diagram that includes processes 3.2.1, 3.2.2 and 3.2.3. It will not appear in the diagram that shows processes 3.1 and 3.2 because it is internal to process 3.2.

A DFD that contains processes that are not further broken down is called a primitive DFD.

In this course, we will only use logical DFD’s during the analysis phase. These DFD’s identify who is involved (entities), what the processes are and what data is needed. They do not indicate what technology will be used, nor do they even indicate which processes or data stores will be automated. For you interest, physical DFD’s resemble logical at first glance. But they do have differences such as:

  • data stores become files but may be changed in order to show distributed processing, etc.
  • there is additional notation to show volumes, locations etc.

Logical DFD’s such as the ones we are drawing in analysis do not include the following:

  • audit trails
  • backup and restore
  • security
  • temporary data stores needed only during one business transaction (e.g. holding the details of an online order just in case the customer does actually buy instead of just leaving the site part way through)


  1. this site is good. But can you make the image more clearer..? =)

    1. Sure John Gen ....
      Thanks for Your Feedback....
      I will improve it ....
      "Keep Breathing, Keep Learning, Keep Sharing"