Skip to main content

数据流图(DFD)

元素

  • 外部实体
  • 数据流
  • 加工
  • 数据存储

概念

黑洞

有数据输入流但没有数据输出流的加工。

灰洞

加工的数据输入流不足以产生数据输出流。

系统所需数据的发源地(外部实体)

宿

系统产生的数据的归宿地(外部实体)

基本加工

不再分解为子图的加工

分层

顶层图

顶层图只有一个加工,表示系统本身。

0层图

分解顶层图的加工,形成0层图。

子图

分解0层图的加工,形成子图。

底层图

其中所有中加工是基本加工的图是底层图。

审查

一致性

数据平衡

子图边界的输入输出流应与父图中该子图所表示的加工的输入输出流保持一致。

数据守恒

  • 任何加工的数据输出流的数据必须能从该加工的数据输入流数据中直接获取或者通过该加工的处理产生。
  • 任何加工的数据输入流不应该存在未使用的数据。

局部数据存储

  • 任何一个数据存储都应有读和写的数据流。
  • 一个数据存储仅存在一个加工对其进行读写操作且该数据存储不存在于父图中,该存储不应该画出。

数据流命名

  • 一个加工的输入输出流不能有相同的名字

完整性

  • 任何一个加工都应有输入和输出的数据流。
  • 在整套数据流中每个数据存储至少应有一个加工对其进行写操作,另一个加工对其进行读操作。
  • 在一张图中,任何数据存储在满足上述条件后,可以只读不写或只写不读。
  • 任何一个数据流都必须命名,除了流入或流出数据存储的数据流。
  • 任何一个基本加工都必须有加工规约。

注意

  • 适当命名
    • 外部实体名=[role|organization]
    • 数据流名=[n|adj+n]
    • 加工名=[v|v.t+obj]
    • 数据存储名=n
  • 画数据流而不是控制流
  • 避免加工有过多的数据流
  • 任何一张DFD,其中任意两个加工的分解层数之差<=1
  • 优先考虑最佳运行状态
  • 随时准备重画

分解程度

  • 每张图中的加工数=7±2\text{每张图中的加工数}=7\pm2

分析

通过变换分析和事务分析DFD的到结构图