数据流图DFD
又称分成数据流图,常用于需求分析阶段。
图例
图例需要记牢,有时会将E-R图等多种图的图例混合出选择。
分层
数据流图的分层一般是分为顶层图、0层图、最底下的子图。上层图与下层图(或称之为父图与子图)需要保持平衡。数据流图的封层是从顶到下逐层进行分解,此分解思路与结构化的开发方法完全吻合,所以数据流图成为了结构化方法里面最常用的工具
顶层图
中间椭圆表示需要开发的程序,两侧方框表示该程序与外部实体进行的交互。
0层图
在顶层图基础上,对需开发程序细化,将整体程序拆分成部件。
底层子图
在0层的基础上,对部件进行进一步细化。
数据字典
数据字典用来配合数据流图的使用,对一些数据或名词进行相应的诠释。
符号 | 含义 | 例子 |
+ | 与 | a+b 表示 a 与 b,即 a 和 b |
= | 被定义为 | 机票=姓名+日期+航班号+起点+终点+费用; 表示:元素姓名、日期、航班号、起点、终点、费用被定义为机票 |
[......,......] [......|......] | 或 | x=[a,b]、x=[a | b],表示x由a组成或者由b组成 |
{......} | 重复 | x={a},x由0个或者多个a组成 |
(......) | 可选 | x=(a),表示a可以在x中出现,也可以不出现 |
数据流图平衡原则
父图与子图之间的平衡
数据流图的平衡原则是上层图与下层图(父图与子图)之间,凡是在上层数据流图中出现的交互,在下层数据流图中也必须出现,且方向、数量、名词都需一致。
例如下图顶层数据流图中,外部组织前端应用,与需开发程序数据管理之间有6个箭头,那么在此图细化而成的0层数据流图中,二者之间的交互也应该是6个箭头,并且箭头的名词、方向、数量都需相同。另外两个外部交互组织,数据管理员、后端数据库也需要遵循此原则。
注:由数据需开发程序,数据管理中间件细化而成的内部交互与此无关。
子图内平衡
子图内平衡是指在加工这一项操作中,如果有输入必须有输出才能算作平衡,有输入无输出称作黑洞;无输出有输入称作奇迹;还有一种是输入与输出不对等,或者输出与输入不对等;此三者都属于不平衡,在数据流图中违背平衡原则是错误的。
例
关于数据流图的平衡原则一般的考察方式是给定上层图(或下层图),让判断下层图(或上层图)之间的交互对应关系有无缺失和错误,尤其注意有无箭头指向的方向错误,此错误容易忽略。
上图中红色代表上层图与下层图共有的交互,蓝色代表下层图中缺失的交互,绿色表示需开发程序的细化。如图中,下层图缺失2个上层图中存在的交互,此为不平衡。
数据流图考察
数据流图考察一般为大题类型,首要的是尽可能详细的分析题目中的题干信息,数据流图就是根据题干绘制而成的,然后再利用平衡原则查看是否有数据流方向问题,数据流是否缺失等。