Data-flow diagram: Difference between revisions

Content deleted Content added
Ranglin (talk | contribs)
No edit summary
Ranglin (talk | contribs)
major rewrite
Line 1:
{{cleanup-date|February 2005}}
 
A '''data flow diagram''' ('''DFD''') is a graphical representation of the "flow" of data through businessan functions[information or processessystem]. A '''data flow diagram''' can also be used for the [[visualization]] of [[data processing]] (structured design). It illustrates the processes, data stores, and external entities in a business or other system and the data flows between these things. 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.
 
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.
 
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.
 
Line 13 ⟶ 15:
* 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==
 
==External=Data EntitiesStore===
 
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===
[[Image:DFD - External Entity.jpeg|thumb|right|External entity]]
[[Image:DFD - External Entity (replicated).jpeg|thumb|right|External entity that has been replicated]]
A data flow diagram's boundary is the imaginary boundary of the system. This is conventionally drawn on the diagram as a continuous line going through all the data flows from external entities to processes and back.
 
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.
Note: It is a bad practice to have external entities have direct access to data stores.
 
==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==