结构化分析方法 数据流图详解
文章目录
- 引言
- 一、数据流(Data Flow)
- 1.1 数据流定义
- 1.2 示意图
- 1.3 案例分析(智能图书馆)
- 1.4 设计原则
- 二、加工(Process)
- 2.1 加工定义
- 2.2 示意图
- 2.3 案例分解
- 2.4 设计原则
- 三、数据存储(Data Store)
- 3.1 存储类型
- 3.2 示意图
- 3.3 案例存储结构
- 3.4 设计原则
- 四、外部实体(External Entity)
- 4.1 实体分类
- 4.2 示意图
- 4.3 案例实体交互
- 4.4 设计原则
- 五、分层数据流图(Hierarchical DFD)
- 5.1 分层结构
- 5.2 案例分层实现
- 顶层图
- 0 层图
- 子层图(P3.1 借阅登记)
- 5.3 设计原则
- 六、完整案例:智能图书馆管理系统
- 6.1 顶层数据流图
- 6.2 0 层数据流图
- 6.3 子层数据流图(P3.1 库存检查)
- 七、Mermaid 高级技巧
- 7.1 节点样式设置
- 7.2 条件分支表示
- 7.3 子图封装
- 八、数据流图验证方法
引言
结构化分析方法(SA)通过数据流图(DFD)建立系统逻辑模型。本教程从数据流、加工、数据存储、外部实体和分层 DFD 五个维度展开,结合 “智能图书馆管理系统” 案例进行解析。
数据流图(DFD)基本成分及其图形表示
成分名称 | 定义 | 图形符号 | 示例 |
---|---|---|---|
外部实体 | 系统之外的数据源或数据终点,如人、组织或其他系统。 | 矩形(内部标注实体名称) 例:[用户] | [财务系统] |
处理过程 | 对数据进行加工或转换的操作步骤,通常用编号和名称标识。 | 圆形或圆角矩形(内部标注处理逻辑) 例:P1.1 身份验证 | P3.2 生成借阅单 |
数据流 | 数据在系统中的流动方向,包含数据名称和流向。 | 箭头线(箭头上标注数据流名称) 例:→ 借阅请求 | → 缴费确认 |
数据存储 | 数据保存的地方,如文件、数据库或缓冲区。 | 开口矩形(内部标注数据存储名称) 例:[(图书信息库)] | [(预约数据库)] |
一、数据流(Data Flow)
1.1 数据流定义
数据流是数据在系统内的流动路径,包含:
- 方向:数据流动方向
- 名称:数据内容描述
- 数据项:具体数据元素集合
1.2 示意图
1.3 案例分析(智能图书馆)
1.4 设计原则
- 每个数据流名称唯一
- 名称应准确反映数据内容
- 避免循环数据流
二、加工(Process)
2.1 加工定义
加工是数据处理逻辑单元,包含:
- 编号:层次化标识符
- 名称:动词短语描述
- 输入 / 输出:明确数据流
2.2 示意图
2.3 案例分解
2.4 设计原则
- 单一职责原则
- 高内聚性
- 精确逻辑描述
三、数据存储(Data Store)
3.1 存储类型
- 临时存储:事务处理临时表
- 永久存储:基础信息数据库
3.2 示意图
3.3 案例存储结构
3.4 设计原则
- 最少冗余
- 完整性约束
- 访问控制
四、外部实体(External Entity)
4.1 实体分类
- 用户角色:学生、教师
- 外部系统:财务系统、学籍系统
4.2 示意图
4.3 案例实体交互
4.4 设计原则
- 明确系统边界
- 唯一标识
- 双向交互
五、分层数据流图(Hierarchical DFD)
5.1 分层结构
5.2 案例分层实现
顶层图
0 层图
子层图(P3.1 借阅登记)
5.3 设计原则
- 父图子图平衡
- 分解粒度控制
- 层次化编号
六、完整案例:智能图书馆管理系统
6.1 顶层数据流图
6.2 0 层数据流图
6.3 子层数据流图(P3.1 库存检查)
七、Mermaid 高级技巧
7.1 节点样式设置
7.2 条件分支表示
7.3 子图封装
八、数据流图验证方法
- 平衡验证:父图子图输入输出匹配
- 完整性验证:无黑洞 / 灰洞加工
- 一致性验证:数据流名称与数据字典一致
- 逻辑验证:数据流方向符合业务规则