一、数据流图概念
数据流图是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。
二、符号
基本符号
![]`)0OF1VF)FMRW[]~E[U}28.png](https://p.ananas.chaoxing.com/star3/origin/e97d3722647657d65f67bafc043e097e.png)
数据源点/终点:通常是人或部门,可重复表示;
处理:一个处理框可以代表一系列程序、单个程序或程序的一个模块;
数据存储:可以表示一个文件、文件的一部分、数据库的元素或记录的一部分等,数据存储是处于静止状态的数据;
数据流:描绘所有可能的数据流向,而不应该描绘出现某个数据流的条件 ,数据流是处于运动中的数据。
附加符号
1、星号(*):表示“与”关系

2、加号(+):表示“或”关系
![167LH(P4PF]}(IL{{A92H01.png](https://p.ananas.chaoxing.com/star3/origin/ed4737b906f9d9ef3168ae23fb3f424b.png)
3、异或(⊕):表示互斥关系
![(AW}@IWR(~]@2A}O488A7$8.png](https://p.ananas.chaoxing.com/star3/origin/9d2b2c4e5bcbc4880e93ea436b85e915.png)
三、画数据流图的步骤
例子:假设采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件,应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存量少于库存量的临界值时,就应该再次定货。
1. 从问题描述中提取数据流图的4种成分
(1)数据的源点/终点
■“通过放在仓库中的CRT终端把事务报告给定货系统”——仓库管理员是数据源点;
■“采购部每天需要一张定货报表”——采购员是数据终点。
(2)处理
■“采购部需要报表”,——产生报表;
■事务的后果是改变零件库存量,因此对事务进行的加工是另一个处理——处理事务。
(3)数据流:
■“系统把定货报表送给采购部”——定货报表;
■“事务需要从仓库送到系统中”——事务。
(4)数据存储:
■处理事务和产生报表这两个处理在时间上明显不匹配,用来产生定货报表的定货信息必须存放一段时间——定货信息;
■零件库存量和库存量临界值需要存储——库存清单。

2. 画基本系统模型
由若干个数据源点/终点和一个处理组成。

3. 细化,描绘系统的主要功能(功能级数据流图)

4. 对系统主要功能进一步细化

细化时注意:
(1)当进一步分解涉及如何具体的实现一个功能时就不应该再分解了。
(2)当对数据流图分层细化时必须保持信息连续性,也就是说,当把一个处理分解为一系列处理时,分解前和分解后的输入输出数据流必须相同。
(3)注意对处理进行编号的方法。
四、命名
1. 为数据流(或数据存储)命名
(1)完整性;
(2)具体性;
(3)起名字遇到了困难时,试试重新分解。
2. 为处理命名
(1)通常先为数据流命名,然后再为与之相关联的处理命名;
(2)完整性;
(3)及物动词+宾语,具体性;
(4)通常名字中仅包括一个动词,否则进行分解;
(5)命名时遇到困难,应考虑重新分解。
3. 为数据源点/终点命名
采用它们在问题域中习惯的名字。
五、用途
1、作为交流信息的工具
(1)供有关人员审查确认
(2)供用户理解和评价
(3)数据流图应该分层,超过9个时应该画分图
2、作为分析和设计的工具
(1)描绘系统所完成的功能
(2)辅助物理系统的设计时,以定时要求为指南,画出许多组自动化边界,对应不同的物理系统。
(3)导出更详细的设计步骤——面向数据流的设计方法

