DFD 的表达范围
数据流图(Data Flow Diagram)是结构化分析的核心图型,用外部实体、处理过程、数据存储与数据流四类元素描述“数据从哪来、经过什么加工、落到哪去”。它按上下文图、0 层、1 层逐级分解,适合与业务人员核对数据来源与去向,也适合在需求阶段暴露遗漏的输入输出。它不表达控制顺序与并发,因此需要与状态图或活动图配合使用。
基本信息
| 四类元素 | 外部实体、处理过程、数据存储、数据流 |
|---|---|
| 分层方式 | 上下文图(整系统一个过程)→ 0 层 → 1 层,逐级分解 |
| 不表达 | 控制顺序、并发、时序与性能约束 |
| 配套图 | 状态图表达状态迁移,活动图表达流程控制,用例图表达角色目标 |
典型使用场景
- 需求调研:与业务方逐条核对数据的来源、加工与去向
- 系统改造前的现状梳理:把现有数据流画出来,找出重复录入与断点
- 接口边界划分:通过数据存储归属确定服务边界与数据所有权
- 合规与审计准备:说明敏感数据在系统间的流转路径
- 新旧系统对接:用同一套图型对照两侧的输入输出差异
四类元素
| 元素 | 含义 | 常见记法 |
|---|---|---|
| 外部实体 | 系统之外的数据来源或去向 | 矩形,标注角色名 |
| 处理过程 | 对数据做变换的功能 | 圆角矩形或圆形,带编号 |
| 数据存储 | 数据停留的位置 | 开口矩形或双横线 |
| 数据流 | 数据移动方向与内容 | 带箭头的命名连线 |
分解层级示例
分解层级示例
上下文图:客户 | 下单系统 | 支付网关 | 仓储系统
0 层:1 接收订单 → 2 校验库存 → 3 处理支付 → 4 生成出库单
1 层(展开过程 3):
3.1 组装支付请求 → 3.2 调用网关 → 3.3 记录支付结果
# 每个过程都要有输入流与输出流,不能只进不出使用要点
- 数据流必须命名且名称具体,写“数据”等于没写,评审时无法核对口径
- 分解到“一个过程可被一句话描述清楚”即可停止,继续拆分的维护成本会超过收益
- 过程编号与层级对应,子过程编号能看出父过程,便于追溯
- 同一个数据存储在不同层级保持一致命名,避免同一实体出现多个名字
DFD 不表达控制顺序与并发,适合与业务人员核对数据来源去向;控制逻辑用活动图或状态图补充,别指望一张图讲清所有事。
把 DFD 画成流程图是常见误用:一旦在连线里加入条件分支与触发顺序,图就失去“数据视角”的核对价值,评审时反而不易发现遗漏的输入输出。