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 可以从宏观到微观逐层细化,常见层级如下:

  1. 上下文图(Context Diagram / Level 0)

    • 系统的最顶层视图,仅包含一个过程节点(Process 0),代表整个系统。
    • 目的是让所有相关方快速理解系统与外部实体之间的交互关系。
  2. 一级分解图(Level 1)

    • 将 Level 0 的单一过程拆解为多个子过程。
    • 展示系统的主要功能模块,适合用于初步设计评审。
  3. 二级深入图(Level 2)

    • 对 Level 1 的每个过程进一步细化,展示更具体的子过程。
    • 常用于详细设计阶段,帮助发现流程中的问题或优化点。
  4. 三级及以上(Level 3+)

    • 极少使用,因为层级过深会导致图过于复杂。
    • 仅在极复杂系统中使用,用于深入分析特定模块的数据流动。

3. 如何绘制数据流图

绘制 DFD 的步骤如下:

  1. 识别外部实体
    确定哪些是数据的来源和去向,比如用户、其他系统、设备等。

  2. 确定数据流动路径
    明确数据在系统中是如何从一个实体流向另一个实体、过程或数据存储的。

  3. 定义处理过程
    每个过程必须有输入和输出,表示数据的变换逻辑。

  4. 添加数据存储
    数据存储不能直接与外部实体连接,必须通过至少一个处理过程。

⚠️ 踩坑提醒:不要遗漏数据流的输入或输出,每个过程都必须有数据流进和流出,否则说明逻辑不完整。

3.1. 示例:账户管理系统

我们以一个简单的账户管理系统为例,说明 DFD 的绘制方法。

系统功能包括:

  • 用户注册
  • 用户登录
  • 账户信息验证
  • 账户信息存储

上下文图(Level 0)

DFD accountMgtSys Level 0

一级分解图(Level 1)

在这个层级中,我们将整个系统拆分为三个子过程:

  1. 验证用户名和密码
  2. 生成错误信息
  3. 完成注册流程

数据流图中展示了用户(外部实体)如何与系统交互,数据如何从用户输入流向系统内部处理,最终写入或读取数据存储(D1-Accounts)。

4. 总结

数据流图是一种非常实用的系统建模工具,尤其适用于系统分析和架构设计阶段。它帮助我们:

  • 明确系统中数据的流动路径
  • 发现潜在的瓶颈或冗余流程
  • 向非技术人员清晰传达系统结构

DFD 从 Level 0 到 Level 2 的层级结构足够应对大多数项目需求。过高的层级虽然更详细,但也更复杂,可能适得其反。

通过理解 DFD 的核心元素和绘制方法,你可以更清晰地设计系统架构,避免在开发过程中出现逻辑混乱或数据流向不明确的问题。


原始标题:What Are Data Flow Diagrams?