DataFlowDiagram

Last edit April 18, 2005
A "semi-formal" way of representing computer system functions in a diagram.
  • represent major components or functions with Circles
  • actions for input by a user or system go in Rectangular Boxes
  • Databases are represented by parallel lines enclosing a phrase
  • Display or output information is represented by a box with a truncated top right corner
from the Demurjian chapter on Software Design in Computer Science And Engineering Handbook - CRC Press

(he attributes Ghezzi, Jazayeri and Mandrioli Fundamentals of Software Engineering ) See http://www.infoarchgroup.com/qrdfd.htm for more description. Or, better, see TomDeMarco, Structured Analysis and Systems Specifications (Yourdon Inc., ISBN 0138543801).


What is a DFD

Graphical Description of a System's data & how the process transform the data is known as Data Flow Diagram or simply DFD.

Unlike detail flowcharts, DFDs do not supply detailed descriptions of modules but graphically describe a system's data & how the data interact with the system.

To Construct a Data Flow Diagrams, we use:
  • Arrows
    • Identifies data flow-data in motion. It is a pipeline through which information flows.
  • Circles
    • Like the rectangle in flowcharts, Circles stand for a process that converts incoming data to information.
  • Open-Ended Boxes or Parallel Lines
    • An Open-Ended box represents a data/store-data at rest, or a temporary repository of data.
  • Squares.
    • A Square defines a source or destination of system data.

See http://www.infoarchgroup.com/qrdfd.htm

      Prepared By: Shiras Ahamed, Msc Computer Science, Calicut University Campus. 

Actually, DFDs have broader application than just software. They can be used to describe business processes in a way that's a lot more readable than FlowCharts.

I have actually used a variation on this theme as a part of a job turnover project, wherein I had to describe everything I did and everything and everyone I touched. The DFD variant was the cleaner, more direct way of expressing this.

And, yes, I use them as an outline tool for software design.