数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中经受的变换。
数据流图是系统逻辑功能和图形表示,即使不是专业的计算机人员也容易理解它,因此是分析员与用户之间极好的通信工具。
设计数据流图时只需要考虑系统必须完成的基本逻辑功能,完全不需要考虑怎样具体地实现这些功能。
eg:这是一张顶级数据流图(最高层数据流图):只有一个加工/处理/变换过程。
符号
四种基本符号
- 正方形(或立方体):数据的源点或终点
- 圆角矩形(或圆形):变换数据的处理
- 开口矩形(或两条平行横线):数据存储
- 箭头:数据流,特定数据的流动方向
绘制步骤
第一步可以从问题描述中提取数据流图的4种成分。
首先考虑数据的源点和终点。
接下来考虑处理。
最后,考虑数据流和数据存储。
第二步先画一张顶级图(0级DFD)
把最后的需要的系统看成一个数据处理,确定源点、终点、输入的数据流、输出的数据流后绘制出一个最顶层,最抽象的数据流图作为第一张数据流图。
第三步细化为功能级图(1级DFD)
注意数据流的方向:
(根据数据库的四大操作分类归纳总结)
加工/处理/变换(P)——>数据存储(D):添加Add、修改Modify、删除Delete
数据存储(D)——>加工/处理/变换(P):查询Query
第四步进一步细化功能级图
将功能级(1级DFD)图中的处理(P)环节继续细化,其他部分依据细化结果进行修改。
自外向内 自顶向下 逐层细化 完善求精(总结概括)
自外向内:首先确定系统的输入输出,以反映系统与外界环境的接口
自顶向下:从0级图开始逐步绘画分析至1级、2级DFD
逐层细化:细化每一个加工框(P),如果加工框内还有数据流,可将这个加工框再细化分成几个加工框,并在各子加工框之间画出数据流
完善求精:一次细化一个加工,直到每一个加工执行一个可以用程序实现的功能。
命名
为数据流(或数据存储)命名
用名词,仅对数据流(或数据存储)的内容命名。
不要使用空洞的名字
如果起名时遇到了困难,尝试重新分解数据流图DFD,看能否克服这个困难
为处理命名
用动词短语(一个具体的计算机行为+一个具体的宾语),要反映整个处理功能。
通常命名仅包含一个动词,如果要用两个动词才能描述整个处理过程,尝试分解这个处理。
如果起名时遇到了困难,尝试重新分解数据流图DFD,看能否克服这个困难
为数据源点/终点命名
它并属于数据流图的核心内容,只不过时目标系统的外围环境部分。
通常,命名时采用它们在问题域中习惯使用的名字(客户习惯使用的名字)