Data Flow Diagrams (DFDs) are a powerful tool for visualizing and understanding the flow of data within a system. To effectively represent the complexity of a system, DFDs are organized into different levels. In this article, we will explore how to determine the levels of a DFD and discuss the criteria for deciding how many levels a system should have.

Levels of DFD

  1. Context Diagram
    • The starting point of any DFD is the context diagram. It provides an overview of the entire system, showcasing the interactions between the system and its external entities.
    • External entities, inputs, and outputs are identified to create a clear representation of the system’s boundaries.
  2. Level One Diagram
    • Following the context diagram, the next level is the level one diagram. This expands on the processes identified in the context diagram, breaking them down into more detailed subprocesses.
    • Inputs and outputs are refined, and additional external entities or data flows may be added based on the detailed analysis of the system.

Levelling Criteria:

  1. Process Refinement
    • One reason for creating additional levels is to provide a more detailed description of a process. If a process in the level one diagram is complex and requires further elaboration, it can be expanded into a next-level diagram.
  2. Clarity and Simplification
    • As the diagram complexity increases, it may become cluttered and challenging to understand. To enhance clarity, processes can be grouped at a lower level, and a new process can represent the collective functionality.
    • This is particularly useful when related processes can be logically grouped together, simplifying the diagram and making it more comprehensible.
  3. Avoiding Unnecessary Complexity
    • Levelling should not be done arbitrarily. Processes grouped together should have a logical relationship. Randomly grouping processes may result in a convoluted diagram with unrelated processes and confusing data flows.
  4. Data-Store Interaction
    • If there are data-stores that interact only with specific processes, those processes and the associated data-store can be moved to a lower level. This helps in maintaining a clear representation of data interactions.

Levelling Process

  • Balancing Diagrams:
    • As you create new levels, it’s crucial to balance both the current and higher-level diagrams. This involves ensuring that inputs, outputs, and data flows remain consistent across levels.
    • Adjustments made at a lower level should be reflected in the higher-level diagrams to maintain coherence.

Tips and Tricks for Creating Effective DFD

  1. Start with the Context Diagram:
    • Always begin the DFD process by creating a context diagram. It establishes the system’s boundaries, external entities, and high-level data flows.
  2. Identify External Entities First:
    • When progressing to level one, identify external entities before delving into processes. This maintains a focus on the system’s interactions with the external environment.
  3. Constantly Balance Diagrams:
    • Keep both context and level one diagrams balanced. Any changes made at a lower level should be reflected in the higher-level diagrams to ensure consistency.
  4. Refine Inputs and Outputs:
    • In the level one diagram, focus on refining inputs and outputs for each process. This detailed analysis helps in understanding the data flow within the system.
  5. Use Descriptive Process Names:
    • When creating new processes at a lower level, ensure they have descriptive names. This aids in understanding the purpose of each process without referring to its details.
  6. Logical Process Grouping:
    • When simplifying a diagram by grouping processes, ensure there is a logical relationship among them. Attempt to come up with a new name for the grouped processes to verify the coherence of the grouping.
  7. Avoid Arbitrary Levelling:
    • Levelling should be purposeful. Don’t create lower-level diagrams arbitrarily. Each level should add value by either refining processes or enhancing clarity.
  8. Evaluate Data-Store Interactions:
    • When moving processes to a lower level, consider data-store interactions. If specific data-stores interact only with a group of processes, include them in the lower-level diagram for better context.
  9. Think About System Boundaries:
    • Periodically reassess the system boundaries. If external entities, inputs, or outputs change, update both the context and level one diagrams accordingly.
  10. Prioritize Clarity over Complexity:
    • The primary goal of levelling is to simplify and clarify. If a diagram is becoming overly complex, look for opportunities to group processes logically and streamline the representation.
  11. Review and Iterate:
    • Regularly review the DFDs and iterate as needed. Feedback from stakeholders and team members can provide valuable insights for improvements.
  12. Document Assumptions and Decisions:
    • Document any assumptions made and decisions taken during the DFD creation process. This helps in maintaining clarity and provides a reference for future updates.

Remember, DFDs are dynamic representations that should evolve with a deepening understanding of the system. Using these tips and tricks will contribute to creating clear, insightful, and effective Data Flow Diagrams.


The process of creating DFDs involves a systematic approach to levels and levelling. The goal is to provide a clear and comprehensive representation of the system while avoiding unnecessary complexity. Whether refining processes for clarity or simplifying a diagram, the key is to maintain a logical structure that enhances understanding. Remember, levelling is a tool meant to simplify and clarify, and it should be employed judiciously to achieve these objectives.

Leave a Comment

Your email address will not be published.