
- System Analysis and Design - Home
- System Analysis & Design - Overview
- Differences between System Analysis and System Design
- System Analysis and Design - Communication Protocols
- Horizontal and Vertical Scaling in System Design
- Capacity Estimation in Systems Design
- Roles of Web Server and Proxies in Designing Systems
- Clustering and Load Balancing
- System Development Life Cycle
- System Analysis and Design - Requirement Determination
- System Analysis and Design - Systems Implementation
- System Analysis and Design - System Planning
- System Analysis and Design - Structured Analysis
- System Design
- System Analysis and Design - Design Strategies
- System Analysis and Design - Software Deployment
- Software Deployment Example Using Docker
- Functional Vs. Non-functional Requirements
- Data Flow Diagrams(DFD)
- Data Flow Diagram - What It Is?
- Data Flow Diagram - Types and Components
- Data Flow Diagram - Development
- Data Flow Diagram - Balancing
- Data Flow Diagram - Decomposition
- Databases in System Design
- System Design - Databases
- System Design - Database Sharding
- System Design - Database Replication
- System Design - Database Federation
- System Design - Designing Authentication System
- Database Design Vs. Database Architecture
- Database Federation Vs. Database Sharding
- High Level Design(HLD)
- System Design - High Level Design
- System Design - Availability
- System Design - Consistency
- System Design - Reliability
- System Design - CAP Theorem
- System Design - API Gateway
- Low Level Design(LLD)
- System Design - Low Level Design
- System Design - Authentication Vs. Authorization
- System Design - Performance Optimization Techniques
- System Design - Containerization Architecture
- System Design - Modularity and Interfaces
- System Design - CI/CD Pipelines
- System Design - Data Partitioning Techniques
- System Design - Essential Security Measures
- System Implementation
- Input / Output & Forms Design
- Testing and Quality Assurance
- Implementation & Maintenance
- System Security and Audit
- Object-Oriented Approach
- System Analysis & Design Resources
- Quick Guide
- Useful Resources
- Discussion
Data Flow Diagram - Types and Components
Purpose of Data Flow Diagrams (DFDs)
A Data Flow Diagram (DFD) is a graphical representation that illustrates how data flows within a system, highlighting the processes, data stores, and external entities that interact with one another. DFDs are instrumental in understanding, designing, and documenting the way data moves through systems. By showing where information comes from, where it goes, and how its transformed along the way, DFDs help analysts, designers, and stakeholders clearly see the systems functionality and structure without needing to dive into complex technical details.
Key Concepts and Benefits
Key Concepts
Key elements− data flows, processes, data stores, and external entities.
Benefits of Using DFDs
Clarity and simplicity in visualization.
Helps in requirement analysis, design phase, and troubleshooting.
Types of Data Flow Diagrams
Data Flow Diagrams (DFDs) are hierarchical diagrams used to visualize the flow of information within a system. They are divided into different levels, where each level provides an increasing amount of detail.
Level 0 DFD− Context Diagram
The Level 0 DFD is also known as a context diagram and represents the system's highest-level view.
Purpose− It provides a broad overview of the system, showing the major entities (or external systems) that interact with it and the primary flow of information.
Components
Single Process− Usually represented as a single circle or rectangle with a label indicating the system's overall purpose (e.g., "Order Processing System").
External Entities− Squares representing entities that interact with the system, such as "Customer" and "Warehouse."
Data Flows− Arrows showing the main flow of data between external entities and the system.
Level 1 DFD− Decomposition of the Main System
The Level 1 DFD expands the Level 0 DFD, breaking down the main system process into sub-processes. It shows a bit more detail on how the system handles data.
Purpose− To break down the main process into smaller sub-processes, showing how the system functions internally.
Components
Multiple Processes− Each main activity in the system, such as "Process Order," "Manage Inventory," "Process Payment," and "Fulfil Order," is shown as a separate process.
Data Stores− Represented by open-ended rectangles, data stores like "Order Data Store" or "Inventory Data Store" show where data is stored within the system.
Data Flows− More specific data flows indicate what data is passed between processes and to/from data stores and entities.
Example− In an order processing system, Level 1 DFD would show processes like "Process Order," "Check Inventory," "Process Payment," and "Ship Order" connected by data flows. Each process would interact with data stores and external entities, showing more specific interactions than the Level 0 diagram.
Level 2 DFD− Detailed Process Breakdown
The Level 2 DFD provides a deeper dive into one of the processes in the Level 1 DFD. It represents an even finer level of detail.
Purpose− To show detailed steps within a single process, indicating precise actions taken to complete a part of the system's functionality.
Components
Sub-Processes− Each sub-process is a more granular step within one of the processes from Level 1. For example, "Check Inventory" might include steps like "Update Inventory" and "Check Stock Availability."
Additional Data Stores− If necessary, additional data stores specific to these finer steps may be included.
Data Flows− Detailed data flows show the exact movement of information within the chosen Level 1 process.
Example− For the "Process Order" process in an order processing system, the Level 2 DFD might break it down into steps like "Validate Order," "Check Inventory," "Authorize Payment," and "Confirm Order." Data flows would specify the data being checked, stored, or modified in each step, providing a clear picture of the workflow.
Sr.No. | DFD Level | Purpose Detail | Level | Typical Components |
---|---|---|---|---|
1 | Level 0 | Broad overview (context) | High-level | Single process, external entities, data flows |
2 | Level 1 | Main system decomposition | Medium | Multiple processes, data stores, specific data flows |
3 | Level 2 | Detailed process breakdown | Low-level (granular) | Sub-processes, additional data stores, detailed data flows |
Each DFD level provides a progressively more detailed view of the system, making it easier to understand and analyze complex workflows systematically.
Components of Data Flow Diagrams
Processes
Define processes as transformations of data within the system.
Illustrate with symbols and examples, e.g., "Order Processing" in an e-commerce DFD.
Data Stores
Define data stores as repositories where data is held within the system.
Discuss naming conventions and examples like "Customer Data" or "Inventory". Make the names easy to understand.
Data Flows
Define data flows as routes data takes between processes, data stores, and external entities.
Illustrate with labelled arrows and emphasize clarity in naming data flows.
External Entities
Define external entities as sources or destinations of data outside the systems control.
Numbering process of DFDs
In Data Flow Diagrams (DFDs), numbering processes is a structured way to show the hierarchical relationships between different levels of processes. This numbering method helps make DFDs more readable and organized, allowing viewers to trace a processs origins and connections within the system. Heres an explanation of numbering processes across the DFD levels−
Level 0 DFD (Context Diagram)
Single Process Numbering− Since Level 0 provides a high-level overview of the system, it is represented as a single process without any sub-processes. This process is often numbered as "0" (e.g., "Order Processing System (0)").
Purpose− The "0" label denotes that this is the main system, containing all further processes.
Level 1 DFD
Breaking Down the Main Process− In Level 1, the main process (Process 0) is decomposed into sub-processes that represent core functions of the system.
Numbering Convention− Each sub-process within Level 1 is numbered as 1, 2, 3, etc., based on its position in the process flow.
For example, in an Order Processing System−
Process 1− "Process Order"
Process 2− "Manage Inventory"
Process 3− "Process Payment"
Process 4− "Fulfill Order"
Purpose− This numbering indicates that each process is a primary function within the main system.
Level 2 DFD (and further levels)
Breaking Down Each Level 1 Process− In Level 2, each Level 1 process is broken down further into smaller steps or sub-processes.
Numbering Convention− The Level 2 sub-processes use decimal notation to indicate they are part of a Level 1 process.
For example, breaking down "Process Order (Process 1)"−
Process 1.1− "Validate Order"
Process 1.2− "Check Inventory"
Process 1.3− "Authorize Payment"
Process 1.4− "Confirm Order"
If another Level 1 process like "Manage Inventory (Process 2)" is broken down−
Process 2.1− "Check Stock Availability"
Process 2.2− "Update Inventory"
Further Levels− If required, Level 2 sub-processes can be broken down further in a Level 3 DFD, which would use numbering like 1.1.1, 1.1.2, and so on.
Benefits of DFD Process Numbering
Clarity− Numbering helps users quickly identify and trace processes and sub-processes across different levels.
Organization− It shows the hierarchical structure of processes, indicating how high-level processes break down into finer tasks.
Easy Reference− Each process has a unique identifier, making it easy to discuss and analyze specific steps within the system.