数据流图(data-flow diagram,DFD),是一种通过流程或系统表示数据流的方式。数据流图也提供了每个实体的输入、输出和过程本身的信息。

数据流图是结构化分析和设计中重要的工具。

数据流图是没有控制流程,也就是没有决策规则,也没有循环。而基于数据的操作可以用流程图表示,而非数据流图。

基本符号

数据流图有四个基本符号。

元素 说明 描述 符号
数据流 表示数据的流向 flow flow
加工 表示输入到输出之间的数据加工 function fc-1 fc-2
数据存储/文件 表示存储的数据 file/database db-1 db-2
外部实体 表示系统外的实体 input/output in-out

分层

为了是数据流图更加简洁明了,可以创建多层数据流图。一般最上层被称为顶层图,下面的子图依次称为 0, 1, 2…层图。

重要的原则

  1. 父图与子图必须平衡

    即父图中的某个加工的输入/输出(数据流)和分解这个加工的子图的输入/输出数据流必须完全一致。

  2. 子图内的平衡

    一个加工必须要有输入也要有输出。

    数据流只能和加工相关,即从加工流向加工、数据源流向加工和加工流向数据源。

加工错误

数据流图中有 3 种常见的错误:

  1. 黑洞,加工有输入但是没有输出。
  2. 奇迹,加工有输入没有输入。
  3. 灰洞,加工不足以产生输出。

参考连接