You must add a |reason=
parameter to this Cleanup template – replace it with {{Cleanup|February 2005|reason=<Fill reason here>}}
, or remove the Cleanup template.
A data flow diagram (DFD) is a graphical representation of the "flow" of data through an information system. A data flow diagram can also be used for the visualization of data processing (structured design). It is common practise for a designer to first draw a context-level DFD first which shows the interaction between the system and outside entities. This context-level DFD is then "exploded" to show more detail of the system being modelled.
Data flow diagrams were invented by Larry Constantine, the original developer of structured design, based on Martin and Estrin's "data flow graph" model of computation.
Types of DFD
In analysing a business, several sets of DFD's are drawn. Initial DFD's might model the existing system (flaws and all), while later DFD's may model a solution to the problem being analysed. For these solution DFD's a logical and physical DFD is drawn. Physical DFD's represent physical files and transactions, while logical or conceptual DFD's can be used to represent business functions or processes.
Components
A data flow diagram illustrates the processes, data stores, and external entities in a business or other system and the data flows between these things. Four diagramatical components are used to develop a DFD. These are:
- Data Flow (represented by an arrow)
- Data Process (represented by a circle or rounded rectangle)
- External Entity (represented by a square or oval, also called a 'Source/Sink')
- Data Store (represented by two parallel lines, sometimes connected by a vertical line)
Data Flow
A data flow is the core of the data flow diagram. Each data flow in the system should be unique and demonstrate data flowing between two other elements in the system. Depending on the notation used, several rules apply to data flows, such as a limitation on two-sided arrows. It is generally agreed that each data flow should be uniquely labelled in the DFD.
Data Process
A data process represents the transformation of data in the system. Generally, this represents something that happens in the system, such as 'student enrolment'. Data that flows into a process should be different than the data that flows out of the process.
Data Store
A data store represents 'data at rest'. Data stores generally store data on a specific catagory, such as 'students' or 'employees'. Data flowing out of a data store is considered a read, while data flowing into a data store is considered a write or update.
External Entities
An external entity represents the source or sink of data external to the system. When modeling a DFD, the designer is not interested in the inner workings of the external entity, but only what data is produced/needed by the entity.
Duplication
External entities and data stores can be duplicated in the system for more clarity, while processes cannot. External entities that have been replicated are marked by * in the lower right part of the oval that represents that entity. Data stores have a double line of the left side of their box.
Developing a DFD
A system is modelled using a DFD in several stages. At first, the system designer makes a context-level DFD, which shows the interaction between the system and the external entities. This context-level DFD is then blown up into a Level 0 DFD, which shows the main processes that contribute to the system. Each process is then expanded into a lower-level diagram. This process then continues on the subsequent processes.
Balancing a DFD
When developing a DFD over multiple levels, special attention must be paid to balancing the DFD. The process of balancing involves ensuring that the inputs and outputs of each level are conserved in subsequent levels.
External links
- Quick Reference
- Article "Data Flow Diagrams (DFD)" by Vicki L. Sauter
- Article "Data Flow Diagrams" by Tony Drewry
- Article "Representing Systems With Data Flow Diagrams" by Kenneth A. Kozar
- Article "The Semantics of Data Flow Diagrams" by P. D. Bruza and Th. P. van der Weide
- Chapter "Dataflow Diagrams" by Ed Yourdon