大家好,又见面了,我是你们的朋友全栈君。
数据流图(DFD- Data Flow Diagram)让系统分析者弄清楚“做什么”的问题,其重要性就不言而喻了。那么我们怎么画数据流图呢?数据流图与系统流程图又有什么区别呢?
步骤1
- 数据流图里包含的内容
- 数据流图描述的是系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。因为数据流图是逻辑系统的图形表示,即使不是专业的计算机技术人员也能容易理解。 不要将数据流图(DFD)与系统流程图、程序流程图相混淆。
步骤2
- 数据流图里的符号
- :箭头,表示数据流;
〇:圆或椭圆,表示加工;
= :双杠,表示数据存储;
□:方框,表示数据的源点或终点。
(1) 数据流。数据流是数据在系统内传播的路径,因此由一组成分固定的数据组成。如订票单由旅客姓名、年龄、单位、身份证号、日期、目的地等数据项组成。由于数据流是流动中的数据,所以必须有流向,除了与数据存储之间的数据流不用命名外,数据流应该用名词或名词短语命名。
(2)加工(又称为数据处理)。对数据流进行某些操作或变换。每个加工也要有名字,通常是动词短语,简明地描述完成什么加工。在分层的数据流图中,加工还应编号。
(3)数据存储(又称为文件),指暂时保存的数据,它可以是数据库文件或任何形式的数据组织。
(4)数据源点或终点,是本软件系统外部环境中的实体(包括人员、组织或其他软件系统),统称外部实体。一般只出现在数据流图的顶层图。
需要注意的是:
1)处理并不一定是程序。它可以是一系统程序、单个程序或程序的一个模块,甚至可以是人工处理过程;
2)数据存储并不等同于一个文件。它可以是一个文件、文件的一部分、数据库元素或记录的一部分;它代表的是静态的数据。
3)数据流也是数据,是动态的数据。
步骤3
- 分离数据流图中的元素
- 假设一家工厂的采购部门每天需要一张定货报表。报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号、零件名称、定货数量、目前价格、主要供应商、次要供应商。零件入库或出席称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存临界值时就应该再次定货。
源点/终点
(外部实体)
- 采购员
- 仓库管理员
数据处理
- 产生报表
- 处理事务
数据流
- 定货报表 零件编号 零件名称 定货数量 目前价格 主要供应商 次要供应商
- 事务 零件编号 事务类型 数量
数据存储
- 定货信息(见定货报表)
- 库存清单 零件编号 库存量 库存量临界值
步骤4
- 逐步分解地画出数据流图
- 第一步,画出最概括的系统模型。因为任何系统实质上都是由若干个数据源点/终点以及一个处理组成。这个处理就代表了系统对数据加工变换的基本功能。
对上图进行细化
再细化一点
勾画出边界
最后细化一下
步骤5
- 命名的方法
- 1)为数据流(或数据存储)命名 A.名字应该代表整个数据流(或数据存储)的内容; B.不要使用空洞的、缺乏具体含义的名字(如“数据”、“输入”); C.如果为某个数据流(或数据存储)起名字时遇到困难,则很可能是因为对数据流图的分解不恰当造成的,应该试试重新分解数据流图; 2)为处理命名 A.通常先为数据流命名,然后再为与之相关联的处理命名; B.名字应该反映整个处理的功能; C.应该尽量避免空洞笼统的动词做名字,如“处理”、“加工”; D.通常用一个动词命名,如果必须用两个动词才能描述整个处理的功能,则可能要把这个处理分解成两个处理更恰当; E.如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的情况,应考虑重新分解。 3)为数据源点/终点命名 通常,为“数据源点/终点”命名时,采用它们在问题域中习惯使用的名字(如“仓库管理员”、“采购员”)。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/151638.html原文链接:https://javaforall.cn