先别急着填空,先把业务边界读出来
DFD 题的第一步不是看空格,而是看这个系统到底在处理什么业务。题干通常会告诉你外部用户、外部系统、业务单据、数据存储和处理动作,这些都是填图的线索。
考场上建议先用笔圈出名词和动词:名词里可能有外部实体、数据存储、数据流;动词里常常藏着加工。比如“提交申请”“审核订单”“生成报表”,都可能对应处理过程。
外部实体、加工、数据存储怎么区分
外部实体通常在系统边界外,比如用户、管理员、银行接口、第三方平台。它们和系统交换数据,但不是系统内部模块。
加工是系统内部对数据做处理的动作,通常用动词短语表达。数据存储则是系统内部长期保存的数据,比如订单文件、用户信息表、库存记录。
| 元素 | 常见信号词 | 判断要点 |
|---|---|---|
| 外部实体 | 用户、管理员、第三方系统 | 在系统边界外,只和系统交换数据 |
| 加工 | 审核、计算、生成、更新 | 对输入数据进行处理并产生输出 |
| 数据存储 | 订单表、客户信息、库存文件 | 系统内部保存的数据 |
| 数据流 | 申请单、查询条件、处理结果 | 在实体、加工、存储之间流动的数据 |
补数据流时,用输入输出守恒检查
软件设计师下午题常让你补一条缺失数据流。一个实用方法是看加工有没有必要输入、有没有合理输出。加工不能凭空产生数据,也不能把输入吞掉以后没有任何结果。
如果一个加工需要做“审核”,通常要有申请信息、规则或历史数据作为输入,也要有审核结果作为输出。题目里的文字描述往往会直接给出这些数据名称。
- 先找当前加工的职责。
- 再看它需要哪些输入才能完成职责。
- 检查输出是否能支撑后续加工或数据存储。
- 最后回到题干原文,尽量使用题干中的数据名称。
找错题常见错误
DFD 找错题常见问题包括:外部实体之间直接传数据、数据存储之间直接传数据、加工没有输入或没有输出、父图和子图输入输出不平衡。
尤其是分层 DFD,父图中的输入输出要在子图中能对应得上。这个叫平衡原则,下午题很喜欢考。
| 错误类型 | 为什么错 | 修正思路 |
|---|---|---|
| 外部实体直接连数据存储 | 绕过了系统加工 | 中间应有加工处理 |
| 数据存储直接连数据存储 | 存储不会主动处理数据 | 通过加工读取和写入 |
| 加工没有输入 | 加工不能凭空产生结果 | 补充必要输入数据流 |
| 父子图不平衡 | 分层前后数据边界不一致 | 核对父图输入输出 |
考场写法提醒
DFD 填空尽量用题干原词,不要自己发明太口语化的名字。比如题干写“订单信息”,就不要写成“订单资料一堆”。
如果拿不准是数据存储还是数据流,可以看它是否表示长期保存。能被多次读取、更新、维护的,通常更像数据存储;一次传递的单据或结果,更像数据流。
相关题目解析
下面这些题目和本专题的判断方法关联较强,适合读完概念后回到具体题干里校验理解。
- 数据流图中的加工表示什么?数据流图 / 软件设计师数据流图
- 结构化设计中的变换分析主要用于什么场景?结构化设计 / 变换分析
- UML 活动图主要用来描述什么?UML / 活动图
- UML 时序图主要用来描述什么?UML / 时序图