A data-flow diagram is a way of representing a flow of data through a
process
A process is a series or set of activities that interact to produce a result; it may occur once-only or be recurrent or periodic.
Things called a process include:
Business and management
*Business process, activities that produce a specific se ...
or a system (usually an
information system
An information system (IS) is a formal, sociotechnical, organizational system designed to collect, process, store, and distribute information. From a sociotechnical perspective, information systems are composed by four components: task, people ...
). The DFD also provides information about the outputs and inputs of each entity and the process itself. A data-flow diagram has no control are no decision rules and no loops. Specific operations based on the data can be represented by a
flowchart.
There are several notations for displaying data-flow diagrams. The notation presented above was described in 1979 by
Tom DeMarco
Tom DeMarco (born August 20, 1940) is an American software engineer, author, and consultant on software engineering topics. He was an early developer of structured analysis in the 1970s.
Early life and education
Tom DeMarco was born in Hazle ...
as part of
structured analysis.
For each data flow, at least one of the endpoints (source and / or destination) must exist in a process. The refined representation of a process can be done in another data-flow diagram, which subdivides this process into sub-processes.
The data-flow diagram is a tool that is part of
structured analysis and
data modeling. When using
UML
The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.
The creation of UML was originally m ...
, the
activity diagram
Activity diagrams are graphical representations of workflows of stepwise activities and actions with support for choice, iteration and concurrency. In the Unified Modeling Language, activity diagrams are intended to model both computational and o ...
typically takes over the role of the data-flow diagram. A special form of data-flow plan is a site-oriented data-flow plan.
Data-flow diagrams can be regarded as inverted
Petri nets
A Petri net, also known as a place/transition (PT) net, is one of several mathematical modeling languages for the description of distributed systems. It is a class of discrete event dynamic system. A Petri net is a directed bipartite graph that ...
, because places in such networks correspond to the semantics of data memories. Analogously, the semantics of transitions from Petri nets and data flows and functions from data-flow diagrams should be considered equivalent.
History
The DFD notation draws on graph theory, originally used in operational research to model workflow in organizations. DFD originated from the
activity diagram
Activity diagrams are graphical representations of workflows of stepwise activities and actions with support for choice, iteration and concurrency. In the Unified Modeling Language, activity diagrams are intended to model both computational and o ...
used in the
structured analysis and design technique
Structured analysis and design technique (SADT) is a systems engineering and software engineering methodology for describing systems as a hierarchy of functions. SADT is a structured analysis modelling language, which uses two types of diagrams: ...
methodology at the end of the 1970s. DFD popularizers include Edward Yourdon, Larry Constantine, Tom DeMarco, Chris Gane and Trish Sarson.
Data-flow diagrams (DFD) quickly became a popular way to visualize the major steps and data involved in software-system processes. DFDs were usually used to show data flow in a computer system, although they could in theory be applied to
business process modeling
Business process modeling (BPM) in business process management and systems engineering is the activity of representing processes of an enterprise, so that the current business processes may be analyzed, improved, and automated. BPM is typically ...
. DFDs were useful to document the major data flows or to explore a new high-level design in terms of data flow.
DFD components
DFD consists of processes, flows, warehouses, and terminators. There are several ways to view these DFD components.
Process
The process (function, transformation) is part of a system that transforms inputs to outputs. The symbol of a process is a circle, an oval, a rectangle or a rectangle with rounded corners (according to the type of notation). The process is named in one word, a short sentence, or a phrase that is clearly to express its essence.
Data flow
Data flow (flow, dataflow) shows the transfer of information (sometimes also material) from one part of the system to another. The symbol of the flow is the arrow. The flow should have a name that determines what information (or what material) is being moved. Exceptions are flows where it is clear what information is transferred through the entities that are linked to these flows. Material shifts are modeled in systems that are not merely informative. Flow should only transmit one type of information (material). The arrow shows the flow direction (it can also be bi-directional if the information to/from the entity is logically dependent - e.g. question and answer). Flows link processes, warehouses and terminators.
Warehouse
The warehouse (datastore, data store, file, database) is used to store data for later use. The symbol of the store is two horizontal lines, the other way of view is shown in the DFD Notation. The name of the warehouse is a plural noun (e.g. orders) - it derives from the input and output streams of the warehouse. The warehouse does not have to be just a data file but can also be, for example, a folder with documents, a filing cabinet, or a set of optical discs. Therefore, viewing the warehouse in a DFD is independent of implementation. The flow from the warehouse usually represents reading of the data stored in the warehouse, and the flow to the warehouse usually expresses data entry or updating (sometimes also deleting data). The warehouse is represented by two parallel lines between which the memory name is located (it can be modeled as a UML buffer node).
Terminator
The Terminator is an external entity that communicates with the system and stands outside of the system. It can be, for example, various organizations (eg a bank), groups of people (e.g. customers), authorities (e.g. a tax office) or a department (e.g. a human-resources department) of the same organization, which does not belong to the model system. The terminator may be another system with which the modeled system communicates.
Rules for creating DFD
Entity names should be comprehensible without further comments. DFD is a system created by analysts based on interviews with system users. It is determined for system developers, on one hand, project contractor on the other, so the entity names should be adapted for model domain or amateur users or professionals. Entity names should be general (independent, e.g. specific individuals carrying out the activity), but should clearly specify the entity. Processes should be numbered for easier mapping and referral to specific processes. The numbering is random, however, it is necessary to maintain consistency across all DFD levels (see DFD Hierarchy). DFD should be clear, as the maximum number of processes in one DFD is recommended to be from 6 to 9, minimum is 3 processes in one DFD.
The exception is the so-called contextual diagram where the only process symbolizes the model system and all terminators with which the system communicates.
DFD consistency
DFD must be consistent with other models of the system -
entity relationship diagram
An entity is something that Existence, exists as itself, as a subject or as an object, actually or potentially, concretely or abstractly, physically or not. It need not be of material existence. In particular, abstractions and legal fictions are ...
,
state-transition diagram,
data dictionary
A data dictionary, or metadata repository, as defined in the ''IBM Dictionary of Computing'', is a "centralized repository of information about data such as meaning, relationships to other data, origin, usage, and format". ''Oracle'' defines it ...
, and
process specification {{No footnotes, date=May 2022
Process Specification is a generic term for the specification of a process. It is not unique to business activity, but can be applied to any organizational activity.
Within some structured methods, the capitalized te ...
models. Each process must have its name, inputs and outputs. Each flow should have its name (exception see Flow). Each Data store must have input and output flow. Input and output flows do not have to be displayed in one DFD - but they must exist in another DFD describing the same system. An exception is warehouse standing outside the system (external storage) with which the system communicates.
DFD hierarchy
To make the DFD more transparent (i.e. not too many processes), multi-level DFDs can be created. DFDs that are at a higher level are less detailed (aggregate more detailed DFD at lower levels). The contextual DFD is the highest in the hierarchy (see DFD Creation Rules). The so-called zero level is followed by DFD 0, starting with process numbering (e.g., process 1, process 2). In the next, the so-called first level - DFD 1 - the numbering continues. E.g. process 1 is divided into the first three levels of the DFD, which are numbered 1.1, 1.2 and 1.3. Similarly, processes in the second level (DFD 2) are numbered eg 2.1.1, 2.1.2, 2.1.3 and 2.1.4. The number of levels depends on the size of the model system. DFD 0 processes may not have the same number of decomposition levels. DFD 0 contains the most important (aggregated) system functions. The lowest level should include processes that make it possible to create a process specification for roughly one A4 page. If the mini-specification should be longer, it is appropriate to create an additional level for the process where it will be decomposed into multiple processes. For a clear overview of the entire DFD hierarchy, a vertical (cross-sectional) diagram can be created. The warehouse is displayed at the highest level where it is first used and at every lower level as well.
See also
*
Activity diagram
Activity diagrams are graphical representations of workflows of stepwise activities and actions with support for choice, iteration and concurrency. In the Unified Modeling Language, activity diagrams are intended to model both computational and o ...
*
Business Process Model and Notation
*
Control-flow diagram
A control-flow diagram (CFD) is a diagram to describe the control flow of a business process, process or review.
Control-flow diagrams were developed in the 1950s, and are widely used in multiple engineering disciplines. They are one of the cla ...
*
Data island
*
Dataflow
*
Directed acyclic graph
In mathematics, particularly graph theory, and computer science, a directed acyclic graph (DAG) is a directed graph with no directed cycles. That is, it consists of vertices and edges (also called ''arcs''), with each edge directed from one v ...
*
Drakon-chart
*
Functional flow block diagram
A functional flow block diagram (FFBD) is a multi-tier, time-sequenced, step-by-step flow diagram of a system’s functional flow. The term "functional" in this context is different from its use in functional programming or in mathematics, where p ...
*
Function model In systems engineering, software engineering, and computer science, a function model or functional model is a structured representation of the functions ( activities, actions, processes, operations) within the modeled system or subject area.
*
IDEF0
IDEF0, a compound acronym ("Icam DEFinition for Function Modeling", where ICAM is an acronym for "Integrated Computer Aided Manufacturing"), is a function modeling methodology for describing manufacturing functions, which offers a functional model ...
*
Pipeline
Pipeline may refer to:
Electronics, computers and computing
* Pipeline (computing), a chain of data-processing stages or a CPU optimization found on
** Instruction pipelining, a technique for implementing instruction-level parallelism within a s ...
*
Structured analysis and design technique
Structured analysis and design technique (SADT) is a systems engineering and software engineering methodology for describing systems as a hierarchy of functions. SADT is a structured analysis modelling language, which uses two types of diagrams: ...
*
Structure chart
A structure chart (SC) in software engineering and organizational theory is a chart which shows the breakdown of a system to its lowest manageable levels.IRS (2008) "Configuration Management" In: ''IRS Resources Part 2. Information Technology Chap ...
*
System context diagram
A system context diagram (SCD) in engineering is a diagram that defines the boundary between the system, or part of a system, and its environment, showing the entities that interact with it. This diagram is a high level view of a system. It is sim ...
*
Value-stream mapping
Value-stream mapping, also known as "material- and information-flow mapping", is a lean-management method for analyzing the current state and designing a future state for the series of events that take a product or service from the beginning of ...
*
Workflow
A workflow consists of an orchestrated and repeatable pattern of activity, enabled by the systematic organization of resources into processes that transform materials, provide services, or process information. It can be depicted as a sequence o ...
*
List of graphical methods
This is a list of graphical methods with a mathematical basis.
Included are diagram techniques, chart techniques, plot techniques, and other forms of visualization.
There is also a list of computer graphics and descriptive geometry topics.
Simp ...
References
Bibliography
*
Scott W. Ambler
Scott W. Ambler (born 1966) is a Canadian software engineer, consultant and author. He is an author of books about the Disciplined Agile Delivery toolkit, the Unified process, Agile software development, the Unified Modeling Language, and Capabili ...
The Object Primer 3rd Edition Agile Model Driven Development with UML 2*Schmidt, G., ''Methode und Techniken der Organisation.'' 13. Aufl., Gießen 2003
*
Stahlknecht, P., Hasenkamp, U.: ''Einführung in die Wirtschaftsinformatik.'' 12. Aufl., Berlin 2012
*
Gane, Chris; Sarson, Trish. ''Structured Systems Analysis: Tools and Techniques''. New York: Improved Systems Technologies, 1977. . P. 373
*Demarco, Tom. ''Structured Analysis and System Specification''. New York: Yourdon Press, 1979. . P. 352.
*
Yourdon, Edward. ''Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design''. New York: Yourdon Press, 1979. . P. 473.
*
Page-Jones, Meilir. ''Practical Guide to Structured Systems Design''. New York: Yourdon Press, 1988. . P. 384.
*
Yourdon, Edward. ''Modern Structured Analysis''. New York: Yourdon Press, 1988. . P. 688.
External links
*
{{DEFAULTSORT:Data Flow Diagram1
Information systems
Data management
Diagrams
Graph drawing
Systems analysis
Modeling languages