(3)分层的数据流图
为了表达数据处理过程的数据加工情况,用一个数据流图是不够的。为表达稍为复杂的实际问题需要按照问题的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系。
先把整个数据处理过程暂且看成一个加工,它的输入数据和输出数据实际上反映了系统与外界环境的接口。这就是分层数据图的顶层。但只此一图并未表明数据的加工要求,需要进一步细化。如果这个数据处理包括3个子系统,就可以画出表示这3个子系统1、2、3的加工及其相关的数据流。这是顶层下面的第一层数据流图,记为DFD/L1。继续分解这3个子系统,可得到第二层数据流图DFD/L2.1、DFD/L2.2、及DFD/L2.3,它们分别是子系统。1、2和3的细化。仅以DF/2为例,其中的4个加工的编号均可联系到其上层图中的子系统2。这样得到的多层数据流图可十分清晰地表达整个数据加工系统的真实情况。对任何一层数据流图来说,称它的上层图为父图,在它下一层的图则称为子图。
在多层数据流图中,可以把顶层流图、底层流图和中间层流图区分开。顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统的输出数据。顶层流图的作用在于表明被开发系统的范围,以及它和周围环境的数据交换关系。底层流图是指其加工不须再做分解的数据流图,其加工称为“原子加工”。中间层流图则表示对其上层父图的细化。它的每一加工可以继续细化,形成子图。中间层次的多少视系统的复杂程度而定。
(4)数据流图画法
画数据流图的基本步骤概括地说,就是自外向内,自顶向下,逐层细化,完善求精。具体步骤可按如下来做。
①先找系统的数据源点与汇点。它们是外部实体,由它们确定系统与外界的接口。②找出外部实体的输出数据流与输入数据流。③在图的边上画出系统的外部实体。
④从外部实体的输出数据流(即系统的源点)出发,按照系统的逻辑需要,逐步画出一系列逻辑加工,直到找到外部实体所需的输入数据流(即系统的汇点),形成数据流的封闭。⑤按照下面所给的原则进行检查和修改。
⑥按照上述步骤,再从各加工出发,画出所需的子图。
(5)进行检查和修改的原则
①数据流图上所有图形符号只限于前述四种基本图形元素。②数据流的主图必须包括前述4种基本元素,缺一不可。
③数据流图的主图上的数据流必须封闭在外部实体之间,外部实体可以不只一个。④每个加工至少有一个输入数据流和一个输出数据流。
⑤在数据流图中,需按层给加工框编号。编号表明该加工处在哪一层,以及上下层的父图与子图的对应关系。
⑥任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。即父图与子图的平衡,它表明了在细化过程中输入与输出不能有丢失和添加。⑦图上每个元素都必须有名字。表明数据流和数据文件是什么数据,加工做什么事情。
⑧数据流图中不可夹带控制流。因为数据流图是实际业务流程的客观映象,说明系统“做什么”而不是要表明系统“如何做”,因此不是系统的执行顺序,不是程序流程图。⑨初画时可以忽略琐碎的细节,以集中精力于主要数据流。
在需求分析期间,有时会要求修改系统的某些方面。使用数据流图可以很容易地把需要修改的区域分离出来。只要清楚地了解穿过要修改区域边界的数据流,就可以为将来的修改做好充分的准备,而且在修改时能够不打乱系统的其他部分.