Data Flow Diagram
Data Flow Diagram
On a DFD, data items flow from an external data source or an internal data store to an
internal data store or an external data sink, via an internal process.
It is common practice to draw a context-level data flow diagram first, which shows
the interaction between the system and external agents which act as data sources and
data sinks. On the context diagram (also known as the 'Level 0 DFD') the system's
interactions with the outside world are modelled purely in terms of data flows across
the system boundary. The context diagram shows the entire system as a single
process, and gives no clues as to its internal organization.
This context-level DFD is next "exploded", to produce a Level 1 DFD that shows
some of the detail of the system being modelled. The Level 1 DFD shows how the
system is divided into sub-systems (processes), each of which deals with one or more
of the data flows to or from an external agent, and which together provide all of the
functionality of the system as a whole. It also identifies internal data stores that must
be present in order for the system to do its job, and shows the flow of data between
the various parts of the system.
Data flow diagrams were proposed by Larry Constantine, the original developer of
structured design, based on Martin and Estrin's "data flow graph" model of
computation.
Data flow diagrams (DFDs) are one of the three essential perspectives of the
structured-systems analysis and design method SSADM. The sponsor of a project and
the end users will need to be briefed and consulted throughout all stages of a system's
evolution. With a data flow diagram, users are able to visualize how the system will
operate, what the system will accomplish, and how the system will be implemented.
The old system's dataflow diagrams can be drawn up and compared with the new
system's data flow diagrams to draw comparisons to implement a more efficient
system. Data flow diagrams can be used to provide the end user with a physical idea
of where the data they input ultimately has an effect upon the structure of the whole
system from order to dispatch to report. How any system is developed can be
determined through a data flow diagram.
In the course of developing a set of levelled data flow diagrams the analyst/designers
is forced to address how the system may be decomposed into component sub-systems,
and to identify the transaction data in the data model.
There are different notations to draw data flow diagrams (Yourdon & Coad and Gane
& Sarson), defining different visual representations for processes, data stores, data
flow, and external entities.
A Level 2 Data flow diagram showing the "Process Enquiry" process for the same
system.
This level is a decomposition of a process shown in a level-1 diagram, as such there
should be a level-2 diagram for each and every process shown in a level-1 diagram. In
this example, processes 1.1, 1.2 & 1.3 are all children of process 1. Together they
wholly and completely describe process 1, and combined must perform the full
capacity of this parent process. As before, a level-2 diagram must be balanced with its
parent level-1 diagram.