数据流图(Data Flow Diagram,DFD)是描述系统中数据流的图形工具,是一种用来表示信息流和信息变换过程的图解方法,可以标识一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换为逻辑输出所需的加工处理。数据流图把软件系统看成是由数据流联系的各种功能的组合,在需求分析的过程中,可以用来建立目标系统的逻辑模型。
目的
数据流图的目的是在用户和系统开发人员之间提供语义的桥梁。结构化需求分析采用的是”自顶向下,由外到内,逐层分解”的思想,开发人员要先画出系统顶层的数据流图,然后再逐层画出低层的数据流图。顶层的数据流图要定义系统范围,并描述系统与外界的数据联系,它是对系统架构的高度概括和抽象。底层的数据流图是对系统某个部分的精细描述。
本文基于Gane-Sarson法,介绍数据流图。
基本符号
绘制方法
在绘制数据流的过程中,要注意以下几点。
(1) 数据的处理不一定是一个程序或一个模块,也可以是一个连贯的处理过程。
(2) 数据存储是指输入或输出文件,但它不仅仅可以是文件,还可以是数据项或用来组织数据的中间数据。
(3) 数据流和数据存储是不同状态的数据。数据流是流动状态的数据,而数据存储是指处于静止状态的数据。
(4) 当目标系统的规模较大时,为了描述的清晰和易于理解,通常采用逐层分解的方法,画出分层的数据流图。在分解时,要考虑到自然性、均匀性和分解度几个概念。自然性是指概念上要合理和清晰。均匀性是指尽量将一个大问题分解为规模均匀的若干部分。分解度是指分解的维度,一般每一个加工每次分解最多不宜超过7个子加工,应分解到基本的加工为止。
(5) 数据流图分层细化时必须保持信息的连续性,即细化前后对应功能的输入和输出数据必须相同