数据流图
1. 数据流图基本概念
- 基本概念
元素 | 说明 | 图元 |
---|---|---|
数据流 | 由一组固定成分的数据组成,表示数据的流向。每个数据流通常有一个合适的名词,反映数据流的含义 | → (箭头符号) |
加工 | 加工描述了输入数据流到输出数据流之间的变换,也就是输入数据流做了什么处理后变成了输出数据流 | ○▢ (圆或者圆角矩形) |
数据存储(文件) | 用来表示暂时存储的数据,每个文件都有名字。流向文件的数据流表示写文件,流出的表示读文件 | ═ 匚 (平行线或者三条边的矩形) |
外部实体 | 指存在于软件系统外的人员或组织 | □ (直角矩形) |
- 数据流图又称为分层数据流图:
即在顶层图中,中间的椭圆部分是需要实现的,两边的矩形都属于外部实体;在 0 层图中,中间的 1 2 3 是顶层图中椭圆部分的细化,细化后的部分间存在数据的流转;而 0 层图下的图则是 0 层图中各个部分的进一步细化。不同层间存在平衡
2. 数据字典
符号 | 含义 | 举例说明 |
---|---|---|
= | 被定义为 | |
+ | 与 | x = a+b,表示 x 由 a 和 b 组成 |
[…,…]或[…|…] | 或 | x =[a,b],x=[a|b],表示 x 由 a 或由 b 组成 |
{…} | 重复 | x = {a},表示 x 由 0 个或多个 a 组成 |
(…) | 可选 | x = (a),表示 a 可在 x 中出现,也可以不出现 |
3. 数据平衡原则
1. 父图与子图之间的平衡
上一层图一般称为下一层图的父图,下一层图一般称为上一层图的子图。
前面说到数据流图的层与层之间存在关系,即父图中的数据流向应该与子图中的数据流向保持一致。
比如根据图一顶层图补充图二 0 层图
首先观察顶层图中数据流向,"非法用户信息"流入前端应用,"用户信息"从前端应用流出,"格式错误信息"与"权限不足信息"流入前端应用,"处理后的操作"从前端应用流出,欸这次没有在 0 层图中找到,补充至 0 层图,…,依次检验,即父图与子图之间的平衡
2. 子图内的平衡
对于任意一个"加工"过程,正常的形态是既有输入也有输出,此谓子图内的平衡
而以下几种都不正常:
- 黑洞——只有输入没有输出
- 奇迹——只有输出没有输入
- 灰洞——输入得不出输出
- 没有输入也没有输出
- 输入与输出名字相同
4. 答题技巧
1. 详细分析试题说明
将试题说明转化为数据流图的文字描述
例如:
数据管理员可通过中间件进行用户管理、操作管理和权限管理。用户管理维护用户信息,用户信息(用户名、密码)存储在用户表中;操作管理维护数据实体的标准操作以及所属的后端数据库信息,标准操作和后端数据库信息存放在操作表中;权限管理维护权限表,该表存储用户可执行的操作信息
转化为:
- 数据管理员是一个外部实体;
- 中间件中有“用户管理”、“操作管理”、“权限管理”这些加工;
- 中间件中有“用户表”这个数据存储,且该存储与“用户管理”相关;
- 后端数据库是一个外部实体;
- 中间件中有“操作表”这个数据存储,且该存储与“操作管理”相关;
- 中间件中有“权限表”这个数据存储,且该存储与“权限管理”相关。
2. 利用数据平衡原则
见上一小节