1.数据流图的定义:
数据流图是结构化分析方法中使用的工具,是数据在系统内流动和处理过程的图形化表示,它只反映了系统必须完成的逻辑功能,因此是一种功能模型。
数据流图DFD (数据流诊断)描述了信息流和数据从输入移动到输出的过程中所经历的转换。 数据流图从数据传输和加工的角度,以图形方式描绘了数据流从输入到输出的移动转换过程。
2.数据流图的基本图形元素有:
(1)数据流
)2)加工)处理
)3)文件(数据存储) )。
)4)数据池(数据源或终点) ) )。
数据流是一系列的数据。 在数据流图中,数据流由一条带箭头的线表示,数据流名称显示在该线旁边。 在数据流图中,应该描绘所有可能的数据流,而不是数据流发生的条件。
加工〔处理〕
在数据流图中用圆圈表示加工,在圆圈内写上加工名称。 处理框可以表示一系列程序、单个程序或程序模块。
文件(数据存储)
是根据某个规则组织的、长度没有限制的数据。 在数据流图中,文件显示为一条直线,并在线段旁边填写文件名。 数据存储库与文件不相同。 可以表示文件、文件的一部分、数据库的元素或记录的一部分等
数据池(源和端点) )。
在数据流图中用方框表示,在方框内写上相应的名称。
3.数据流图的四种基本图形符号:
---箭头,表示数据流;
()圆或椭圆,表示加工;
==竖条,表示数据存储;
:框表示数据的起点或终点。
4.画数据流图所使用的工具:visio
5.数据流图的画法步骤:
1 )确定系统的输入输出
因为系统包含什么样的功能可能很难马上知道,所以可以尽量扩大范围,包含可能有的所有内容。 此时,应该向用户了解“系统接收的数据来自外部”、“系统向外部发送的数据来自外部”等信息,并根据用户的回答绘制流程图的外围。
2 )从外向里绘制系统顶层数据流图
首先,通过一系列加工将系统的输数据和输出数据连接起来。 数据流值变化的地方是加工。 然后,命名每个加工。 然后,命名加工间的数据。 最后,命名文件。
顶层流程图只包含一个表示已开发系统的加工,并考虑系统中包含的输入和输出数据流。 顶层图表的作用是显示开发系统的范围和周围环境之间的数据交换关系。
3 )自上而下分层分解,绘制分层数据流图
对于大系统,为了降低复杂性,便于理解,需要采用自上而下分层分解的方法,即将一个数据流图分层分解为几个数据流图分别表示。
分层:通常从0开始对分层编号进行编号,采用自上而下、外向内的原则。 在绘制零层流图时,分解顶层流图的系统是多个子系统,决定每个子系统之间的数据接口和活动关系。 编号:如果一个数据流图中的加工分解为另一个数据流图,则上图为父图,下图为子图。 必须对子图及其所有加工进行编号。 父图表与子图表平衡:子图表的输入输出数据流必须与为父图表加工的输入输出数据流匹配。 也就是说,是父图与子图的平衡。 本地数据存储。 如果分层数据流图中的数据存储是此图中部分加工之间的数据接口,而不是父图中相应加工的外部接口,则这些数据存储称为本地数据存储。 提高数据流图的易懂性。 注意合理分解,将一个加工分解为几个功能相对独立的子加工,减少加工间输入输出数据流的数量,提高对数据流图的理解性
例题:
假设某个工厂的采购部门每天都需要订单报告。 报表按部件编号排序,表中列出了需要重新订购的所有部件。 对于需要重新订购的每个部件,必须列出部件编号、部件名称、订货量、当前价格、主要供应商和附属供应商的数据。 零件的入库和出席称为事务,通过放置在仓库的CRT终端向订货系统报告事务。 如果某个零件的库存数量少于库存阈值,就应该再次订购。
逐步分解绘制数据流图的第一步,绘制最概括的系统模型。 因为每个系统实质上都由几个数据源点/终点和一个处理组成。 该过程体现了系统对数据加工转换的基本功能。
细分上图
再细分一点
画边界
命名方法
1 )命名数据流(或数据存储区)
a .名称必须表示整个数据流或数据存储的内容;
b .不使用空虚且缺乏具体含义的名字(例如,“数据”、“输入”) )
c .如果很难命名某个数据流(或数据存储),很可能不适合分解数据流图,所以应该尝试重新分解数据流图。
2 )命名处理
a .通常,命名数据流,然后命名与其相关联的处理;
b .名称应该反映整个处理的功能
C .应尽量避免以空洞笼统的动词命名,如“处理”、“加工”等;
D.通常用一个动词命名,如果必须用两个动词才能描述整个处理的功能,则可能要把这个处理分解成两个处理更恰当;E.如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的情况,应考虑重新分解。
3)为数据源点/终点命名
通常,为“数据源点/终点”命名时,采用它们在问题域中习惯使用的名字(如“仓库管理员”、“采购员”)。