定义

简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。

基本符号概念

数据流

数据流是由一组固定成分的数据组成 , 表示数据的流向 ;

数据流使用箭头表示 , 箭头所指的方向 , 代表了数据流向 ;

基础数据流转架构 数据流走向_数据

加工

描述 “输入数据流” 到 “输出数据流” 之间的变换 , 即对数据进行了什么样的处理 , 使得 “输入数据流” 变为 “输出数据流” ;

使用圆形 / 圆角矩形表示加工 ;

基础数据流转架构 数据流走向_数据_02

数据存储

表示暂时存储的数据 , 数据存储的粒度是以表为单位 ;

流向文件的数据流表示向文件内写入内容 , 从文件流出的数据流表示从文件读取内容 ;

使用双横线 / 半框形矩形表示

基础数据流转架构 数据流走向_数据_03

外部实体

软件系统之外的人员 / 组织 ;

使用矩形表示

基础数据流转架构 数据流走向_基础数据流转架构_04

数据流分层

分层说明
  • 数据流图分层 , 最上层是顶层数据流图 , 第二层是0层数据流图 , 最底层是底层数据流图
  • “顶层数据流图” 与 “底层数据流图” 之间是若干中层数据流图 ,
  • 中层数据流图需要进行编号 , 从0开始编号 ;
顶层数据流图
  • 顶层数据流图只含有一个加工表示整个系统;输出数据流和输入数据流为系统的输入数据和输出数据,表明系统的范围,以及与外部环境的数据交换关系。
  • 顶层数据流图能够表达的信息是非常有限的 , 其将整个系统使用一个节点表示 ,其可以体现出系统与外界实体之间的交互 ,
中层数据流图
  • 中层数据流图是对父层数据流图中某个加工进行细化,而它的某个加工也可以再次细化,形成子图;中间层次的多少,一般视系统的复杂程度而定。
  • 中层数据流图将系统内部进行了细化,原来系统是一个节点 , 在中层数据流图中 , 会将一个节点拆分成多个节点 , 这些节点就是系统中的数据处理部件 , 即数据加工部分
底层数据流图

底层数据流图是指其加工不能再分解的数据流图,其加工称为“原子加工”。

总结

  • 在每一步细化数据加工的过程中,应该保持数据流的一致性,即一个“处理”和该“处理”被详细分解后在数据流内容上应该一致
  • 数据存储不反映处理顺序,而是显示数据通过系统的流程,因此数据加工可以并行工作
  • 每个加工必须既有输入数据流,又有输出数据流
  • 所有的数据流必须以一个外部实体开始,并以一个外部实体结束
  • 数据加工的编号需要遵守一定的规范,例如顶层数据流图的数据加工编号为1,第一层数据流图的数据加工过程编号需要为1.x,而第一层数据流图中数据加工对应的第二层数据加工编号就应该为1.x.n
  • 在实际设计中也碰到了很多的问题,经过网上查找以及自己的总结得出一下几个易错点
  • 两个实体之间不能有直接相连的数据流,必须通过一个过程在两个实体之间交换数据
  • 外部实体与数据存储之间不能直接有数据流,需要一个过程修改或获取数据存储
  • 两个数据存储之间不能直接有数据流,必须有一个过程是的数据从一个数据存储中移动到另一个数据存储中