下面把 DFD(数据流图)相关的所有知识点系统整理成一份完整文档,从概念、符号、分层、平衡、命名、连线到考试题型和答题方法,层层递进,最后给出背诵清单和速记口诀。


DFD 数据流图 · 系统整理

一、DFD 是什么

DFD(Data Flow Diagram,数据流图)是一种结构化分析工具,用图形方式描述系统的数据流动和加工过程。它回答四个问题:数据从哪里来、经过什么加工、存到哪里、最后输出给谁。

DFD 只关心数据流,不关心控制流、时序和判断条件。它是下午试题一(15分必答)的固定题型。


二、DFD 的四个基本元素

DFD 只有四种符号,必须条件反射地识别和画对。

元素标准图形内部写什么命名规则核心约束
外部实体封闭矩形实体名称名词(客户、财务部门、银行系统)系统边界之外,是数据源点或终点
加工圆角矩形(推荐)或圆形编号 + 加工名(P1 验证订单)动词 + 名词,不能只写动词必须有输入,必须有输出
数据存储开口矩形(右边开口)或两条平行线编号 + 名称(D1 订单表)名词(表/文件/库/清单/档案)只能与加工相连
数据流带箭头的直线(单向)流名称写在线上方名词短语(订单数据、付款通知)至少一端是加工,不能用动词命名

各元素详解

外部实体

  • 系统边界之外的人、组织或外部系统。
  • 同一实体可在图中不同位置多次出现,角落加斜线标记。
  • 外部实体之间不能直连,必须经过加工中转。
  • 顶层图中外部实体与系统加工之间的数据流,必须原样出现在0层图中(父子平衡)。

加工

  • 对数据执行变换或处理的功能单元。
  • 编号从 P1 开始(顶层图的整体系统加工为 P0)。
  • 每个加工至少一条输入流和至少一条输出流。只有入没有出是“数据黑洞”,只有出没有入是“数据奇迹”,都是硬性错误。
  • 更深层子图用父编号加点号:P1.1、P1.2,体现逐层分解。

数据存储

  • 数据的静态存放处,本身不加工数据。
  • 开口矩形三条边、右边不封口;左侧小格写 D 编号,右侧写名称。两条平行线是简化画法,左右都不封口。
  • 不能画成封闭矩形(会和外部实体混淆),不能画成圆角矩形(会和加工混淆)。
  • 数据存储只能与加工相连:箭头指向存储 = 写入;箭头从存储引出 = 读取。
  • 数据存储之间不能直连,外部实体与数据存储之间也不能直连。

数据流

  • 单向箭头,表示数据在元素之间的流动方向。
  • 命名必须是名词或名词短语,描述“流动的是什么”。
  • 绝对不能用动词或加工名来命名(“查询”“计算工资”“处理完成”都是错误命名)。
  • 每条流必须有起点和终点,且至少一端是加工。合法连接只有:实体↔加工、加工↔加工、加工↔存储、存储↔加工。

三、DFD 的分层体系

DFD 采用自顶向下、逐层分解的画法,每一层都是一张完整的图。

顶层图(上下文图)

  • 整个系统画成一个加工(P0,命名为“XX系统”)。
  • 只画外部实体和对外数据流。
  • 不出现数据存储,不展开内部加工。
  • 作用:界定系统边界,明确系统与外界的所有交互。

0层图

  • 顶层图中那个系统加工展开后的第一层细图。
  • 包含多个主加工(P1、P2、P3……)、数据存储(D1、D2……)、外部实体(与顶层图同一批)和内部数据流。
  • 加工编号从1开始,不出现0号加工(0号留给顶层图的系统整体)。

更深层子图

  • 0层图中某个加工继续展开,得到1层图、2层图……
  • 子图编号用父编号加点号:P1.1、P1.2。
  • 考试中通常只考顶层图和0层图,更深层偶尔以“判断某加工能否继续分解”的形式出现。

分层关系一句话

顶层图只有1个加工,0层图把系统拆成几大块,更深层把某一块再拆细。每层都是一张完整的图,不是把上一层的图改一改。


四、数据平衡三原则(核心考点)

原则一:顶层图与0层图平衡

  • 顶层图中系统与外部实体之间的每一条输入流和输出流,在0层图中都必须原样出现(名称一致、方向一致、连接的外部实体一致)。
  • 0层图不能多出顶层图没有的对外数据流,也不能缺少顶层图已有的对外数据流。
  • 0层图内部的加工间数据流、加工与存储间的数据流,不需要在顶层图中出现,不影响平衡。

原则二:父图与子图平衡

  • 父图中某个加工的输入流和输出流,必须与它展开后的子图的输入流和输出流完全一致。
  • 子图不能多出父图中没有的跨边界数据流,也不能缺少父图中已有的跨边界数据流。
  • 平衡只看跨边界的数据流,子图内部加工之间的流不需要与父图对应。

原则三:加工自身平衡

  • 每个加工必须既有输入数据流,又有输出数据流。
  • 只有入没有出 = 数据黑洞;只有出没有入 = 数据奇迹。两者都是硬性错误。

平衡口诀

顶层对外几条流,0层必须条条有;名称方向不能变,内部怎么拆随便。父图加工的入出,子图边界不能丢;每个加工有进有出,黑洞奇迹都没有。

父图与子图通俗理解

  • 父图是较粗的那层图,某个加工还没有展开。
  • 子图是把父图中某一个加工单独展开后得到的细图。
  • 这个被展开的加工,就是父图和子图之间的“接口”。
  • 举例:0层图中有加工“2.统计成绩”,把它展开得到1层图(2.1读取成绩、2.2计算平均分、2.3生成统计表)。0层图是父图,1层图是子图,平衡要求“2.统计成绩”的对外输入输出与1层图整体的对外输入输出一致。

五、命名规则(高频扣分点)

元素正确命名错误命名原因
外部实体客户、财务部门提交订单、审核申请实体是名词,不是动作
加工验证订单、计算总成本校验、处理必须“动词+宾语”,不能只有动词
数据存储订单表、库存文件存储订单、记录维修存储是名词,不是动作
数据流订单数据、付款通知计算工资、查询完成数据流是名词短语,不能用加工名

数据流命名是最高频扣分点。看到数据流名称是动词或加工名,基本可以判定为错误。


六、连线规则与三大禁令

合法连接(只有这五种)

  • 外部实体 → 加工
  • 加工 → 外部实体
  • 加工 → 加工
  • 加工 → 数据存储(写入)
  • 数据存储 → 加工(读取)

三大禁令

  1. 数据存储之间不能直连。
  2. 外部实体之间不能直连。
  3. 外部实体与数据存储之间不能直连。

所有连接都必须经过加工中转。违反禁令是下午题改错的高频考点。


七、考试题型与答题方法

题型一:补充外部实体或数据存储名称

问法:“指出顶层图中E1、E2分别是什么”“0层图中D1~D4分别是什么”。

方法:

  • 外部实体:读题干,找系统边界之外的“人/部门/外部系统”,用题干原词。
  • 数据存储:找题干中带“文件、表、库、清单、档案”的名词。

题型二:补充缺失的数据流

问法:“0层图中某加工缺少一条输入数据流,请指出名称、起点和终点”。

方法:

  1. 先对比顶层图与0层图,找不平衡的对外流。
  2. 逐句读题干,找“提到要读某存储但图上没有入线”或“提到要输出给某实体但图上没有出线”的加工。
  3. 检查每个加工是否只有入没有出、或只有出没有入。
  4. 答案格式:在加工Y与存储Z之间添加数据流“XX信息”,方向要明确。

关键:数据流的起点或终点必须有一个是加工。

题型三:改错

问法:“0层图中哪条数据流方向画错了”“找出图中的错误”。

方法:按“形状→命名→连线→平衡”四步检查:

  • 形状对不对(实体矩形、加工圆角、存储开口)。
  • 命名对不对(数据流是否用动词、加工是否只有动词)。
  • 连线是否违反三大禁令。
  • 加工是否有进有出,父子是否平衡。

题型四:判断某加工能否继续分解

方法:看该加工是否足够简单、是否只有一个明确功能。如果加工内部还有多个子功能或判断逻辑,就可以继续分解;如果已经是原子操作,就不必再拆。

答题规范

  • 补充数据流时用题干原词,不要自己发明口语化名称。
  • 答案写成“在XX与XX之间添加数据流‘XX’”,起点终点方向明确。
  • 数据流名称写名词短语,不写动词。
  • 加工名称写动词+名词。

八、高频易错点汇总

  1. 数据流用动词或加工名命名(如“计算工资”“处理完成”)→ 必须用名词短语。
  2. 数据存储画成封闭矩形 → 与外部实体混淆。
  3. 数据存储画成圆角矩形 → 与加工混淆。
  4. 加工只有入没有出,或只有出没有入 → 数据黑洞/数据奇迹。
  5. 父图子图不平衡:子图多出或缺少数据流,或名称方向不一致。
  6. 外部实体与数据存储直连 → 必须经过加工。
  7. 数据存储之间直连 → 必须经过加工。
  8. 外部实体之间直连 → 必须经过加工。
  9. 顶层图出现数据存储 → 顶层图只有加工、实体和数据流。
  10. 加工名只写一个动词(如“校验”)→ 必须写清校验什么。
  11. 数据流没有起点或终点,或两端都不是加工。
  12. 补充数据流时自己发明名称,不用题干原词。

九、DFD 答题检查清单

答完DFD题,按以下顺序自查:

第一步:形状

  • 外部实体是封闭矩形?
  • 加工是圆角矩形或圆形?
  • 数据存储是开口矩形或两条平行线(不是封闭矩形、不是圆角矩形)?
  • 数据流是带箭头的单向直线?

第二步:命名

  • 数据流是名词短语(不是动词、不是加工名)?
  • 加工是“动词+名词”(不是只有动词)?
  • 数据存储是名词(不是动作)?

第三步:连线

  • 存储没有直连存储?
  • 实体没有直连实体?
  • 实体没有直连存储?
  • 每条数据流至少一端是加工?
  • 每个加工有进有出?

第四步:平衡

  • 顶层图与0层图的对外流名称、方向、数量一致?
  • 父图加工的入出流与子图边界流一致?
  • 没有数据黑洞或数据奇迹?

十、DFD 背诵清单(直接背)

  1. 四个元素:外部实体(矩形)、加工(圆角矩形/圆)、数据存储(开口矩形/平行线)、数据流(带箭头直线)。
  2. 命名规则:实体名词、加工动宾、存储名词、数据流名词短语(不能用动词)。
  3. 加工约束:必须有进有出,不能是黑洞或奇迹。
  4. 存储约束:只能连加工,不能连存储或实体。
  5. 实体约束:不能直连实体,不能直连存储,必须经过加工。
  6. 顶层图:1个加工(P0),只有实体和数据流,无数据存储。
  7. 0层图:多个加工(P1起),可出现数据存储,外部实体与顶层图相同。
  8. 平衡三原则:顶层与0层平衡、父图与子图平衡、加工自身平衡。
  9. 父图子图:父图是粗图,子图是父图中某一个加工展开后的细图;平衡要求该加工的对外接口展开前后不变。
  10. 平衡口诀:顶层对外几条流,0层必须条条有;名称方向不能变,内部怎么拆随便。
  11. 答题格式:在XX与XX之间添加数据流“XX”,起点终点明确,用题干原词。
  12. 三大禁令:存储不直连存储、实体不直连实体、实体不直连存储。

十一、DFD 速记口诀

实体矩形在边界,加工圆角带编号;
存储开口只连工,数据箭头名词报。
加工有进必有出,实体存储不直交;
顶层一个对外流,0层条条不能少。
父图子图看边界,名称方向要对牢;
数据流名用名词,动词加工全不要。

把以上内容按“符号→分层→平衡→命名→连线→题型→易错点”的顺序过一遍,再拿历年真题的DFD题练手,重点练“找缺失数据流”和“改错”,这两类问法占分最重。