四种基本图形符号
-
数据流(箭头):是由一组固定成分的数据组成,表示数据的流向。值得注意的是,数据流图中描述的是数据流,而不是控制流。除了流向数据存储或从数据存储流出的数据不必命名外,每个数据流必须要有一个合适的名字,以反映该数据流的含义。
-
加工(圆或椭圆):加工描述了输入数据流到输出数据之间的变换,也就是输入数据流经过什么处理后变成了输出数据。每个加工都有一个名字和编号。编号能反映该加工位于分层的数据流图的哪个层次和哪张图中,能够看出它是由哪个加工分解出来的子加工。
-
数据存储(双杠或单杠):数据存储表示暂时存储的数据。每个数据存储都有一个名字。
-
外部实体(矩形,数据的原点或终点):外部实体是存在于软件系统之外的人员或组织,他指出数据所需要的发源地或系统所产生的数据的归属地。
分层DFD图
如果系统的规模较大,仅用一个DFD图难以描述,会使得系统变得复杂、庞大而又难以理解。为了降低系统的复杂性,一般采取“逐层分解”的方法,绘制分层的DFD图。
- 绘制分层DFD图的原则一般是:先全局后局部,先整体后细节,先抽象后具体。
- 绘制分层DFD图的步骤一般是
- 先确定整个系统的范围和功能,绘制顶层的DFD图。
- 绘制出顶层的DFD图之后,然后逐层分解顶层DFD图,获得若干中间层DFD图。
- 根据获得的中间层DFD图绘制各个底层的DFD图。
画DFD图的步骤
- 首先画系统的输入输出,即先画顶层数据流图。顶层流图只包含一个加工,用以表示被开发的系统,然后考虑该系统有哪些输入数据、输出数据流。顶层图的作用在于表明被开发系统的范围以及它和周围环境的数据交换关系。下图为飞机机票预订系统的顶层图。
- 画系统内部,即画下层数据流图。不再分解的加工称为基本加工。一般将层号从0开始编号,采用自顶向下,由外向内的原则。画0层数据流图时,分解顶层流图的系统为若干子系统,决定每个子系统间的数据接口和活动关系。例如,在上面的机票预订系统按功能可分成两部分,一部分为旅行社预订机票,另一部分为旅客取票,两部分通过机票文件的数据存储联系起来,0层数据流图如图3-4。
注意事项
- 命名。不论数据流、数据存储还是加工,合适的命名使人们易于理解其含义。
- 画数据流而不是控制流。数据流反映系统“做什么”,不反映“如何做”,因此箭头上的数据流名称只能是名词或名词短语,整个图中不反映加工的执行顺序。
- 一般不画物质流。数据流反映能用计算机处理的数据,并不是实物,因此对目标系统的数据流图一般不要画物质流。
- 每个加工至少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果。
- 编号。如果一张数据流图中的某个加工分解成另一张数据流图时,则上层图为父图,直接下层图为子图。子图及其所有的加工都应编号。
- 父图与子图的平衡。子图的输入输出数据流同父图相应加工的输入输出数据流必须一致,此即父图与子图的平衡。
- 局部数据存储。当某层数据流图中的数据存储不是父图中相应加工的外部接口,而只是本图中某些加工之间的数据接口,则称这些数据存储为局部数据存储。
- 提高数据流图的易懂性。注意合理分解,要把一个加工分解成几个功能相对独立的子加工,这样可以减少加工之间输入、输出数据流的数目,增加数据流图的可理解性。
DFD实例
转载自http://blog.csdn.net/xianshengsun/article/details/7439537