一、数据流图怎么画?
1、确定系统的输入输出
由于系统究竟包括哪些功能可能一时难于弄清楚,可使范围尽量大一些,把可能有的内容全部都包括进去。
这个阶段,应该充分了解“系统从哪些外部实体接受什么数据”、“系统向哪些外部实体送出什么数据”等信息,这将是第二步绘制顶层数据流程的关键。
2、由外向里画系统的顶层数据流图
确定系统的输入输出后,我们将可以将它们用“加工”连接起来, “加工”用以表示被开发的整个系统,也是数据流组成或值变化的地方。下图为销售管理系统的顶层图:
顶层数据流图
注意事项: 顶层图只有一张,图中的“加工”也只有一个,不必为其编号。
顶层数据流图,又是上下文数据流图,表达一个系统的概览,最高级别的数据流图,其中只包含了代表整个系统的程序,可以显示所有外部实机主要数据流,不包含任何数据存储
3、自顶向下逐层分解,绘出分层数据流图
对于大型的系统,为了控制复杂性,便于理解,需要采用自顶向下逐层分解的方法进行,即用分层的方法将一个数据流图分解成几个数据流图来分别表示。
0层图: 就是把顶层图的“加工”分解成若干个“子加工”,并用数据流将这些“子加工”连接起来,使得顶层图的输入数据经过若干“子加工”处理后,变成顶层图的输出数据流。
0层图
(1)确认“加工”方法
其实我前面也简单提到,“加工”用以表示被开发的整个系统,也是数据流组成或值变化的地方。因此,0层图数据流的组成或值变化的地方可以变成若干“子加工”。
(2)确定数据流的方法
一起到达、一起处理的数据可看成数据流。
(3)关于数据存储
对于以后要使用的数据,可以组织成为一个数据存储来表示。
注意事项: 0层图只有一张,图中的加工号分别是0.1、0.2、…,或者1、 2 、...
接下来,就是对其他“子加工”重复拆解,直至“子加工”无法被拆解。
1层图
二、数据流图其他注意事项
1.画数据流而不是控制流。数据流反映系统“做什么”,不反映“如何做”,因此箭头上的数据流名称只能是名词或名词短语,整个图中不反映加工的执行顺序。
2.一般不画物质流。数据流反映能用计算机处理的数据,并不是实物,因此对目标系统的数据流图一般不要画物质流。
3.每个加工至少有一个输入数据流和一个输出数据流。
4.一个加工的输出数据流,不应与输入数据流同名,即使他们的组成完全相同。
5.外部实体之间不应该存在数据流,因为数据流的起点和终点中必须有一个是加工 。
6.如果一张数据流图中的某个加工分解成另一张数据流图时,则上层图为父图,直接下层图为子图。子图及其所有的加工都应编号(这一点,前面也提到过)。
上:父图;下:子图
7.父图与子图的平衡。父图中的某加工的输入输出流必须与他的子图的输入输出数据流在数量上和名字上相同,此即父图与子图的平衡。
8.当某层数据流图中的数据存储不是父图中相应加工的外部接口,而只是本图中某些加工之间的数据接口,则称这些数据存储为局部数据存储。