1. 简介
数据流图(Data Flow Diagram,简称 DFD)是一种以图形方式展示数据在系统中流动和处理过程的建模工具。它广泛用于分析现有系统或设计新系统时,描述数据如何在不同模块或页面之间流动与处理。DFD 又被称为“气泡图(Bubble Chart)”。
本文将介绍 DFD 的基本概念、作用、组成元素、层级结构以及如何绘制一个数据流图。
2. 数据流图概述
DFD 用于描述系统内部数据的流动路径,帮助识别数据处理流程中的瓶颈,同时也能让非技术人员更直观地理解系统的整体结构。它常用于系统分析、软件设计、架构沟通等场景。
2.1. 数据流图的组成元素
DFD 由以下四种基本元素构成:
✅ 外部实体(External Entity)
又称“源点/终点(Source/Sink)”或“终止器(Terminator)”,表示数据的来源或去向。可以是用户、系统、组织等。图形上通常用矩形表示。
✅ 数据流(Data Flow)
表示数据在系统各部分之间的传输路径,用带箭头的线表示,并附上简短的描述文字。
✅ 处理过程(Process)
表示数据的转换或处理逻辑,图形上用圆圈(或圆角矩形)表示。
✅ 数据存储(Data Store)
表示系统中用于存储数据的地方,如数据库、文件等。图形上通常用开口矩形或两条平行线表示。
2.2. 数据流图的层级结构
DFD 可以从宏观到微观逐层细化,常见层级如下:
上下文图(Context Diagram / Level 0)
- 系统的最顶层视图,仅包含一个过程节点(Process 0),代表整个系统。
- 目的是让所有相关方快速理解系统与外部实体之间的交互关系。
一级分解图(Level 1)
- 将 Level 0 的单一过程拆解为多个子过程。
- 展示系统的主要功能模块,适合用于初步设计评审。
二级深入图(Level 2)
- 对 Level 1 的每个过程进一步细化,展示更具体的子过程。
- 常用于详细设计阶段,帮助发现流程中的问题或优化点。
三级及以上(Level 3+)
- 极少使用,因为层级过深会导致图过于复杂。
- 仅在极复杂系统中使用,用于深入分析特定模块的数据流动。
3. 如何绘制数据流图
绘制 DFD 的步骤如下:
✅ 识别外部实体
确定哪些是数据的来源和去向,比如用户、其他系统、设备等。✅ 确定数据流动路径
明确数据在系统中是如何从一个实体流向另一个实体、过程或数据存储的。✅ 定义处理过程
每个过程必须有输入和输出,表示数据的变换逻辑。✅ 添加数据存储
数据存储不能直接与外部实体连接,必须通过至少一个处理过程。
⚠️ 踩坑提醒:不要遗漏数据流的输入或输出,每个过程都必须有数据流进和流出,否则说明逻辑不完整。
3.1. 示例:账户管理系统
我们以一个简单的账户管理系统为例,说明 DFD 的绘制方法。
系统功能包括:
- 用户注册
- 用户登录
- 账户信息验证
- 账户信息存储
上下文图(Level 0)
一级分解图(Level 1)
在这个层级中,我们将整个系统拆分为三个子过程:
- 验证用户名和密码
- 生成错误信息
- 完成注册流程
数据流图中展示了用户(外部实体)如何与系统交互,数据如何从用户输入流向系统内部处理,最终写入或读取数据存储(D1-Accounts)。
4. 总结
数据流图是一种非常实用的系统建模工具,尤其适用于系统分析和架构设计阶段。它帮助我们:
- 明确系统中数据的流动路径
- 发现潜在的瓶颈或冗余流程
- 向非技术人员清晰传达系统结构
DFD 从 Level 0 到 Level 2 的层级结构足够应对大多数项目需求。过高的层级虽然更详细,但也更复杂,可能适得其反。
通过理解 DFD 的核心元素和绘制方法,你可以更清晰地设计系统架构,避免在开发过程中出现逻辑混乱或数据流向不明确的问题。