跳转至

数据流图:基础、平衡原则与案例解析

本篇整理《软件设计师考试精讲班视频教程讲义》中的“【软件设计】数据流图”五篇课件:课程内容提要、数据流图介绍、数据流图平衡原则、解题技巧、实战演练。保留房源管理、借书等基础例子及两道完整案例;17 张原图均已保存到本地。

“原参考答案”指课件给出的答案,图片中的答案已转写为表格;“补充解释/纠错”是本笔记的核对与说明。 原图保留题目初稿和印刷问题,不表示其中所有箭头都正确。学习重点是先理解系统边界和数据内容,再用方向、端点、平衡原则找遗漏。

一、数据流图描述什么

数据流图(Data Flow Diagram,DFD)描述数据从哪里来、经过什么加工、存到哪里、流向哪里。它用于结构化分析中的功能建模,强调数据的流动与变换;箭头本身不表示程序的执行先后、调用顺序或判断分支。

分层:从整个系统逐步分解

数据流图的顶层图、0层图与加工逐层分解示意

本课件将只含一个整体加工的图称为**顶层图/上下文图**,将整体加工展开后的图称为 0 层图。不同教材可能使用不同层号,做题时以题图标注为准。

  • 顶层图确定系统边界:整体系统作为一个加工,与外部实体交换数据。
  • 0 层图展示系统的主要加工及其数据流、数据存储。
  • 某个加工还可以继续分解,如加工 1 分解为 1.1、1.2、1.3。编号表达分解关系,不表达执行先后。
  • 比较父子图时,比较的是**被分解的那个加工的边界**;不要把父图其他加工的全部数据流也算进来。

四种基本元素

数据流、加工、数据存储和外部实体的图元与含义

元素 作用与命名 方向/边界判断
数据流 一组有明确含义的数据,通常用名词或名词短语命名,如“信用卡申请表” 箭头表示数据传送方向;至少一端是加工
加工/处理 把输入数据变换为输出数据,常用“动词+名词”,如“生成报表” 圆形或圆角矩形;需要足以支持输出的输入
数据存储 保存后续需要使用的数据,如文件、表、库、档案 加工→存储表示写入/更新;存储→加工表示读取
外部实体 系统边界之外的数据来源或接收者,如客户、主管、银行系统 外部是相对于本次建模的系统边界,不是相对于公司或组织

补充解释/纠错: 数据存储不只表示“暂时存储”;它也可以是长期保存的数据。外部实体不只限于人员、组织,也可以是另一个系统。“用户管理”这样的名词在前、动词在后的名称同样可以表示加工,不能机械地按词序分类。

常见合法连接是:外部实体↔加工、加工↔加工、加工↔数据存储。按本课程的结构化 DFD 规则,外部实体与外部实体、外部实体与数据存储、两个数据存储之间不能直接相连;相应的数据传递应由加工承担。图中的双向交换最好拆成两个有名称的单向数据流,以免把查询条件和查询结果混成一条流。

基础识图例:用户、权限与连接管理

用户验证、用户管理、操作管理、权限管理及连接管理的基础识图示例

原图含 E1~E3、D1~D3 和一个未填写含义的 P,没有附实体填空答案。可先按**已经画出的箭头**读取下列关系,不自行把空白补成原答案。

起点 数据流 终点 可以确定的含义
E1 用户信息 用户验证 提交待验证信息
D1 用户信息 用户验证 读取已保存的用户信息用于校验
用户验证 非法用户信息 E1 返回验证反馈
E2 用户信息 用户管理 输入管理数据
用户管理 图中未标名 D1 将管理后的数据写入存储
E2 标准操作/后端数据库信息 操作管理 提交操作及数据库相关信息
操作管理 图中未标名 D2 写入相应存储
E2 操作权限 权限管理 提交权限数据
权限管理 图中未标名 D3 写入相应存储
E1 操作请求 格式检查 请求进入检查加工
格式检查 格式错误信息 E1 返回格式检查反馈
格式检查 用户信息/操作 权限验证 将通过格式检查的数据交给权限验证
权限验证 权限不足信息 E1 返回权限检查反馈
权限验证 数据库信息/验证后的操作请求 连接管理 将相关信息交给连接管理
连接管理 验证后的连接请求;连接请求 E3 原图画出两条分别命名的输出

这是一张用于识别图元和读箭头的示例图,并非附有完整需求的标准答案。不能因为 D2、D3 在图上已经存在,就认为某加工自动拥有其中的数据;若要检查权限等逻辑是否完整,还需要需求说明及对应读取数据流。

二、数据字典:把数据组成说清楚

数据流图擅长表现关系,数据字典补充每项数据的名称、含义、组成、取值范围等。常见定义对象包括**数据项、数据结构、数据流、数据存储**;不同教材也可能把加工条目的名称、输入/输出等规格摘要列入数据字典。

补充解释/纠错: 原课件“数据字典会对数据流图中元素进行定义说明,除开外部实体”是一种课程口径,不能据此认定所有教材都采用同一范围。外部实体的身份和系统边界通常另行说明;加工内部的条件、步骤和业务规则,则由**加工规格说明/加工逻辑描述**展开。数据字典可以被加工规格引用,但不能替代完整的加工逻辑。

数据字典定义、组合、选择、重复和可选符号

记号 含义 例子与读法
= 被定义为 x = a + b:定义 x 的组成
+ 顺序组合/与 x 由 a 和 b 共同组成,并非算术相加
"…" 字面值 x = "a":x 的取值为字符 a
.. 取值范围 x = 1..9:x 可取 1~9 中的一个值
[a\|b] 选择/或 x 由 a 或 b 构成;原图也使用 [a, b]
{a} 重复 0 个或多个 a
m{a}n 有上下限的重复 2{a}5:a 至少出现 2 次、至多出现 5 次
(a) 可选 a 可以出现,也可以不出现

机票组成示例

课件示例转写为:

1
2
3
机票 = 姓名 + 日期 + 航班号 + 起点 + 终点 + 费用
航班号 = “Y7100” .. “Y8100”
终点 = [长沙 | 上海 | 北京 | 西安]

补充解释: 这只是符号练习,不代表真实航班号的完整取值规则。实际定义航班号时,还需说明编码格式及合法值;不能仅凭两个字符串就推断其中所有编号都是有效航班。

基础题:房源信息与客户信息的组成

以下保留课件所给的说明节选;省略号表示原课件本身未提供的部分。

【说明】

……

(1)房源采集与管理。系统自动采集外部网站的潜在房源信息,保存为潜在房源。由经纪人联系确认的潜在房源变为房源,并添加出售/出租房源的客户。由经纪人或客户登记的出售/出租房源,系统将其保存为房源。房源信息包括基本情况、配套设施、交易类型、委托方式、业主等。经纪人可以对房源进行更新等管理操作。

(2)客户管理。求租/求购客户进行注册、更新,推送客户需求给经纪人,或由经纪人对求租/求购客户进行登记、更新。客户信息包括身份证号、姓名、手机号、需求情况、委托方式等。

(3)房源推荐。根据客户的需求情况(求购/求租需求情况以及出售/出租房源信息),向已登录的客户推荐房源。

……

【问题】(4分)

根据说明中术语,给出图中数据流“客户信息”、“房源信息”的组成。

原参考答案与补充解释

原参考答案:

客户信息 = 身份证号 + 姓名 + 手机号 + 需求情况 + 委托方式等。
房源信息 = 基本情况 + 配套设施 + 交易类型 + 委托方式 + 业主等。

补充解释: 找到说明里的“信息包括……”并按数据字典组合记号转写即可。“等”来自原说明和原答案,不意味着可以自行添加题目没有给出的字段。这道题问的是数据组成,不是房源推荐的执行步骤。

三、加工逻辑:把条件与动作说清楚

常用的加工逻辑描述方法有**结构化语言、判定表、判定树**。它们通常用于描述不再继续分解的基本加工:读取什么数据,在什么条件下,执行什么动作,产生什么输出。

结构化语言

结构化语言的顺序、选择和重复结构及用词要求

结构化语言是介于自然语言和形式化语言之间的半形式化语言,可分两层理解:

层次 表达什么 常见写法
外层 控制结构 顺序;IF–THEN–ELSE–ENDIF、CASE–OF–ENDCASE;DO–WHILE–ENDDO、REPEAT–UNTIL
内层 具体业务动作 使用数据字典中的名词、含义明确的动词及有限的自定义词汇,可结合简单算术与逻辑运算

避免用“适当处理”“相关操作”这样的模糊语句代替规则。DFD 中的加工编号不规定执行顺序,具体顺序需要在这类加工说明中明确。

借书基础例子

【课件说明】

借书,图书管理员接收到读者的借书请求后,根据读者信息和借书信息,检查读者是否合法,如果合法,检查该读者是否已经超出借阅图书数目的最大限制,若都合法,则通知读者借书成功,将借书信息写入借书文件中,同时更新图书目录文件。

借书加工与外部实体、读者信息、借书信息和图书目录文件的交互

原图的箭头可读为:

起点 数据流 终点
E2 借书请求 P
P 借书请求 E1
E1 检查结果 P
P 结果通知 E2
D1 读者信息 P
D2 借书信息 P
P 借书信息 D2
P 更新图书目录文件 D3

补充解释: D2 同时被读取和写入,两个箭头表示不同方向的数据交换。原图没有填写 E1、E2、P 的全名;结合说明,可将 E2 理解为提出请求并接收结果的读者、E1 理解为提供检查结果的图书管理员,但这是对图的解释,并非课件给出的填空答案。

课件的结构化描述

借书加工的原结构化语言描述

原图逻辑转写如下,保留其没有展开的失败分支:

WHILE(接收借书请求)
DO
    查询读者信息 AND 查询借书信息
    IF(读者信息合法)THEN
        IF(是否超出借阅图书数目的最大限制)THEN
            (原图未写动作)
        ELSE
            通知读者借书成功
            借书信息写入借书文件
            更新图书目录文件
        ENDIF
    ENDIF
ENDDO

课件的判定表

借书判定表:三个条件组合与对应动作

条件/动作 规则 1 规则 2 规则 3
检查读者信息 F T T
检查借阅图书数目 — F T
通知读者借书成功 — — ✓
借书信息写入借书文件 — — ✓
更新图书目录文件 — — ✓

这是原图的文字转写。T/F 表示条件成立/不成立,动作行的 ✓ 表示执行、— 表示不执行;条件行的 — 表示该条件对这条规则无关。

补充解释/纠错: 第二个条件的名称不完整。根据“规则 3 执行借书成功”,这里的 T 应解释为“借阅数目检查通过,即未超出限制”,不是“已经超出限制”。而结构化描述和判定树问的是“是否超出限制”,其成功分支为“否”。三种表示的业务含义可以一致,但条件取名和真假方向必须统一。

课件的判定树

借书判定树:非法读者、超限和成功三条路径

从根节点到叶子的条件 原图叶子动作
读者不合法 提示非法
读者合法,借阅图书数目超过最大限制 提示数目超过限制
读者合法,借阅图书数目未超过最大限制 通知读者借书成功;将借书信息写入借书文件;更新图书目录文件

判定树通常便于沿路径阅读,判定表便于检查条件组合是否遗漏。它们表达的是同一组规则,不是三套互不相关的知识点。

补充解释: 判定树比前两种原图多写了两个失败提示。统一加工规格时应补全这些失败输出。真实借阅上限还应明确按“借出后总数”检查,例如当前 5 本、上限 5 本,再借 1 本就不能通过;仅检查“当前是否已经超过 5 本”会漏掉达到上限的情况。这是对业务规则完整性的补充,不是更改原题参考答案。

四、平衡原则:核对边界的数据内容

父图与子图之间的平衡

课件给出的完整原则是:任何一张 DFD 子图边界上的输入/输出数据流,必须与其父图对应加工的输入/输出数据流保持一致。

如果父图某加工的一条数据流对应子图的几条数据流,而这些子数据流所包含的数据项整体恰好等于父图中那条数据流,它们仍然平衡。原课件提示这段原则可能直接作为文字题考查。

例如,若数据字典定义:

客户申请资料 = 基本信息 + 申请卡类型

父图中“客户→系统”的一条“客户申请资料”,在子图中可以拆成“客户→申请受理”的“基本信息”和“申请卡类型”两条流,只要没有凭空增加、遗漏数据,且方向和对应外部实体正确。

因此平衡不要求箭头条数一一相等,也不要求组合流与各分流采用同一个名字。 没有拆分/合并时,保持名称一致有利于核对;发生拆分/合并时,要由数据字典或说明证明内容等价。输入与输出要分别比较,不能把反向的数据流算作已经对应。

子图内部新增的加工间数据流和内部存储读写,不跨越被分解加工的边界,不要求全部出现在父图。父子图平衡也不意味着加工内部“输入数据项数=输出数据项数”:加工本来就可以计算、汇总和转换数据。

子图内检查:黑洞、奇迹与灰洞

黑洞只有输入,奇迹只有输出;灰洞需结合数据含义判断

错误 判断方法 补充例子
黑洞 加工只有输入,没有任何输出 收到申请后既无结果、也无存储写入
奇迹 加工只有输出,没有任何输入 没有任何来源就生成一份业务报表
灰洞 有输入、有输出,但输入及所读存储不足以支持输出 只有药品名称,没有库存数据,却输出“库存充足”

写入数据存储也是输出,读取存储也是输入。不能只看加工与用户之间的箭头,就判定它是黑洞或奇迹。灰洞需要结合数据内容和加工规则判断;“两条输入、一条输出”本身并不构成错误。

五、关键词辨析与找遗漏流程

关键词用于定位,最终用语义核对

题目中的线索 优先考虑 还需要核对什么
客户、管理员、主管、经理、老师、学生 外部实体 是否处在本系统边界之外,是否发送或接收数据
银行、供应商、募捐机构 外部实体 本题把组织本身还是某个业务系统作为交互方
银行系统、工资系统、后端数据库 可能是外部实体 对中间件建模时后端数据库可以是外部系统;对业务应用建模时内部数据库常是数据存储
文件、表、库、清单、档案 数据存储候选 是否保存供后续读取;临时生成并发送的“清单”也可能只是数据流
生成报告、发出通知、批改作业、记录分数 加工候选 是否对数据进行处理,输入和输出是什么
物流跟踪、用户管理 加工候选 不要因为名词在前就判成存储或实体
请求、申请、查询条件 常是输入数据流 由谁发起、交给哪个加工;若是“删除请求”,名称仍描述数据内容
结果、通知、反馈、报表 常是输出数据流 接收者是谁,能否由已知输入产生
根据……查询…… 读取存储的线索 条件可能是加工→存储;查得的数据应是存储→加工,二者不能替代
保存、新增、更新、删除 写入存储的线索 哪个加工改哪个存储;已有“新增”不一定覆盖另一项“更新”业务
包括、由……组成 数据字典题 提取数据项并按组合/选择/重复关系组织
如果、否则、是否超过、满足…… 加工逻辑题 条件是否完备,成功与失败分支分别输出什么

按顺序找缺失数据流

  1. 圈定系统边界和题目要求。 先确认要求补实体、存储、加工名,还是补流/改错;统一 E、D、P 的含义。
  2. 把说明拆成“谁—做什么—用什么—产生什么—交给谁”。 为每条业务记录数据流名称、起点、终点;优先使用题干术语。
  3. 核对父子图的外部输入与输出。 顶层有而 0 层没有、或方向相反时要追查;组合流先按数据项展开,再比较内容。
  4. 逐加工检查存储读取。 凡“根据表中的……”“查询库存”“查询在职医生”,检查是否存在存储→加工的数据流。传入查询条件不能代替读回结果。
  5. 逐加工检查新增、更新、删除。 凡“写入”“更新”“删除”,检查加工→正确存储的流。尤其留意同一加工对同一表的不同写入含义。
  6. 检查反馈和加工间传递。 申请结果给谁、预约通知给谁、处理结果是否交给下一加工;再用黑洞/奇迹/灰洞复查。
  7. 填写三元组并回图验证。 写成“数据流名称|起点|终点”;沿箭头尖端确认终点,检查有无把现有流重复算作遗漏。题目分值可帮助估计条目数,但不能替代依据。

用需求记录表检查遗漏:维修预约例子

独立教学例子:顾客提交设备型号、故障描述和期望日期;系统依据维修员的技能、排班选择可接单人员,保存预约,再把结果通知顾客和接单维修员。先不画图,把每项数据的来源和去向列出来:

数据流名称 起点 终点 需求依据
维修申请 顾客 安排维修 顾客提交型号、故障、日期
技能信息 维修员资料 安排维修 依据技能选择人员
排班信息 排班表 安排维修 核对期望日期是否可接单
新预约信息 安排维修 预约记录 保存预约
预约结果 安排维修 顾客 反馈成功信息或无法安排的原因
接单通知 安排维修 维修员 将已安排任务交给具体人员

“维修员资料”“排班表”“预约记录”在这个例子里是存储,“安排维修”是加工。“接单维修员”虽然属于本公司,仍是相对于所建软件系统的外部交互角色。

如果图上已有排班读取,却缺技能信息读取,不能说“有输入,所以完整”:日期可用不足以推出能够修理某种设备,这属于语义上的输入不足。若新需求要求同时占用该时段,还应补写回排班的流;原需求没有这一动作时,不要自行把它列成必缺答案。

当父图把“维修申请”作为一条输入,子图拆成“设备及故障信息”和“期望日期”,由数据字典证明组合内容相同即可平衡。写答案时仍按题目要求提供名称、起点和终点,不能只写“补一条排班线”。

下面两道案例分别练习“上下文边界与方向纠错”和“内部存储读写遗漏”。

六、案例一:信用卡管理系统 CCMS

阅读以下说明和数据流图,回答问题1至问题4,将解答填入对应栏内。

【说明】

现准备为某银行开发一个信用卡管理系统CCMS,该系统的基本功能为:

1.信用卡申请。非信用卡客户填写信用卡申请表,说明所要申请的信用卡类型及申请者的基本信息,提交CCMS。如果信用卡申请被银行接受,CCMS将记录该客户的基本信息,并发送确认函给该客户,告知客户信用卡的有效期及信贷限额;否则该客户将会收到一封拒绝函。非信用卡客户收到确认函后成为信用卡客户。

2.信用卡激活。信用卡客户向CCMS提交激活请求,用信用卡号和密码激活该信用卡。激活操作结束后,CCMS将激活通知发送给客户,告知客户其信用卡是否被成功激活。

3.信用卡客户信息管理。信用卡客户的个人信息可以在CCMS中进行在线管理。每位信用卡客户可以在线查询和修改个人信息。

4.交易信息查询。信用卡客户使用信用卡进行的每一笔交易都会记录在CCMS中。信用卡客户可以通过CCMS查询并核实其交易信息(包括信用卡交易记录及交易额)。

图11-3和图11-4分别给出了该系统的顶层数据流图和0层数据流图的初稿。

图11-3:信用卡管理系统顶层数据流图初稿

图11-4:信用卡管理系统0层数据流图初稿

【问题1】(3分)

根据【说明】,将图11-3中的E1~E3填充完整。

【问题2】(3分)

图11-3中缺少三条数据流,根据【说明】,分别指出这三条数据流的起点和终点。(注:数据流的起点和终点均采用图中的符号和描述)

【问题3】(5分)

图11-4中有两条数据流是错误的,请指出这两条数据流的名称,并改正。(注:数据流的起点和终点均采用图中的符号和描述)

【问题4】(4分)

根据【说明】,将图11-4中P1~P4的处理名称填充完整。

参考答案与补充解析

原参考答案:实体与加工

问题 符号 原参考答案
问题 1(每项 1 分) E1 非信用卡客户
问题 1(每项 1 分) E2 信用卡客户
问题 1(每项 1 分) E3 银行
问题 4 P1 交易信息查询
问题 4 P2 客户信息管理
问题 4 P3 信用卡激活
问题 4 P4 信用卡申请

原参考答案:顶层图缺少的三条数据流

信用卡案例问题2原参考答案:缺失数据流的名称及起止点

起点 终点 名称
E1 P0 或信用卡管理系统 CCMS 信用卡申请表
E2 P0 或信用卡管理系统 CCMS 激活请求
P0 或信用卡管理系统 CCMS E2 信用卡交易信息

原参考答案:0 层图两条错误数据流的改正

错误的数据流是:①激活请求;②信用卡申请表。

信用卡案例问题3原参考答案:两条数据流改正后的端点

数据流名称 改正后数据流起点 改正后数据流终点
激活请求 E2 P3 或信用卡激活
信用卡申请表 E1 P4 或信用卡申请

补充解释:沿箭头检查错在哪里

信用卡案例的端点核对与推导

核对项 原图实际画法/缺口 正确含义与依据
顶层的信用卡申请表 没有 E1→P0 的申请表输入 说明 1 中非信用卡客户填写申请表并提交系统
顶层的激活请求 有 P0→E2 的激活通知,缺少反向的请求 说明 2 中信用卡客户发起激活;通知不能代替请求
顶层的交易信息 有 E2→P0 的交易记录查询请求,缺少查询结果 说明 4 要求客户查询并核实;0 层已有 P1→E2 的“交易信息”
0 层的激活请求 P4→P3 应为 E2→P3;申请加工不是激活请求的发起者
0 层的信用卡申请表 P4→E1 应为 E1→P4;客户提交表单,不是加工把申请表发给客户

本题“信用卡交易信息”(参考答案)与“交易信息”(0 层图)按说明 4 对应同一查询结果。作答沿用题干/答案用语;实际建模宜统一名称或在数据字典中说明对应关系。

E1 和 E2 可以是同一个人在不同业务阶段扮演的角色。 对申请加工,他是非信用卡客户;收到确认函后,才以信用卡客户身份提交激活或查询请求。不能因为现实中是同一个人,就把两个实体标签合并。

信用卡申请表流入系统;信用卡申请信息由系统提交银行;银行把申请验证结果返回系统。它们名称相近,但端点与业务意义不同。

补充核对表:修正后跨系统边界的全部数据流

下表按原图现有箭头与上述参考答案共同核对,用于检查父子图平衡,不额外假设原题没有画出的内部数据库。

数据流 修正后的顶层方向 修正后的 0 层方向
信用卡申请表 E1→P0 E1→P4
确认函 P0→E1 P4→E1
拒绝函 P0→E1 P4→E1
信用卡申请信息 P0→E3 P4→E3
信用卡申请验证结果 E3→P0 E3→P4
激活请求 E2→P0 E2→P3
激活通知 P0→E2 P3→E2
查询/修改个人信息 E2→P0 E2→P2
个人信息 P0→E2 P2→E2
交易记录查询请求 E2→P0 E2→P1
信用卡交易信息/交易信息 P0→E2 P1→E2

七、案例二:医疗管理系统

阅读下列说明,回答问题1至问题4,将解答填入对应栏内。

【说明】

某医疗护理机构为老年人或有护理需求者提供专业护理,现欲开发一基于Web的医疗管理系统,以改善医疗护理效率。该系统的主要功能如下:

(1)通用信息查询。客户提交通用信息查询请求,查询通用信息表,返回查询结果。

(2)医生聘用。医生提出应聘/辞职申请,交由主管进行聘用/解聘审批,更新医生表,并给医生反馈聘用/解聘结果;删除解聘医生的出诊安排。

(3)预约处理。医生安排出诊时间,存入医生出诊时间表;根据客户提交的预约查询请求,查询在职医生及其出诊时间等预约所需数据并返回;创建预约,提交预约请求,在预约表中新增预约记录,更新所约医生出诊时间并给医生发送预约通知;给客户反馈预约结果。

(4)药品管理。医生提交处方,根据药品名称从药品数据中查询相关药品库存信息,开出药品,更新对应药品的库存以及预约表中的治疗信息;给医生发送“药品已开出”反馈。

(5)报表创建。根据主管提交的报表查询请求(报表类型和时间段),从预约数据、通用信息、药品库存数据、医生以及医生出诊时间中进行查询,生成报表返回给主管。

现采用结构化方法对医疗管理系统进行分析与设计,获得如图1-1所示的上下文数据流图和图1-2所示的0层数据流图。

图1-1:医疗管理系统上下文数据流图

图1-2:医疗管理系统0层数据流图

【问题1】(3分)

使用说明中的词语,给出图1-1中的实体E1~E3的名称。

【问题2】(5分)

使用说明中的词语,给出图1-2中的数据存储D1~D5的名称。

【问题3】(4分)

使用说明和图中术语,补充图1-2中缺失的数据流及其起点和终点。

【问题4】(3分)

使用说明中的词语,说明“预约处理”可以分解为哪些子加工,并说明建模图1-1和图1-2是如何保持数据流图平衡的。

参考答案与补充解析

原参考答案:实体与数据存储

问题 符号 原参考答案
问题 1 E1 客户
问题 1 E2 医生
问题 1 E3 主管
问题 2 D1 通用信息表
问题 2 D2 预约表
问题 2 D3 医生表
问题 2 D4 出诊时间表
问题 2 D5 药品库存表

补充解释: 说明中称 D4 为“医生出诊时间表”,原答案写作“出诊时间表”,指同一个存储。0 层图中 E2、E3 为减少交叉而重复绘制,仍分别是同一个医生角色和主管角色,不是新增的不同实体。P1 图内文字写成“信息通用查询”,本笔记按说明统一称“通用信息查询”。

原参考答案:四条缺失数据流

医疗案例问题3原参考答案:四条缺失数据流及其起止点

数据流名称 起点 终点
删除解聘医生的出诊安排 P2 D4
更新所约医生出诊时间 P3 D4
相关药品库存信息 D5 P4
更新预约表中治疗信息 P4 D2

原参考答案:预约处理分解与平衡

预约处理分解为:安排出诊、预约查询、创建预约、预约反馈。

原参考答案关于平衡的文字为:

即保持父图与子图之间的平衡:父图中某个加工的输入输出数据流必须与其子图的输入输出数据流在数量上和名字上相同。父图的一个输入(或输出)数据流对应于子图中几个输入(或输出)数据流,而子图中组成的这些数据流的数据项全体正好是父图中的这一个数据流。

补充解释/纠错: 上述第一句的“数量上和名字上相同”过于绝对,也与紧接着允许一条流对应多条流的表述不一致。更准确的答法是:保持父图对应加工与子图边界上输入/输出数据内容一致;允许拆分或合并,拆分后的数据项整体必须与父图对应数据流等价。 本题上下文图把若干请求和反馈合写在一条箭线上,0 层图分别连到相关加工,不能直接数箭头判断失衡。

补充解释:四条缺失数据流分别怎么找到

逐句对照业务说明与0层图

说明中的证据 原图已有的流 缺少的流及判断
医生聘用:删除解聘医生的出诊安排 P2→D3“更新的医生列表” 只更新医生表不能删除另一个存储中的出诊安排,还要 P2→D4
预约处理:新增预约记录,更新所约医生出诊时间 P3→D2“新预约”;P3→D4“新增出诊时间” “新增出诊时间”对应医生安排可出诊时间,不等于预约成功后的占用/更新,还要 P3→D4“更新所约医生出诊时间”
药品管理:按药品名称查询相关药品库存信息 P4→D5“药品名称”;P4→D5“更新的药品库存信息” 向表提交查询条件、更新库存都不是读回库存结果;还要 D5→P4
药品管理:更新预约表中的治疗信息 P4→D5“更新的药品库存信息” 药品库存表不是预约表,缺少 P4→D2 的治疗信息更新

这里前三个写入关系和一个读取关系都要看箭头端点,不能只凭“图中已经有一条线连着这个表”就认为完整。四条遗漏也不是只靠父子图外部平衡就能全部找到:它们属于 0 层图的内部存储交互,需要逐句检查业务说明。

原参考答案用“删除……”“更新……”命名部分数据流,是沿用题干的答题写法。更规范的建模可命名为“待删除出诊安排标识”“预约后的出诊安排”等数据名,并用加工规格说明删除/更新规则;不能把动词名称的箭线误解成程序控制流。

补充核对:上下文图中一条箭头方向画反

图 1-1 中“预约请求/预约查询请求”的箭头尖端画在 E1 一侧,实际画法是“医疗管理系统→E1”。 但说明明确是客户提交请求,图 1-2 也正确画成 E1→P3,因此顶层图这条流应改为 E1→医疗管理系统。

这是逐图核对发现的额外图示问题,原参考答案没有提到;它不应混入问题 3 要求补充的四条内部数据流。保存原图时保留了这处问题,复习时以题干语义及上述方向说明为准。

补充核对表:按数据内容匹配父子图

下面将上下文图的组合流展开;“系统”表示图 1-1 中的整体加工。对预约请求方向采用上述纠正。

外部数据交换 顶层方向 0 层加工及方向
通用信息查询请求 E1→系统 E1→P1
通用信息查询结果 系统→E1 P1→E1
预约请求、预约查询请求 E1→系统 E1→P3
预约所需数据、预约反馈 系统→E1 P3→E1
应聘请求、辞职请求 E2→系统 E2→P2
聘用反馈、解聘反馈 系统→E2 P2→E2
出诊时间 E2→系统 E2→P3
预约通知 系统→E2 P3→E2
处方 E2→系统 E2→P4
药品已开出反馈 系统→E2 P4→E2
医生应聘申请、医生辞职申请 系统→E3 P2→E3
医生应聘批复、医生辞职批复 E3→系统 E3→P2
报表查询请求 E3→系统 E3→P5
报表 系统→E3 P5→E3

原图把“应聘请求/辞职请求”和“医生应聘申请/医生辞职申请”放在不同边界上:前者由医生提交系统,后者由系统交给主管审批。不能因为都含“申请”就混淆 E2 与 E3。

补充解释:预约处理的四个子加工如何落地

子加工 说明中的输入/读取 说明要求的输出/写入
安排出诊 医生提供的出诊时间 写入 D4 出诊时间表
预约查询 客户的预约查询请求;D3 在职医生数据;D4 出诊时间 将预约所需数据返回客户
创建预约 客户提交的预约请求及可预约信息 新增 D2 预约记录;更新 D4 对应出诊时间;向医生发送预约通知
预约反馈 创建预约产生的处理结果 将预约结果反馈给客户

这张表是根据说明对原答案四个名称的解释,不是课件另附的完整子图。真正绘制 P3 的子图时,还要把子加工间的必要数据流补齐,并核对其边界数据与 P3 一致。不能只写四个名字,就认为已经完成了整个子图的设计。

八、复习时的自检

  • 看到“查询”,能否分别指出查询请求、读取数据和查询结果?
  • 看到“保存/删除/更新”,能否指出具体加工和具体存储,而不只说“数据库”?
  • 看到加工有输入有输出,能否进一步判断输入是否足以产生输出?
  • 比较父子图时,是否核对了实体、方向和数据项,而不是只数线?
  • 填写遗漏数据流时,是否写齐“名称、起点、终点”,并沿原图箭头检查过?
  • 区分数据字典与加工逻辑:前者回答“数据是什么”,后者回答“怎样处理这些数据”。

历年大题练习

本节按年份由近到远收录 18 道完整历年大题。先展开题干独立作答,再展开其中的答案与解析;平台答案与整理补充继续分别保留。

题目复用题库中的同一份正文,题图使用本地文件。普通 Markdown 阅读器可通过原题链接进入;完整性与剩余试卷见大题整理进度。

2024年下半年 · 第 1 题:数码相机控制软件的数据流图与结构化设计

展开原题(先作答,再查看解析)

数码相机控制软件的数据流图与结构化设计

(一)(15分)

【说明】

某公司为一款数码相机开发控制软件,以控制并支持数码相机进行拍摄和播放。

相机正面视图包括镜头、手动调焦环、闪光灯、自动对焦传感器、亮度传感器、PC连接器线口、拍摄按钮;相机背面视图有显示屏、对焦开关、模式切换按钮(模式包括拍照、录像和播放)。相机功能包括。

(1)在拍照或录像模式下,在按下拍摄按钮后打开镜头,根据模式进行拍摄照片或录制视频,并显示在显示屏上;在播放模式下,显示照片或播放视频。

(2)可以根据对焦开关设置为手动还是自动进行对焦。在手动对焦模式下,从手动对焦环获取对焦设置,在自动模式下,从自动对焦传感器获取设置。

(3)环境的亮度由亮度传感器测量。该传感器的值决定镜头的光圈并在必要时激活闪光灯。闪光灯有1、2、3三种不同功率的闪光强度。

(4)照片存储为JPG格式,视频存储为AVI格式。

(5)在播放模式下,如果相机连接至电脑后,可将已存储在相机中的照片和视频以媒体流传输至电脑中。

现采用结构化方法对数码相机控制软件进行分析与设计,获得如图1所示的上下文数据流图和图2所示的0层数据流图。

01(5分)
使用说明中的词语,给出图1中的实体E1~E10的名称。
02(2分)
使用说明中的词语,给出图2中的数据存储D1~D2的名称。
03(6分)
根据说明和图中术语,给出图中数据流条目“可视化数据”、“媒体流”、“闪光强度”的组成。
04(2分)
采用结构图对控制软件进行设计,说明结构化设计的步骤。

答案与解析

平台参考答案(原意保留)

平台参考答案(保留原意):

  1. 外部实体:E1 拍摄按钮;E2 自动对焦传感器;E3 闪光灯;E4 亮度传感器;E5 镜头;E6 电脑;E7 手动对焦环;E8 模式切换按钮;E9 对焦开关;E10 显示屏。
  2. 数据存储:D1 视频记录;D2 照片记录。
  3. 数据流组成:
  4. 可视化数据 = [JPG图片 | AVI视频]。
  5. 媒体流 = [JPG图片 | AVI视频]。
  6. 闪光强度 = [功率1 | 功率2 | 功率3]。
  7. 平台列出的“结构化设计步骤”:需求分析 → 概要设计 → 详细设计 → 系统测试。

解析与纠错

解析与纠错:

  • 图1已逐一核图。识别外部实体应依据跨越系统边界的数据流:E1 输入拍摄按键状态,E2 输入自动对焦设置,E3 接收闪光强度,E4 输入亮度,E5 输入记录可视化数据并接收打开指令,E6 接收媒体流,E7 输入手动对焦设置,E8 输入模式,E9 输入对焦模式,E10 接收查看可视化数据。平台实体映射与图一致。
  • 图2中“拍摄”向 D1 写入视频、向 D2 写入照片,因此分别是视频存储、照片存储;“视频记录”“照片记录”与其含义相同。“播放”读取这两个存储。
  • 数据字典中的 [A | B] 表示择一。按题目给定的存储格式,可以使用平台的 JPG图片/AVI视频表述;闪光强度则是 1、2、3 三个功率档位。题干没有给出媒体流的包头、帧结构、时序或原始传感数据编码,不应自行增补。“记录可视化数据”进入拍摄加工之前是否已编码成 JPG/AVI,也不能只凭存储格式推出;平台写法是在题目抽象层次上的概括。
  • 第4问询问的是从数据流图形成软件结构图的结构化设计步骤。平台给出的“需求分析、概要设计、详细设计、系统测试”混入了生命周期阶段,不能准确回答本问。较合适的回答是:复核并细化数据流图;判断数据流属于变换型还是事务型,确定变换中心及输入/输出流,或事务中心及各动作路径;通过变换分析/事务分析将数据流图映射为初始模块结构图;逐层分解模块并明确接口;按高内聚、低耦合及合理控制范围等原则评审、优化结构图,再开展模块详细设计。

2024年上半年 · 第 1 题:产品缺陷检测系统的数据流图与数据字典

展开原题(先作答,再查看解析)

产品缺陷检测系统的数据流图与数据字典

阅读下列说明和图,回答问题。

【说明】

随着智能制造的发展,现代工业生产线上大量使用机器学习等技术,以实现生产流程的智能化和自动化,提升产品质量。某企业欲开发基于机器视觉的产品缺陷检测系统来改造生产线,该系统的主要功能是:

(1)图像采集。连接高分辨率工业相机对产品表面进行拍摄,接收拍摄的产品原始图像并进行存储,图像附带产品号、时间戳等信息。

(2)图像预处理。对产品原始图像通过灰度化、去噪、对比度增强等操作消除图像中的噪声和失真,将预处理后的图像进行存储。

(3)缺陷识别。从预处理后的图像中提取出特征并进行存储,包括颜色、形状、纹理等。基于特征和系统参数进行产品缺陷识别,得到识别结果。识别结果包括:无缺陷,或有缺陷,以及有缺陷时至少一种缺陷类型。

(4)结果输出。根据缺陷识别结果向控制分拣系统发送控制指令;同时将识别结果通过前端监控页面展示给质量管理员。

(5)后台管理。质量管理员对视觉检测系统参数进行管理或设置,供缺陷识别使用。

(6)数据导出。视觉模型训练平台发送数据请求,将积累的产品图像及识别数据(图像特征与识别结果)通过接口进行导出,用于进行进一步训练和优化模型。

现采用结构化方法对缺陷检测系统进行分析与设计,获得如图1所示的上下文数据流图和图2所示的0层数据流图。

01(4分)
使用说明中的词语,给出图1中的实体E1E4的名称。
02(4分)
使用说明中的词语,给出图2中的数据存储D1
D4的名称。
03(4分)
根据说明和图中词语,补充图2中缺失的数据流及其起点和终点。每条数据流的解答格式如下:
数据流名称:
04(3分)
根据说明和图,给出P3到D4的数据流“识别结果”的组成。

答案与解析

平台参考答案(原意保留)

平台参考答案:

  1. E1 工业相机;E2 视觉模型训练平台;E3 控制分拣系统;E4 质量管理员。
  2. D1 原始图像表;D2 预处理图像表;D3 图像特征表;D4 识别结果表。
  3. 平台列出的缺失数据流:
  4. D1 → P6:导出原始图像数据。
  5. D2 → P6:导出预处理图像数据。
  6. D3 → P6:导出图像特征数据。
  7. D4 → P6:导出识别结果数据。
  8. 平台给出的数据组成:识别结果 = [无缺陷 | 有缺陷 | 有缺陷时至少一种缺陷类型]。

解析与纠错

解析与纠错:

  • E1 输入产品图像,E2 发出数据请求并接收产品图像和识别数据,E3 接收控制指令,E4 提供系统参数并查看识别结果,因此平台四个实体名称与图1相符。
  • 图2中 P1 写入原始图像,P2 写入预处理图像,P3 写入图像特征和识别结果,分别对应 D1—D4。题干没有要求具体物理表名,使用“原始图像存储”等同义名称也能准确描述数据存储。
  • 数据导出加工 P6 需要读取图像和识别数据,平台列出的 D1、D2、D3、D4 → P6 四条读取流符合其导出全部已存图像与识别数据的理解。
  • 图2还遗漏了 系统参数存储 → P3(缺陷识别),数据流名称为“系统参数”。说明明确要求“基于特征和系统参数进行产品缺陷识别”,图中 P5 虽向系统参数存储写入数据,却没有后续读取流。平台只列出四条导出流,未覆盖这项必要输入;不能根据本问有4分就断言只能存在4条缺流。
  • 特征提取和识别都属于 P3,P3内部可以直接使用刚提取的特征,题目未必要求再补 D3 → P3 的读取流。是否额外读取历史特征应由业务要求决定,不应无依据增添。
  • 平台对“识别结果”的表达把“有缺陷”和“至少一种缺陷类型”列成互斥选项,会允许“有缺陷但没有类型”,不满足题意。可写为:
识别结果 = [无缺陷 | 有缺陷 + 缺陷类型列表]
缺陷类型列表 = 缺陷类型 + {缺陷类型}

这里 [] 内择一,+ 表示组成连接,{} 表示可重复零次或多次,因此有缺陷时至少有一种类型。产品号、时间戳属于题干已说明的图像信息;识别结果是否另带它们,题干没有给出,不能直接加为必填字段。

2023年下半年 · 第 2 题:众包训练数据系统的数据流图

展开原题(先作答,再查看解析)

众包训练数据系统的数据流图

【考生回忆版】

为减少聊天机器人训练数据集的人工收集成本,拟开发众包信息系统,功能如下。

  1. 用户管理:众包工作者提供角色和标识,保存到用户表。
  2. 添加问题:众包工作者提供问题建议,管理员添加初始问题;问题和问题类别分别存储,类别标明问题来自工作者还是管理员。
  3. 答复问题:系统随机展示5个问题,工作者可回答或拒绝。回答时提供答案,拒绝时提供拒绝原因;若回答问题数不足5个,继续展示问题,否则工作者提供问题建议。回答和拒绝均以不同状态标记保存到答复表。
  4. 数据服务:按其它训练平台的请求,提供包含问题、问题类别和回复的数据集。

使用结构化方法分析与设计,得到图1上下文数据流图和图2的0层数据流图。

上下文数据流图

图1 上下文数据流图

0层数据流图

图1 0层数据流图

【问题1】(3分)使用需求说明中的词语,写出图1中E1~E3的实体名称。

【问题2】(4分)使用需求说明中的词语,写出图2中D1~D4的数据存储名称。

【问题3】(4分)按需求和图中术语,补出图2缺失的数据流,并给出各自起点和终点。

【问题4】(4分)说明分层数据流图中父图与子图平衡的含义,以及保持平衡的方法。

答案与解析

平台参考答案(原文保留)

【问题1】

E1:管理员
E2:众包工作者
E3:其它训练平台

【问题2】

D1:用户表
D2:答复表
D3:问题类别表
D4:问题表

【问题3】
E2- > P3 问题建议
E2- > P2 问题建议

D2至P4答复

D4至P2问题

【问题4】
父图与子图之间平衡是指任何一张DFD子图边界上的输入/输出数据流必须与其父图对应加工的输入/输出数据流保持一致。
父图中某个加工的一条数据流对应于子图中的几条数据流而子图中组成这些数据流的数据项全体正好等于父图中的这条数据流,那么它们仍然是平衡的。

解析与纠错

  1. 沿上下文图的边界数据流识别实体:提供初始问题的是E1管理员;提供角色/标识、回复和问题建议,并接收问题的是E2众包工作者;请求并接收数据集的是E3其它训练平台。
  2. D1接收角色与标识,是用户表;P2答复问题把问答写入D2,故D2是答复表;P3分别把问题类别和问题写入D3、D4,对应问题类别表、问题表。
  3. 根据现有图,三条可以直接确定的缺失流为:E2→P3“问题建议”,D4→P2“问题”,D2→P4“答复”。分别补足新增问题的输入、随机展示问题的读取、数据集中回复信息的读取。平台另列E2→P2“问题建议”,但P2的已述职责是展示及答复问题,接收并保存建议由P3完成;题文和图没有要求把同一建议再独立输入P2。因此保留平台这条答案,但标明其必要性缺乏给定依据,不把它作为确定的第四条补流。
  4. 父子图平衡比较的是系统边界所传信息:子图的全部外部输入/输出,应与父图对应加工的输入/输出等价,不得凭分解新增或遗漏外部接口。允许父图一条复合流在子图拆成若干流,只要数据字典中各流的数据项合并后与父流相同;加工与内部存储之间的新流不因此破坏平衡。逐一核对外部实体、方向、名称及数据项即可检查。这里父图的“回复”可以在子图细分为答案或拒绝原因,再用状态区分。

题目先称第二幅图为图2,原图注却写“图1 0层数据流图”;保留原图注,小问中图2指第二幅图。题文的“回答问题数不足5”也照其原条件保留,不擅自改成“回答和拒绝的总次数不足5”。

2023年上半年 · 第 1 题:农事管理服务平台

展开原题(先作答,再查看解析)

农事管理服务平台

阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。

随着农业领域科学种植的发展,需要对农业基地及农事进行信息化管理,为租户和农户等人员提供种植相关服务。现欲开发农事管理服务平台,其主要功能是:

(1)人员管理。平台管理员管理租户;租户管理农户并为其分配负责的地块。租户和农户以人员类型区分。

(2)基地管理。租户填写基地名称、地域等描述信息,在显示的地图上绘制地块。

(3)种植管理。租户设定作物及其从种植到采收的整个农事过程,包括农事活动及其实施计划;农户根据相应农事过程提醒进行农事活动并记录。系统会在设定时间向农户进行农事提醒;对逾期未实施活动向租户发出逾期告警。

(4)投入品管理。租户统一维护化肥、杀虫剂等投入品信息,农户在农事活动中设定投入品的实际消耗。

(5)信息服务。用户按查询条件发起农事信息请求,对相关地块农事活动实施情况(如与农事过程比对)等农事信息进行筛选、对比和统计等处理,并将响应信息进行展示。系统也给其他第三方软件提供API接口,通过接口访问的方式,提供账号、密码和查询条件发起农事信息请求,返回特定格式的农事信息。无查询条件时默认返回账号下的所有信息,多查询条件时返回满足全部条件的信息。

现采用结构化方法对农事管理服务平台进行分析与设计,获得如图1-1所示的上下文数据流图和图1-2所示的0层数据流图。

【问题1】(4分)

使用说明中的词语,给出图1-1中的实体E1~E4的名称。
【问题2】(4分)

使用说明中的词语,给出图1-2中的数据存储D1~D4的名称。
【问题3】(4分)

根据说明和图中术语,补充图1-2中缺失的数据流及其起点和终点。
【问题4】(3分)

根据说明,给出“农事信息请求”数据流的组成。

答案与解析

平台参考答案(原意保留)

问题一
E1:平台管理员 E2:农户 E3:租户 E4:第三方软件

问题二
D1:人员表
D2:基地及地块数据表
D3:农事过程表
D4:农事活动表

问题三

数据流名称 起点 终点
投入品实际消耗 P4 D4
农事过程信息 D3 P5
农事活动信息 D4 P5
农事过程 P3 E2

问题四
农事信息请求 = 账号+密码+查询条件

解析与纠错

实体与数据存储。 E1是平台管理员,E2是农户,E3是租户,E4是第三方软件。D1保存人员,D2保存基地与地块,D3保存农事过程与计划,D4保存实际农事活动。名称可按业务对象命名,不能把某次输入的数据流与整个数据存储混为一谈。

缺失数据流。 平台列出的“D3→P5:农事过程信息”“D4→P5:农事活动信息”分别支撑计划比较和实施情况查询。若由P4处理农户的消耗信息,“P4→D4:投入品实际消耗”可补上记录去向,但还需说明P4从何处取得该消耗输入。

图1-2已经绘有 P3→E2的“农事提醒”。平台第四条“P3→E2:农事过程”若指完整过程或计划,可以与提醒作为不同内容并存;若只是把提醒换了名称,就不是缺失线。同起点、同终点不等于同一数据流,题干又没有明确要求向农户另行传输完整计划,因此不能把这一条当作唯一确定的补图结论。

进一步检查。 农户在农事活动中填写实际消耗,数据可以作为已有E2→P3“农事活动”的组成部分。若仍由P4统一处理消耗,可由P3转交给P4,或让E2把该部分数据直接送入P4;若由P3直接写入D4,则未必需要额外的P4写入路径。这些方案不可无条件并列为必补项。对于定时提醒与逾期判断,若P3使用D3、D4中的持久记录,应补上相应读取,原图两条写入箭头不能代替读取。按账号和地块筛选还需取得归属与地块资料,D1、D2到P5的读取是可行方案,但不是题干规定的唯一分解。应以加工输入足以支撑输出、上下文图与0层图保持平衡为检查依据。

数据字典。 对第三方API,可写为下式;账号与密码标识访问身份,条件序列可以为空,多条件按“且”组合。空条件表示当前账号可访问的全部农事信息,不表示全平台全部数据。

1
2
3
农事信息请求 = 账号 + 密码 + 查询条件集
查询条件集 = 0{查询条件}n
筛选规则:无条件 → 当前账号下全部信息;多条件 → 同时满足全部条件

图中的租户、农户以“查询条件”发起查询,登录身份可由会话提供;不必由这一简图推导每次界面查询都明文携带密码。平台未展开查询条件集的可空性和合取语义,查询条件可空及多条件合取由题干直接得到;界面会话仅是一种实现选择。

补充与完整参考实现

平台解析所用的数据存储局部图(按原图保留):

2022年下半年 · 第 1 题:充电计量检定的数据流设计

展开原题(先作答,再查看解析)

充电计量检定的数据流设计

为检定新能源车充电桩的计量准确性,开发计量检定云端软件。充电桩配有电能计量和电费计费功能,充电计量准确性须强制检定。系统要求如下。

  1. 数据接收:计量装置按秒上报充电监测数据和计量数据,包括充电过程中的电压、电流、电能。前者由充电桩监测,后者由计量装置计量;系统还接收计量装置心跳数据,两类数据分别存储。
  2. 基础数据维护:管理员维护充电桩、计量检定装置等基础数据。
  3. 数据分析:对比电压、电流、电能并分析误差,记录充电桩充电误差,供计量装置检定;按计量检测人员给出的查询和统计条件展示结果。
  4. 充电桩检定:计量检测人员依据误差分析结果及检定信息记录开展检定并提交结果;系统更新充电桩的检定结果、检定时间,并保存检定记录。
  5. 异常告警:计量装置心跳停止时,向管理员告警。
  6. 检定信息获取:其它相关第三方服务可查询充电桩的检定信息。

采用结构化方法得到以下上下文数据流图和0层数据流图。

图1-1 上下文数据流图

图1-2 0层数据流图

【问题1】(4分)用说明中的词语填写图1-1的外部实体E1~E4。

【问题2】(5分)用说明中的词语填写图1-2的数据存储D1~D5。

【问题3】(4分)依据说明及图中术语,补出图1-2缺失的数据流,并给出每条流的起点、终点。

【问题4】(2分)写出“充电监测与计量数据”数据流的组成。

答案与解析

平台参考答案(原文保留)

【问题1】
E1:计量装置
E2:管理员
E3:计量检测人员
E4:第三方服务
【问题2】
D1:充电数据文件
D2:基础数据文件
D3:心跳数据文件
D4:充电误差信息文件
D5:检定记录

【问题3】

或者

【问题4】
充电监测数据和计量数据={充电桩ID+计量装置ID+监测电压+监测电流+监测电能+计量电压+计量电流+计量电能+时间}
或者
充电监测数据和计量数据={监测数据+计量数据+时间}

解析与纠错

E1负责上报监测和计量数据,因此是计量装置;E2维护基础数据并接收告警,是管理员;E3提出查询统计条件并提交检定结果,是计量检测人员;E4只查询检定信息,是第三方服务。

按数据进入和使用的处理确定存储:P1分别写入D1充电数据文件、D3心跳数据文件;P2维护D2基础数据文件;P3把误差分析结果写入D4充电误差信息文件;D5保存检定记录。

平台问题3给出的两张答案表并不等价。按“更新充电桩中的检定信息,并存储于检定记录”和第三方查询充电桩信息的要求,第二张表更直接对应如下四条流:

数据流 起点 终点
查询和统计条件 E3计量检测人员 P3数据分析
检定信息 P4充电桩检定 D2基础数据文件
检定信息 P4充电桩检定 D5检定记录
检定信息 D2基础数据文件 P6检定信息获取

第一张表另列D4→P3的“充电信息误差”和D5→P6的“检定信息”,却未体现P4更新D2。若需要查询已保存的误差,可增加D4→P3;若P6从历史记录取当前检定结果,还须说明按充电桩取得最新记录的规则。这些条件下才可采用相应路径,不能把两份图当成完全相同的答案。两份平台图均原样保留。

充电数据需要区分充电桩和计量装置,并按同一时间对齐比较,故可写为:充电桩ID+计量装置ID+监测电压+监测电流+监测电能+计量电压+计量电流+计量电能+时间。平台简写“监测数据+计量数据+时间”只有在两个复合数据项已包含设备标识时才足够。

原上下文图把“充电监测及计量数据”的箭头画向E1;按题干以及0层图E1→P1的方向,应由计量装置流入系统。题图不改,方向冲突在此说明。

2022年上半年 · 第 1 题:外卖订餐系统的数据流

展开原题(先作答,再查看解析)

外卖订餐系统的数据流

阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
某公司欲开发一款外卖订餐系统,集多家外卖平台和商户为一体,为用户提供在线浏览餐品、订餐和配送等服务。该系统的主要功能是:
1.入驻管理。用户注册、商户申请入驻,设置按时间段接单数量阈值等。系统存储商户/用户信息。
2.餐品管理。商户对餐品的基本信息和优惠信息进行发布、修改、删除。系统存储相关信息。
3.订餐。用户浏览商户餐单,选择餐品及数量后提交订餐请求。系统存储订餐订单。
4.订单处理。收到订餐请求后,向外卖平台请求配送。外卖平台接到请求后发布配送单,由平台骑手接单,外卖平台根据是否有骑手接单返回接单状态。若外卖平台接单成功,系统给支付系统发送支付请求,接收支付状态。支付成功,更新订单状态为已接单,向商户发送订餐请求并由商户打印订单,给用户发送订单状态;若支付失败,更新订单状态为下单失败,向外卖平台请求取消配送,向用户发送下单失败。若系统接到外卖平台返回接单失败或超时未返回接单状态,则更新订单状态为下单失败,向用户发送下单失败。
5.配送。商户备餐后,由骑手取餐配送给用户。送达后由用户扫描骑手出示的订单上的配送码后确认送达,订单状态更改为已送达,并发送给商户。
6.订单评价。用户可以对订单餐品、骑手配送服务进行评价,推送给对应的商户、所在外卖平台,商户和外卖平台对用户的评价进行回复。系统存储评价。
现采用结构化方法对外卖订餐系统进行分析与设计,获得如图1-1所示的上下文数据流图和图1-2所示的0层数据流图。

图1-1 上下文数据流图

图1-2 0层数据流图

【问题1】(4分)
使用说明中的词语,给出图1-1中实体E1~E4的名称。
【问题2】(4分)
使用说明中的词语,给出图1-2中的数据存储D1-D4 的名称。
【问题3】(4分)
根据说明和图中术语,补充图1-2中缺失的数据流及其起点和终点。
【问题4】(3分)
根据说明,采用结构化语言对“订单处理”的加工逻辑进行描述。

答案与解析

平台参考答案(原意保留)

【问题1】(4分)
E1:商户
E2:外卖平台
E3:用户
E4:支付系统

【问题2】(4分)
D1:用户/商户信息
D2:订餐订单信息
D3:餐品信息
D4:评价信息

【问题3】(4分)【1条1分,满分4分】

数据流名称 起点 终点
餐单 P3或订餐 E3或用户
餐单 D3或餐品信息 P3或订餐
订餐请求 P3或订餐 P4或订单处理
更新订单状态 P4或订单处理 D2或订单信息

【问题4】(3分)

收到订餐请求后,向外卖平台请求配送;

外卖平台接到请求后发布配送单,由平台骑手接单;

外卖平台根据是否有骑手接单返回接单状态;

IF(外卖平台接单成功)THEN{

系统给支付系统发送支付请求,接收支付状态;

IF(支付成功)THEN{

更新订单状态为已接单;

向商户发送订餐请求并由商户打印订单;

给用户发送订单状态;}

ELSE{

更新订单状态为下单失败;

向外卖平台请求取消配送;

向用户发送下单失败;

}ENDIF

}ELSE IF(系统接到外卖平台返回接单失败或超时未返回接单状态)THEN{

更新订单状态为下单失败;

向用户发送下单失败;

}ENDIF

解析与纠错

实体和存储。 E1商户发布餐品并接收订单,E2外卖平台接收配送请求并返回接单状态,E3用户提交订餐及评价,E4支付系统处理支付。D1保存用户/商户信息,D2保存订餐订单,D3保存餐品,D4保存评价。平台解析把E3写成“用户订单状态”,混合了实体和数据流;实体应为“用户”。

补充数据流。 平台给出的四条可以支持完整订餐路径:D3→P3提供餐单,P3→E3展示餐单,P3→P4提交订餐请求,P4→D2写入更新后的订单状态。图中P4名称为“订单管理”,对应说明里的“订单处理”,是同一加工。D2在图中重复绘制用于布线,表示同一个数据存储,不是两套订单库。

订单处理逻辑。 以下只展开说明已明确的分支,不擅自加入新的支付超时或取消规则。平台发布配送单、骑手接单是外部平台的行为,本系统等待其返回接单状态。

收到订餐请求
向外卖平台发送配送请求
等待接单状态或达到题定等待期限
IF 接单成功 THEN
    向支付系统发送支付请求,接收支付状态
    IF 支付成功 THEN
        将订单状态更新为“已接单”并写回订单存储
        向商户发送订餐请求,由商户打印订单
        向用户发送订单状态
    ELSE(支付失败)
        将订单状态更新为“下单失败”并写回订单存储
        向外卖平台请求取消配送
        向用户发送下单失败
    ENDIF
ELSE IF 接单失败 OR 超时未返回接单状态 THEN
    将订单状态更新为“下单失败”并写回订单存储
    向用户发送下单失败
ENDIF

只有接单成功后才请求支付;支付失败分支明确要求取消配送,接单失败/超时分支的题面没有这一要求。入驻时设置的接单数量阈值没有给出具体判定规则,不能替题目补造一个必需的阈值检查分支。

2021年下半年 · 第 1 题:智慧农业平台的数据流图

展开原题(先作答,再查看解析)

智慧农业平台的数据流图

某现代农业种植基地要建设集管理与销售于一体的智慧农业平台,提高农作物种植过程的智能化水平。功能要求如下。

  1. 信息维护:农业专家维护农作物、环境等监测数据的监控处理规则。
  2. 数据采集:接收传感器连续上传的农作物长势、土壤墒情、气候等监测数据,解析为监测信息,供数据处理、可视化和存储使用。
  3. 数据处理:按监控处理规则分析实时监测信息,将分析结果用于可视化、存储及远程控制;对历史监测信息进行综合统计和预测,将预测信息用于可视化和存储。
  4. 远程控制:按监控处理规则判定分析结果,并据此自动远程控制控制器;也可按照农业人员提供的控制信息远程控制控制器。
  5. 可视化:实时向农业人员显示监测信息;向农业专家实时显示统计分析结果与预测信息,或根据其请求显示。

采用结构化方法分析、设计该平台,图1-1为上下文数据流图,图1-2为0层数据流图。

【问题1】(4分)使用说明中的词语,填写图1-1的实体E1~E4名称。

【问题2】(4分)使用说明中的词语,填写图1-2的数据存储D1~D4名称。

【问题3】(4分)依据说明和图中术语,补充图1-2缺失的数据流,并写出各自的起点、终点。

【问题4】(3分)“数据处理”可分解成哪些子加工?进一步分解时要注意哪三种常见错误?

答案与解析

平台参考答案(原文保留)

【问题1】
E1:传感器;E2:农业专家;E3:农业人员;E4:控制器
【问题2】
D1:监控处理规则文件 D2:监测信息文件 D3:分析结果文件 D4:预测信息文件
【问题3】
起点D1,终点P4,监控规则
起点D2,终点P3,历史监测信息
起点P3,终点P5,分析结果
起点P3,终点P5,预测信息
【问题4】

监测分析、综合统计分析/预测。

有输入但是没有输出、输入不足以产生输出、有输出但没有输入(或黑洞、灰洞、奇迹)。

解析与纠错

先按数据的来源与去向识别外部实体:上传监测数据的是E1传感器,维护规则并接收分析、预测结果的是E2农业专家,提交控制信息并接收监测信息的是E3农业人员,接收控制指令的是E4控制器。各存储依其写入内容确定:D1监控处理规则文件,D2监测信息文件,D3分析结果文件,D4预测信息文件。

需补的四条数据流为:D1→P4传送监控规则;D2→P3传送历史监测信息;P3→P5分别传送分析结果和预测信息。判断控制动作需要规则,历史分析需要读回历史数据,实时展示分析及预测结果需要从P3取得这两类结果。

P3可分为实时监测分析、历史数据综合统计与预测两类子加工,也可在下一层继续细分统计与预测。P5已承担可视化,不能把平台长解析中的“可视化和存储三个步骤”直接当成P3的正确分解。黑洞是有输入而无输出,奇迹是有输出而无输入,灰洞是输入不足以支持输出。

说明还提到按农业专家请求展示,但上下文图和0层图都未单独画出“展示请求”。上述四条按平台答案保留;若把按请求展示也建模完整,应同时在两层补充该输入,维持父子图的接口平衡,不能称现有图已完整表达全部文字需求。

2021年上半年 · 第 1 题:无人值守停车系统的数据流图

展开原题(先作答,再查看解析)

无人值守停车系统的数据流图

停车场运营方希望降低成本、减员增效并改善停车体验,拟开发无人值守停车系统。主要需求如下。

  1. 信息维护:管理人员设置车位总数、空余车位数、计费规则等基础信息。
  2. 会员注册:车主用手机号、车牌号等资料注册,提交充值信息,包括等级、绑定并授权支付系统用于充值或交费的支付账号。级别和充值额度不同,享受的停车折扣也不同。
  3. 车牌识别:车辆入场时,若有空位,条件写为“空余车位数大于1”,识别车牌后进行道闸控制;车辆离场时识别车牌,计费成功后请求道闸控制。
  4. 计费:更新车辆离场时间,按计费规则计算停车费。会员收到费用提示后,若储值余额足够则自动扣费并更新余额;不足则使用授权缴费账号请求支付系统支付,取得支付状态。非会员临时停车收到费用提示后,扫描费用信息中的支付码,调用支付系统自助交费,并取得支付状态。
  5. 道闸控制:按照请求向道闸控制系统发送放行指令,接收执行状态。正常放行时,入场车辆的车牌号与入场时间记入停车记录,并修改空余车位数;出场车辆更新停车状态,并修改空余车位数。说明将异常原因写为“道闸重置系统出现问题(断网断电或是故障为抬杠等情况)”:若在规定时间内未收到正常放行的执行状态,系统向管理人员发送异常告警,由管理人员安排排查、处理,以保障有序出入。

采用结构化方法进行分析与设计,得到图1-1上下文数据流图与图1-2的0层数据流图。

【问题1】(5分)使用说明中的词语,填写图1-1实体E1~E5的名称。

【问题2】(3分)使用说明中的词语,填写图1-2数据存储D1~D3的名称。

【问题3】(4分)使用说明中的词语,补出图1-2缺少的数据流及其起点、终点。

【问题4】(3分)依据说明,用结构化语言描述“道闸控制”的加工逻辑。

答案与解析

平台参考答案(原文保留)

【问题1】

E1:车辆 E2:车主 E3:支付系统 E4:管理人员 E5:道闸控制系统

【问题2】

D1:停车记录表 D2:会员信息表 D3:基础信息表

【问题3】

【问题4】

“道闸控制”加工过程
IF(道闸执行状态正常)
IF(车辆入场)THEN
将车牌号及其入场时间信息存入停车记录,修改空余车位数
ELESIF(车辆出场)THEN
更新停车状态,修改空余车位数
ENDIF
ELSEIF(未在规定的时间内接收到其返回的执行状态正常放行)THEN
向管理人员发送异常告警信息
ENDIF

解析与纠错

根据数据流向,E1车辆提供车牌号,E2车主提供会员及充值信息并接收费用,E3支付系统处理支付请求并返回状态,E4管理人员维护基础信息并接收告警,E5道闸控制系统接收抬杆指令并返回执行状态。D1是停车记录表,D2是会员信息表,D3是基础信息表。

四条缺流为:D3→P3“计费规则信息”,P1→P5“道闸控制请求”,P5→D3“更新车位信息”,P3→D2“更新余额”。平台答案图中的“计费规则信息”与长解析一致。更新车位发生于确认正常放行后,不能仅凭发出请求就修改车位数。

结构化描述应先发送放行指令、接收执行状态,再按结果更新记录或告警。可整理为:

发送放行指令
在规定时间内等待道闸执行状态
IF 收到正常放行状态 THEN
    IF 车辆入场 THEN
        保存车牌号及入场时间
        空余车位数减1
    ELSEIF 车辆出场 THEN
        更新停车状态
        空余车位数加1
    ENDIF
ELSE
    向管理人员发送异常告警
ENDIF

以上为按需求整理的伪代码。平台答案的ELESIF是拼写问题,且省略了开头发送指令、等待状态的步骤;其分支意图可以成立,但不是完整过程。题干入场条件保留“大于1”,不能擅改成“大于0”;按该字面条件,仅剩1个空位时不会进入该放行分支。

原页已核实:“(空余车位数大于1)”“道闸重置系统”“故障为抬杠”均是原题写法,按原文保留,不将入场阈值或异常条件擅自改写。

2020年 · 第 1 题:智能缺陷检测系统的数据流图

展开原题(先作答,再查看解析)

智能缺陷检测系统的数据流图

某工业制造企业计划开发智能缺陷检测系统,提高检测效率并节约人力。功能要求如下。

  1. 基础信息管理:管理员设置检测质量标准、监控规则等基础信息。
  2. 检测模型部署:管理员部署以机器学习方法建立的检测模型。
  3. 图像采集:实时接收生产线检测设备拍摄的产品待检信息,进行存储和缺陷检测。待检信息包括产品编号、生产时间、图像序号、产品图像。
  4. 缺陷检测:依据检测模型和检测质量标准,检查收到的一个产品的所有图像。所有图像合格才把产品检测结果设为合格;任一图像不合格即判该产品不合格。不合格产品的检测结果包括产品编号、不合格类型。系统将检测结果发给检测设备,由检测设备剔除不合格产品。
  5. 质量监控:依据监控规则监测产品质量,向检测业务员展示检测情况;满足报警条件时发送质量报警。检测业务员发起远程控制命令,系统据此向检测设备发送控制指令。
  6. 模型监控:结合已部署模型、产品检测信息和基础信息进行监测分析,把模型运行情况发给监控人员。

采用结构化方法,得到图1-1上下文数据流图及图1-2的0层数据流图。

【问题1】(4分)使用说明中的词语,填写图1-1实体E1~E4的名称。

【问题2】(3分)使用说明中的词语,填写图1-2数据存储D1~D3的名称。

【问题3】(5分)按照说明和图中术语,补出图1-2缺少的数据流及起点、终点。

【问题4】(3分)用结构化语言描述“缺陷检测”的加工逻辑。

答案与解析

平台参考答案(原文保留)

【问题1】(4分) E1:检测设备;E2:管理员;E3:检测业务员;E4:监控人员

【问题2】(3分) D1:检测模型文件;D2:产品检测信息文件;D3:基础信息文件

【问题3】(5分)

待检信息 ,起点:P2,终点:P3

远程控制命令,起点:E3,终点:P5

监控规则,起点:D3,终点:P5

检测信息,起点:D2,终点:P5

基础信息,起点:D3,终点:P6

【问题4】(3分) 根据说明,采用结构化语言对缺陷检测的加工逻辑进行描述。

DO{ 检测所收到的所有图像; IF(出现一张图像检测不合格) THEN{ 设置检测结果信息为不合格; 不合格产品检测结果=产品编号+不合格类型; }ELSE{ 设置检测结果信息为合格 } ENDIF 给检测设备发送检测结果; 检测设备剔除掉不合格产品; } ENDDO

解析与纠错

按数据流识别参与者:提供待检信息并接收检测结果、控制指令的是E1检测设备;设置基础信息和部署模型的是E2管理员;接收质量报警、发起远程控制的是E3检测业务员;接收模型运行情况的是E4监控人员。D1保存检测模型,D2保存产品待检信息及检测结果,D3保存标准、规则等基础信息。

缺少的五条流为P2→P3“待检信息”、E3→P5“远程控制命令”、D3→P5“监控规则”、D2→P5“检测信息”、D3→P6“基础信息”。图中已有D1→P3模型信息、D3→P3质量标准,不应重复补入。顶层与0层的外部输入输出还应保持平衡。

判断单位是一个产品:只要它的一张图像不合格,产品结果就不能被后续合格图像改回合格。可用以下结构化描述:

1
2
3
4
5
6
7
8
对每个收到的产品待检信息
    将该产品结果暂设为合格
    按检测模型和检测质量标准检测该产品的所有图像
    若任一图像不合格
        将产品结果设为不合格
        在结果中记录产品编号和不合格类型
    向检测设备发送该产品检测结果
    由检测设备按结果剔除不合格产品

这是按需求归纳的产品级逻辑。平台DO/ENDDO未写迭代对象,理解时应按产品分组,不能在逐张图像的循环中随意覆盖最终判定。剔除产品属于外部检测设备的动作。

2019年下半年 · 第 1 题:二手车物流系统的数据流图

展开原题(先作答,再查看解析)

二手车物流系统的数据流图

某公司拟用二手车物流系统提高物流成交效率。业务要求如下。

  1. 订单管理:系统从车辆交易系统抓取交易信息作为线索。帮买顾问看到买车线索后,电话询问买家是否需要物流;需要时将线索发起为订单并存储,系统再寻找承运物流商。
  2. 路线管理:帮买顾问维护物流商路线,保存路线类型、物流商、起止地点。路线分固定路线、包车路线、竞拍体系;前两种采用合约制。包车路线的发车时间由公司自行管理,是订单的首选途径。
  3. 合约管理:帮买顾问按公司与物流商确定的合约设置内容,保存物流商信息、路线起止城市、价格、有效期等。
  4. 寻找物流商:根据订单类型(保卖车、全国购、普通二手车)、起止城市及服务模式(买家接、送到买家等)自动派发或竞拍。新订单若为保卖车、全国购,直接进入竞拍体系;其他订单符合固定路线或包车路线时自动分配给合约物流商,不符合时进入竞拍。竞拍体系将订单推给有相关路线的物流商,由其竞拍出价,最优报价者中标。最后向承运物流商发送物流消息,更新订单物流信息,并向车辆交易系统发送物流信息。
  5. 物流商注册:注册并开通物流商账号。

采用结构化方法分析设计,图1-1是上下文数据流图,图1-2是0层数据流图。

【问题1】(3分)使用说明中的词语,填写图1-1实体E1~E3的名称。

【问题2】(5分)使用说明中的词语,填写图1-2数据存储D1~D5的名称。

【问题3】(4分)依据说明及图中术语,补充图1-2缺少的数据流及其起点、终点。

【问题4】(3分)用结构化语言描述“P5:寻找物流商”的加工逻辑。

答案与解析

平台参考答案(原文保留)

【问题1】

E1:帮买顾问;E2:车辆交易系统;E3:物流商。

【问题2】

D1:线索信息表/线索信息存储;D2:订单信息表/订单信息存储;

D3:路线信息表/路线信息存储;D4:合约信息表/合约信息存储;

D5:物流商信息表。

【问题3】

【问题4】

解析与纠错

E1是发起订单并维护路线、合约的帮买顾问;E2提供交易信息并接收物流信息,因此是车辆交易系统;E3注册并参与运输,为物流商。平台长解析把E2写成“车辆交易信息”,混淆了外部系统与数据,本题参考答案中的实体名称正确。

D1~D5依次保存线索、订单、路线、合约、物流商信息。缺少的数据流为D2→P5“新订单信息”、D3→P5“路线信息”、D4→P5“合约信息”、P5→E2“物流信息”。图中P5→D2的订单物流更新已经存在。平台长解析将父图物流信息方向写成E2→系统,与原图及业务描述相反;正确方向是系统向车辆交易系统发送,对应子图P5→E2。

P5可按以下顺序描述,竞拍得到承运商后才执行通知和更新:

对每个新订单
    读取订单类型、起止城市和服务模式
    如果类型是保卖车或全国购
        进入竞拍
    否则
        读取匹配路线及有效合约
        如果存在匹配的包车路线
            优先分配给相应合约物流商
        否则如果存在匹配的固定路线
            分配给相应合约物流商
        否则
            进入竞拍
    需要竞拍时,将订单推送给有相关路线的物流商
    接收竞拍报价,以最优报价确定中标物流商
    向确定的承运物流商发送物流消息
    更新订单物流信息,并将物流信息发给车辆交易系统

包车优先属于题目已给条件,但保卖车、全国购仍按更明确的专门规则直接竞拍。平台两份伪代码图表达的主要分支一致;不要因它们把竞拍循环另列,就理解为尚未确定中标者时已可通知承运。

2019年上半年 · 第 1 题:学生跟踪系统的数据流图

展开原题(先作答,再查看解析)

学生跟踪系统的数据流图

某学校拟开发学生跟踪系统,自动管理、追踪到课情况和健康状态,让家长及时了解子女在校情况,健康异常时与医护机构对接。需求如下。

  1. 采集学生状态:通过学生卡传感器采集并记录心率、体温(摄氏度)、所在位置等信息。每张卡有唯一ID,并对应一个学生。
  2. 健康状态告警:学生健康状态出现问题时,系统向班主任、家长、医护机构健康服务系统发出警告;由健康服务系统通知相关医生处理。
  3. 到课检查:综合学生状态、课表、校园场所信息判断是否到课,向旷课学生的家长及班主任发送旷课警告。
  4. 汇总在校情况:定期汇总并向家长、班主任发送报告。
  5. 家长注册:家长注册时指定自己的子女,信息存储后等待审核。
  6. 基础信息管理:学校管理人员维护学生、所用学生卡、班主任、课表及校园场所;课表含班级、班主任、时间、位置等,校园场所含名称、所在位置区域。管理人员审核家长注册申请,更新家长状态,将家长ID加入学生信息,使家长与子女关联,并向家长发送注册结果。每名学生至少有一个家长,也可以有多个家长。

用结构化方法得到图1-1上下文数据流图和图1-2的0层数据流图。

【问题1】(5分)使用说明中的词语,填写图1-1实体E1~E5的名称。

【问题2】(4分)使用说明中的词语,填写图1-2数据存储D1~D4的名称。

【问题3】(3分)按说明及图中术语补充图1-2缺少的数据流、起点和终点,写出三条即可。

【问题4】(3分)按说明中的术语,写出图1-1数据流“学生状态”“学生信息”的组成。

答案与解析

平台参考答案(原文保留)

【问题1】(5分)
E1:学生
E2:学校管理人员
E3:班主任
E4:家长
E5:医护机构健康服务系统
【问题2】(4分)
D1:学生状态记录表
D2:学生信息表
D3:校园场所记录表
D4:课表信息记录
【问题3】(3分)

(注:数据流没有顺序要求,按题目要求写出其中3条)

【问题4】(3分)
学生状态=学生卡ID+心率+体温+位置+时间
学生信息=学生ID+学生卡ID+1{家长ID}*+班主任ID+班级

解析与纠错

E1为学生,卡传感器提供其状态;E2为学校管理人员;接收在校报告、告警的E3是班主任,能注册并接收子女报告的E4是家长,E5为医护机构健康服务系统。不要把E5直接写成医生:通知医生由外部健康服务系统完成。

D1~D4分别为学生状态记录表、学生信息表、校园场所记录表、课表信息记录。图中D5已标为家长,本题不要求再填它。

缺失流任选三条时,可写D4→P3“课表信息”、D3→P3“场所信息”、P6→D2“家长ID”。前两条给到课检查提供时间地点对照,后一条反映审核通过后的学生—家长关联。平台答案图还列出家长联系信息及注册申请等其他可补流,要求是补足加工所需输入,不是把所有表都任意连到每个加工。原图已有的学生状态和学生信息流不应重复补入。

学生状态按参考答案由学生卡ID、心率、体温、位置、时间组成,时间用于和课表对齐。学生信息为学生ID、学生卡ID、至少一个家长ID、班主任ID、班级;1{家长ID}*表示一到多个家长ID,不是恰好一个。摄氏度是体温单位,不能与华氏度混用。

2018年下半年 · 第 1 题:房屋中介系统的数据流图

展开原题(先作答,再查看解析)

房屋中介系统的数据流图

某房产中介连锁企业拟开发Web房屋中介信息系统,管理房源与客户并提高成交率。需求如下。

  1. 房源采集与管理:系统自动采集外部网站的潜在房源并保存;经纪人联系确认后转为房源,同时添加出售或出租房源的客户。经纪人或客户直接登记的出售、出租房源也保存为房源。房源记录基本情况、配套设施、交易类型、委托方式、业主等,经纪人可以更新管理。
  2. 客户管理:求租、求购客户可自行注册更新,系统将客户需求推送给经纪人;经纪人也可登记更新客户。客户记录身份证号、姓名、手机号、需求情况、委托方式等。
  3. 房源推荐:依据客户的求购、求租需求以及出售、出租房源信息,向已登录客户推荐房源。
  4. 交易管理:经纪人管理租售双方交易,包括提交、取消订单及设置中介费比例。财务人员收取中介费后订单完成,系统更新订单状态与房源状态,并向客户及经纪人发送交易反馈。
  5. 信息查询:客户按自身需求查询房屋供需信息。

采用结构化方法,得到图1-1上下文数据流图与图1-2的0层数据流图。

【问题1】(4分)用说明中的词语填写图1-1实体E1~E4的名称。

【问题2】(4分)用说明中的词语填写图1-2数据存储D1~D4的名称。

【问题3】(3分)按说明及图中术语补充图1-2缺失的数据流及其起点、终点。

【问题4】(4分)按说明中的术语写出图1-1“客户信息”“房源信息”数据流的组成。

答案与解析

平台参考答案(原文保留)

【问题1】

E1:客户;E2:经纪人;E3:财务人员;E4:外部网站

【问题2】

D1:客户记录;D2:潜在房源记录;D3:房源记录;D4:订单记录

【问题3】

缺失数据流如下:

本题1条1分,3条满分。

缺失数据流如下:

1、交易反馈:起点-4交易管理,终点-E2

2、客户需求:起点-D1,终点-3房源推荐

3、房源状态:起点-4交易管理,终点-D3

4、检索潜在房源信息:起点-D2,终点-1房源采集与管理

5、更新客户信息:起点-2客户管理,终点-D1客户记录

【问题4】
客户信息=身份证号+姓名+手机号+需求情况+委托方式。
房源信息=基本情况+配套设施+交易类型+委托方式+业主等。

解析与纠错

E1查询并接收推荐,为客户;E2确认房源、管理交易,为经纪人;E3提交收费信息,为财务人员;E4提供待确认信息,为外部网站。D1~D4分别保存客户、潜在房源、房源、订单记录。未经确认的潜在房源不能直接与正式房源混用。

平台列出的缺流包括P4→E2“交易反馈”、D1→P3“客户需求”、P4→D3“房源状态”、D2→P1“检索潜在房源信息”、P2→D1“更新客户信息”。前三条分别由上下文图的反馈、按需求推荐、成交后更新房源状态得到;原0层图已有P4→D4订单更新及P4→E1反馈,不应重复补入。原答案注明写三条可得满分,五条候选均保留。

数据字典直接取需求字段:客户信息由身份证号、姓名、手机号、需求情况、委托方式组成;房源信息由基本情况、配套设施、交易类型、委托方式、业主等组成。不要将收费信息、订单状态等其他数据流混入客户信息。

2018年上半年 · 第 1 题:医疗管理系统的数据流图

展开原题(先作答,再查看解析)

医疗管理系统的数据流图

某医疗护理机构为老年人或有护理需求者提供专业护理,拟开发基于Web的医疗管理系统,提高护理效率。系统需求如下。

  1. 通用信息查询:客户提交查询请求,系统查询通用信息表并返回结果。
  2. 医生聘用:医生提出应聘或辞职申请,主管审批聘用或解聘;系统更新医生表,向医生反馈结果,并删除被解聘医生的出诊安排。
  3. 预约处理:医生安排出诊时间并存入医生出诊时间表。客户查询预约时,系统查询在职医生及其出诊时间等所需数据并返回。客户创建预约、提交请求后,系统新增预约记录,更新所约医生的出诊时间,向医生发送预约通知,并向客户反馈预约结果。
  4. 药品管理:医生提交处方,系统按药品名称查询库存,开出药品,更新对应库存及预约表中的治疗信息,并向医生反馈“药品已开出”。
  5. 报表创建:主管提交含报表类型和时间段的查询请求;系统从预约、通用信息、药品库存、医生及出诊时间数据中查询并生成报表,返回主管。

采用结构化方法得到图1-1上下文数据流图与图1-2的0层数据流图。

【问题1】(3分)用说明中的词语填写图1-1实体E1~E3。

【问题2】(5分)用说明中的词语填写图1-2数据存储D1~D5。

【问题3】(4分)使用说明和图中术语,补充图1-2缺失的数据流及起点、终点。

【问题4】(3分)用说明中的词语写出“预约处理”可分解的子加工,并说明图1-1与图1-2如何保持数据流图平衡。

答案与解析

平台参考答案(原文保留)

【问题1】

E1:客户 E2: 医生 E3:主管

【问题2】

D1:通用信息表

D2:预约表

D3:医生表

D4:出诊时间表

D5:药品库存表

【问题3】

数据流:更新的出诊时间 起点:P3 终点:D4

数据流:删除的医生出诊安排 起点:P2 终点:D4

数据流:药品库存信息 起点:D5 终点:P4

数据流:治疗信息 起点:P4 终点:D2 【问题4】 预约处理分解为: 安排出诊、预约查询、创建预约、预约反馈 。 即保持父图与子图之间的平衡:父图中某个加工的输入输出数据流必须与其子图的输入输出数据流在数量上和名字上相同。父图的一个输入(或输出)数据流对应于子图中几个输入(或输出)数据流,而子图中组成的这些数据流的数据项全体正好是父图中的这一个数据流。

解析与纠错

查询和预约的一方是客户,提出应聘/辞职及处方的是医生,审批和索取报表的是主管,故E1~E3依次为客户、医生、主管。D1保存通用信息,D2保存预约,D3保存医生,D4保存出诊时间,D5保存药品库存。

四条缺失流分别对应明确的读写需求:P3→D4更新出诊时间;P2→D4删除被解聘医生的出诊安排;D5→P4提供药品库存信息;P4→D2写入治疗信息。原图已有P3→D4的“新增出诊时间”,它对应安排出诊,不等于预约后更新可用时间。

预约处理可分为安排出诊、预约查询、创建预约、预约反馈。父子图平衡要求边界输入输出的数据内容和方向一致;复合流可以在子图拆成若干流,只要数据项合起来相同。因此平台“数量上和名字上相同”应理解为不拆分时的对应方式,不能同时要求任何分解后箭头条数都相等。

图1-1中“预约请求/预约查询请求”的斜向箭头指向E1,与需求和图1-2的客户→预约处理方向相反;原图保留,学习时应按客户发起请求理解。

2017年下半年 · 第 1 题:共享单车系统的数据流图

展开原题(先作答,再查看解析)

共享单车系统的数据流图

某公司拟开发共享单车系统,采用北斗定位,提供用户APP、微信小程序及基于Web的管理监控系统。功能如下。

  1. 注册登录:用户在APP中输入手机号、获取验证码后注册,系统保存用户信息;登录后显示用户当前位置周围的单车。
  2. 使用单车:扫描二维码或手动输入编码获取开锁密码,系统发送开锁指令,修改单车状态并新建行程;骑行中单车定时上传位置,系统更新行程。用户停止使用或手动锁车、结束行程后,系统按已设置的计费规则及使用时间结算,更新并展示费用;用户确认支付后,记录行程支付状态,同时重置开锁密码和单车状态。
  3. 辅助管理:用户查看行程列表及详情;报修时上报自身或单车位置及故障信息,系统记录。
  4. 管理监控:商家管理单车基础信息及状态,设置并保存计费规则;查询统计单车、故障、行程,管理用户信用及状态并查询统计用户。

采用结构化方法得到图1-1上下文数据流图与图1-2的0层数据流图。

【问题1】(3分)用说明中的词语填写图1-1实体E1~E3。

【问题2】(5分)用说明中的词语填写图1-2数据存储D1~D5。

【问题3】(5分)使用说明和图中术语及符号,补充图1-2缺失的数据流及其起点、终点。

【问题4】(2分)用说明中的术语写出“使用单车”可分解的子加工。

答案与解析

平台参考答案(原文保留)

【问题1】

E1:用户

E2:商家

E3:单车

【问题2】

D1:用户信息存储

D2:单车信息表

D3:单车行程信息表

D4:计费规则存储

D5:单车故障信息记录

【问题3】

1.起点:p3 终点 :E1 数据流名称:开锁密码

2.起点:p3终点:E1 数据流名称:费用

3.起点:p3 终点:E3 数据流名称:开锁指令

4.起点:D3 终点:p7 数据流名称:行程

5.起点:p3 终点:D2 数据流名称:单车状态
或(起点:P3 终点:D3 数据流名称:支付状态)
(起点:D4,终点:P3,计费规则)

【问题4】

扫码/手动开锁,更新行程,锁车结账
(或扫码/手动开锁,更新行程,锁车,计算费用,重置开锁密码,用户确认支付)

解析与纠错

E1发个人信息、位置及支付确认,为用户;E2设置计费规则并管理信息,为商家;E3上传位置和锁状态、接收开锁指令,为单车。D1~D5分别保存用户、单车、行程、计费规则、故障信息。

按父子图平衡补P3→E1的开锁密码与费用、P3→E3的开锁指令;按查询需求补D3→P7的行程。使用和锁车后还要将单车状态写回D2。平台另列P3→D3支付状态和D4→P3计费规则,均有需求依据;保留原答案全部候选,不能把后两条“或”读成业务上无需这两条流。

图中已有D2→P3开锁密码及P3→E3开锁密码;前者是读取密码,后者可用于重置设备密码,都不能代替向用户返回密码或向单车发开锁指令。子加工可分扫码/手动开锁、更新行程、锁车结账;也可把结账进一步分成锁车、计费、重置密码及处理支付确认。平台分析把依据称为“第4点”,实际使用单车功能在说明第2点。

2017年上半年 · 第 1 题:部件采购系统的数据流图

展开原题(先作答,再查看解析)

部件采购系统的数据流图

一家复杂医疗产品集成商拟建设采购系统,保证高质量部件及时供应。功能如下。

  1. 采购部门每天检查库存;某部件降至订货点时,系统返回该低存量部件及库存量。
  2. 采购部门据此提交采购请求;系统从供应商文件读取供应商数据,向供应商下达采购订单,并保存到采购订单文件。
  3. 供应商提交提单、交运部件后,运输和接收(S/R)部门按三步处理:
  4. 验证装运部件:读取采购订单,与提单比较,并把提单信息发送给S/R职员。收货项目同时列在采购订单和提单中时,将已验证的提单和收货部件项目送检;否则,依据S/R职员提交的装运错误信息,生成装运错误通知发送给供应商。
  5. 检验部件质量:读取质量标准,并把已验证的提单发送给检验员。全部标准都满足的部件进入接受的部件列表,用于更新库存;未通过检查时,将检验员创建的缺陷装运信息生成缺陷装运通知,发送给供应商。
  6. 更新库存:库管员根据接受的部件列表添加本次采购数量,与原有库存量累加后更新库存,并标记订单采购完成。

采用结构化方法得到图1-1上下文数据流图和图1-2的0层数据流图。

【问题1】(5分)用说明中的词语填写图1-1实体E1~E5。

【问题2】(4分)用说明中的词语填写图1-2数据存储D1~D4。

【问题3】(4分)用说明及图中术语补充图1-2缺失的数据流,并写出起点和终点。

【问题4】(2分)用200字以内说明图1-1与图1-2如何保持数据流图平衡。

答案与解析

平台参考答案(原文保留)

【问题1】

E1 供应商

E2 采购部门

E3检验员

E4 库管员

E5 S/R职员

【问题2】

D1 库存表

D2 采购订单表

D3 质量标准表

D4 供应商表

【问题3】

装运错误通知:P3(验证装运部件)-----E1(供应商)

缺陷装运通知:P4(校验部件质量)-----E1(供应商)

已验证的提单和收货部件项目:P3(验证装运部件)------ P4(校验部件质量)

原有库存量:D1(库存表)-----P5(更新部件库存)

【问题4】

父图中某个加工的输入输出数据流必须与其子图的输入输出数据流在数量上和名字上相同。父图的一个输入(或输出)数据流对应于子图中几个输入(或输出)数据流,而子图中组成的这些数据流的数据项全体正好是父图中的这一个数据流。

解析与纠错

根据输入、输出认实体:E1提交提单、接收订单及通知,为供应商;E2提交检查和采购请求,为采购部门;E3提供质量缺陷信息,为检验员;E4提供本次采购数量,为库管员;E5提供装运错误信息,为S/R职员。D1~D4分别存库存、订单、质量标准、供应商信息。

P3应向E1发装运错误通知,P4应向E1发缺陷装运通知,二者共同细化父图的“通知”。P3还应将已验证的提单及收货部件项目送P4;P5做库存累加,需要从D1读取原有库存量,不能只有写回流。

问题4可答:子图所有越过系统边界的数据流,应与父图采购系统的输入输出在方向、外部实体和数据含义上对应;父图的复合流可以在子图拆成若干流,合起来须覆盖相同数据项。例如父图“通知”对应子图两类错误通知。内部加工、存储之间的流不计入外部边界平衡。

平台先称数量、名字必须相同,后又允许一条流分解为多条,前句不能孤立套用为箭头数量必须相等;关键是分解前后边界数据语义一致。

2016年下半年 · 第 1 题:证券交易平台的数据流图

展开原题(先作答,再查看解析)

证券交易平台的数据流图

证券交易所拟建设证券交易平台,提供以下服务。

  1. 开户:根据客户服务助理提交的开户信息办理,将客户信息存入客户记录,余额等账户信息存入账户记录。
  2. 存款:客户向本人账户存款,按存款金额修改余额。
  3. 取款:客户从本人账户取款,按取款金额修改余额。
  4. 证券交易:客户通过在线方式、经纪人通过电话方式交易,将交易信息存入交易记录。
  5. 检查交易:读取交易记录,将交易明细返回客户。

采用结构化方法得到图1-1上下文数据流图和图1-2的0层数据流图。

【问题1】(3分)用说明中的词语填写图1-1实体E1~E3。

【问题2】(3分)用说明中的词语填写图1-2数据存储D1~D3。

【问题3】(4分)用说明及图中术语补充图1-2缺失的数据流,并写出起点、终点。

【问题4】(5分)实际交易通常由证券交易中心完成,平台的“证券交易”需将交易信息传给该中心。用200字以内说明图1-1、图1-2应如何修改。

答案与解析

平台参考答案(原文保留)

【问题1】

E1:客户服务助理,E2:客户,E3:经纪人。

【问题2】

D1:客户记录,D2:账户记录,D3:交易记录。

【问题3】

【问题4】

图1增加外部实体“证券交易中心”,增加“证券交易平台”到“证券交易中心”,数据流:交易信息。

图2增加外部实体“证券交易中心”,增加“证券交易(在线)”到“证券交易中心”,数据流:交易信息。

图2增加“证券交易(电话)”到“证券交易中心”,数据流:交易信息 。

解析与纠错

开户信息来自E1,因此E1是客户服务助理;E2在线交易并存取款、查看明细,为客户;E3电话交易,为经纪人。D1存客户信息,D2存账户信息,D3存交易信息。

按平台答案补四条写入流:存款→D2、取款→D2的修改账户余额;证券交易(在线)→D3、证券交易(电话)→D3的交易记录。图中已有D3→检查交易的读取流,不能把它误作两种交易的记录写入。完整描述余额更新时还需考虑从D2读取当前余额;平台图列出的四条补流并未表达这一步,不能据此认为只给金额就能得到更新后的账户余额。

问题4可答:两图都新增外部实体“证券交易中心”。上下文图增加平台→中心的“交易信息”;0层图分别增加在线交易加工、电话交易加工→中心的“交易信息”,使子图两条流共同对应父图输出。保留原有交易记录及其数据流,不把交易中心当作平台内部存储。

2016年上半年 · 第 1 题:会议预订系统的数据流图

展开原题(先作答,再查看解析)

会议预订系统的数据流图

某会议中心出租一个大型报告厅、一个小型报告厅和多间会议室,可提供投影仪、白板、视频播放/回放设备、计算机等。为公司及各类组织机构租用场地、设备,拟开发会议预订系统,功能如下。

  1. 检查可用性:客户提交预订请求,系统查预订表,判断所选场地在申请日期内是否可用;不可用则返回不可用信息。
  2. 临时预订:管理员收到客户预订请求通知后确认,系统生成并保存新临时预订;对新客户另存客户信息记录。根据客户记录发送临时预订确认信息及支付定金要求。
  3. 分配设施与设备:依临时预订或变更预订中的需求分配场地设施、设备,设备均能满足用户要求;更新相应表及预订表。
  4. 确认预订:管理员收到支付定金通知后检查确认,系统更新预订表,并依客户记录发送预订确认信息。
  5. 变更预订:客户可在支付余款前申请变更。系统检查可用性,可用则重新分配设施、设备,不可用则返回不可用信息;管理员确认变更后,依客户记录发送确认信息。
  6. 要求付款:管理员查询距预订会议时间两周内的预订,依客户记录向符合条件的客户发送支付余款要求。
  7. 支付余款:管理员收到余款支付通知后检查确认,系统在预订表更新已支付余款信息。

结构化分析所得上下文图与不完整0层数据流图分别为图1-1、图1-2。

【问题1】(2分)使用说明中的词语,填写图1-1实体E1~E2的名称。

【问题2】(4分)使用说明中的词语,填写图1-2数据存储D1~D4的名称。

【问题3】(6分)依据说明及图中术语,补充图1-2缺失的数据流,写明起点和终点。

【问题4】(3分)若确认信息经Email系统发送至客户信息中的电子邮件地址,图1-1和图1-2各需如何修改?用150字以内说明。

答案与解析

平台参考答案(原文保留)

【问题1】

E1:客户

E2:管理员

【问题2】

D1:预定表

D2:客户信息记录表

D3:设施表 (场地表或场地设施表)

D4:设备表 注:D3、D4可互换

【问题3】

【问题4】

图1-1中:增加外部实体“第三方Email系统”,将临时预订/预订/变更确认信息终点均修改至“第三方Email系统”。 图1-2中:增加外部实体“第三方Email系统”,增加加工“发送邮件”,将临时预订/预订/变更确认信息终点均修改至“发送邮件”加工,并增加从D2到“发送邮件”加工的数据流“电子邮件地址”,再从发送邮件加工引出数据流 临时预订/预订/变更确认信息 终点为 第三方Email系统。

解析与纠错

E1发起预订并支付,故为客户;E2接收通知、提交确认并查询,为管理员。D1被可用性检查读取并记录预订变动,是预订表;D2保存客户记录;D3、D4都由分配加工访问,分别为设施表和设备表,可对调。

问题3需补六条流:客户→支付余款的“已支付余款凭据”;确认预订→客户的“预订确认信息”;D2→确认预订、变更预订、要求付款三条“客户记录”;D1→要求付款的“距预订会议时间两周内的预订”。前两条补齐父子图对外信息,后三条客户记录提供发送所需资料,最后一条提供筛选后的预订。不能只画查询请求而不画读取结果。

问题4可在150字内答:两图均增外部实体“第三方Email系统”。上下文图将三类确认信息改发该实体;0层图增“发送邮件”,接收临时预订、确认预订、变更预订的确认信息及D2提供的电子邮件地址,再发给Email系统,保持父子图平衡。

这里只改变题目指定的确认信息发送方式,未据此把所有付款凭据、不可用信息等数据流都改成邮件。解析示意图用于展示发邮件的改动,问题3要求补足的原有数据流仍应保留。

补充说明

平台解析给出的发送邮件改动示意图:

2015年上半年 · 第 1 题:考试系统的数据流图

展开原题(先作答,再查看解析)

考试系统的数据流图

某大学拟建设无纸化考试系统。系统管理员可创建专业方向、课程编号、任课教师等考试基础信息,教师和学生通过系统完成考试工作。主要功能如下:

  1. 考试设置:教师制定包含题目和答案的试题,设定考试说明、考试时间、提醒时间,录入参加考试的学生信息,并分别存储。
  2. 显示并接收解答:按考试信息在有效时间内向学生显示说明和题目,按提醒时间发出提醒,接收学生解答。
  3. 处理解答:依据答案处理收到的解答数据,存储解答结果。
  4. 生成成绩报告:依据解答结果生成学生个人成绩报告,供学生查看。
  5. 生成成绩单:核算解答结果,生成供教师查看的课程成绩单。
  6. 发送通知:依据成绩报告数据创建通知并发给学生;依据成绩单数据创建通知并发给教师。

采用结构化方法,得到图1-1上下文数据流图和图1-2的0层数据流图。

【问题1】(2分)用说明中的词语给出图1-1中E1~E2的实体名称。

【问题2】(4分)用说明中的词语给出图1-2中D1~D4的数据存储名称。

【问题3】(4分)依据说明和图中词语,补充图1-2缺少的数据流及起点、终点。

【问题4】(5分)图1-2的加工(6)包含创建通知及发送给学生或教师。将该加工分解,给出分解后的加工和数据流;数据流的起点、终点须用加工名称表示。

答案与解析

平台参考答案(原文保留)

【问题1】

E1:教师 E2:学生

【问题2】

D1:试题 D2:学生信息 D3:考试信息 D4:解答结果

【问题3】

数据流名称:题目,起点:D1,终点:2 或显示并接收解答。
数据流名称:答案,起点:D1,终点:3 或处理解答。

【问题4】

分解为:创建通知;发送通知

解析与纠错

先按图中输入输出识别角色:E1提供试题、考试安排与学生信息,并收到课程成绩单,因此是教师;E2提交解答、查看个人成绩并接收提醒,因此是学生。

再按写入内容确定存储:D1为试题,包含题目和答案;D2为学生信息;D3为考试信息;D4为解答结果。

问题3检查加工所需的数据来源:

数据流 起点 终点
题目 D1(试题) 显示并接收解答
答案 D1(试题) 处理解答

问题4可把原加工分为“创建通知”和“发送通知”。生成成绩报告→创建通知传递报告数据;生成成绩单→创建通知传递成绩单数据;创建通知→发送通知传递通知数据。分解后仍须保留发送通知→学生、发送通知→教师的通知输出,保持父子图边界一致。

补充说明

订正与边界:原解析把图中“提醒”写成“题型”,并出现“22显示并接收解答”的编号笔误,均应按图中的加工2理解;报告数据来自生成成绩报告,成绩单数据来自生成成绩单,不能颠倒。说明中的管理员维护基础信息不在两张图展示的考试业务范围内,不能直接拿管理员替换E1或E2;若扩展建模范围,须同步更新上下文和子图。

课件来源

整理自希赛网《【2026版本】软件设计师考试精讲班视频教程讲义电子版》,ebookId:10794。以下链接保留来源定位;所有教学图片均使用本地相对路径,图片原始 URL 与 SHA-256 见 图片来源清单。

评论