课设画图最冤的一种扣分:把数据流图(DFD)画成了流程图。
这两种图长得像(都有箭头、都有方框),但回答的问题完全不同。判混了,老师一眼就看出来——因为流程图里有"判定菱形",数据流图里有"数据存储",这两样东西不会同时出现在一张规范的图里。
这篇用一套真实导出的10 张数据流图(1 张顶层 + 1 张 1 层 + 8 张 2 层)讲清楚它们怎么画、怎么读、怎么自查。
一、一张表分清 DFD 与流程图
| 数据流图(DFD) | 流程图 | |
|---|---|---|
| 回答 | 数据从哪来、经过什么加工、到哪去 | 业务按什么顺序走 |
| 四种基本元素 | 外部实体、加工、数据流、数据存储 | 起止、处理、判定、流向 |
| 有没有"判定" | ❌ 没有菱形判定 | ✅ 有 |
| 有没有"数据存储" | ✅ 有(对应数据库表) | ❌ 无 |
| 会不会出现"人" | ✅ 外部实体(如管理员) | 一般只出现在泳道里 |
| 典型错误 | 画了菱形分支 → 变成流程图 | 画了数据存储 → 变成 DFD |
记法:DFD 关心"数据",流程图关心"顺序"。
二、顶层图:只有一张,画错了全盘错
顶层数据流图(0 层)只做一件事:把系统和外界的关系讲清楚。它包含三类东西——外部实体、一个(或几个)加工、数据存储。
本项目这张图上能读到:
| 元素 | 内容 |
|---|---|
| 外部实体 | 系统管理员、用人单位、毕业生 |
| 核心加工 | 大学生就业咨询系统(一个整块,不展开内部) |
| 数据流 | 需求信息、毕业生信息、级别变更等进出方向 |
| 数据存储 | 需求信息表、毕业生表等(对应数据库里的真实表) |
顶层图最容易犯的错:把系统内部模块也画上去。顶层图就是"一个黑盒 + 外界交互",内部结构留给下一层。
三、逐层展开:拆到几层停
顶层之下是 1 层,1 层之下是 2 层。拆到几层合适?看两条标准:
- 一个加工内部还有明显可分的子步骤→ 继续拆;
- 拆出来的加工已经能对应到一个明确的功能模块或一条业务→ 停。
本项目的 1 层图把系统按业务主线切开:
再往下,2 层图按实体展开,本项目一共 8 张,比如"维护需求信息":
“维护专业”:
以及"办理需求明细"(这条带多表写入,是本系统的核心业务):
10 张的构成:1 张顶层 + 1 张 1 层 + 8 张 2 层。这个结构可以直接照搬到你自己的课题——顶层讲边界、1 层讲主线、2 层讲每个实体的增删改查。
四、四条自检(画完必查)
| 自检项 | 不合格的表现 |
|---|---|
| 有没有凭空出现的数据流 | 某个加工的输出没有来源,也没写到存储 |
| 有没有只进不出的数据存储 | 存储只有写入箭头,没有读取箭头 |
| 加工命名是否"动词 + 名词" | 写成"需求信息"(这是名词,是存储不是加工) |
| 父子图是否平衡 | 父图里有的数据流,子图里凭空消失或多出来 |
父子图平衡是老师最爱查的一项:1 层图上有"需求信息"这一路数据流,2 层图里也必须能找到对应的输入输出。不平衡就说明你拆错了。
五、DFD 和数据库怎么对上
数据流图里的"数据存储"不是随便画的方框,它应该对应数据库里的真实表。本项目 10 张 DFD 里的存储,和建库脚本的 11 张表是一套:
| DFD 里的数据存储 | 数据库表 |
|---|---|
| 需求信息表 | tb_demandInfo |
| 需求明细表 | tb_demandDetail |
| 专业表 | tb_major |
| 单位级别表 | tb_unitLevel |
| 地区表 | tb_region |
答辩时如果被问"你的数据流图和数据库设计对得上吗",能当场指出这个对应关系,就是加分项。
六、答辩时的答题结构
| 老师可能问 | 建议怎么答 |
|---|---|
| 为什么画 2 层不画 3 层? | 按"能对应到功能模块就停"的原则,再拆就与设计文档重复了 |
| 这个加工为什么这么命名? | 动词 + 名词,如"维护专业",与功能结构图上的模块名一致 |
| DFD 和流程图有什么区别? | 用第一节那张表回答,并现场指出你这张图上为什么没有菱形 |
| 数据存储怎么定的? | 对应数据库表,现场翻建库脚本印证 |
七、说实话的部分
- 这 10 张 DFD 来自一份真实导出(与 48 张系统图、11 张表的建库脚本同批产出),结构和层级可以对着核。
- 图是初稿:加工名称、数据流走向按系统结构生成了,但你要按自己课题的业务改——尤其是加工命名,直接抄会和你的功能结构图对不上。
- 层级不是越多越好:2 层已经能覆盖大多数课设;拆到 3 层而里面只有一个加工,反而显得凑数。
一句话总结:DFD 画"数据怎么流",流程图画"业务怎么走";顶层讲边界、1 层讲主线、2 层讲实体,四条自检(无凭空流、无死存储、加工用动宾、父子平衡)过一遍,这张图就不会被扣分。