为了帮助读者进行考前训练,本节给出9道典型的试题以及这些试题的分析与解答。请读者独立完成这些练习题,然后再去阅读试题分析与解答。根据自己所做试题的情况,查漏补缺。
阅读下列说明和数据流图,回答问题1~问题4,将解答填入答题纸的对应栏内。
【说明】
某基于微处理器的住宅系统,使用传感器 (如红外探头、摄像头等)来检测各种意外情况,如非法进入、火警、水灾等。
房主可以在安装该系统时配置安全监控设备(如传感器、显示器、报警器等),也可以在系统运行时修改配置,通过录像机和电视机监控与系统连接的所有传感器,并通过控制面板上的键盘与系统进行信息交互。在安装过程中,系统给每个传感器赋予一个编号 (即id)和类型,并设置房主密码以启动和关闭系统,设置传感器事件发生时应自动拨出的电话号码。当系统检测到一个传感器事件时,就激活警报,拨出预置的电话号码,并报告关于位置和检测到的事件的性质等信息。
【问题1】
如图1-25所示的住宅安全系统顶层数据流图中的A和B分别是什么?
图1-25 住宅安全系统顶层数据流图
【问题2】
如图1-26所示的住宅安全系统第0层数据流图中的数据存储“配置信息”会影响图中的哪些加工?
图1-26 住宅安全系统第0层数据流图
【问题3】
将图1-27(加工4的细化图)中的数据流补充完整,并指明加工名称、数据流的方向(输入/输出)和数据流名称。
图1-27 住宅安全系统第1层数据流图
【问题4】
请说明逻辑数据流图(Logical Data Flow Diagram)和物理数据流图(Physical Data Flow Diagram)之间的主要区别。
阅读下列说明和流程图,如图1-28~图1-31所示,回答问题1~问题3,把解答填入答题纸的对应栏内。
图1-28 顶层数据流图
图1-29 第0层数据流图
图1-30 加工1子图
图1-31 加工2子图
【说明】
某考务处理系统具有以下功能:
●输入报名单。
●输出成绩通知单。
●自动编制准考证号。
●输出成绩分布表。
●输出准考证。
●输入合格标准、输出录取通知单。
●输入成绩清单。
●试题难度分析,并输出试题难度分析表。
这里给出了实现上述要求的部分不完整的数据流图,其中部分数据流的组成如下所示:
●报名单=报名号+姓名+通信地址
●考生名册=报名号+准考证号+姓名+通信地址
●成绩册=准考证号+{课程号+成绩}(其中{W}表示W重复多次)
●准考证=报名号+姓名+准考证号
【问题1】
指出0层图中可以删去的部分。
【问题2】
在加工1子图中将遗漏的数据流添加在答题纸上。
【问题3】
加工2子图分解成如图1-31所示的4个子加工及相关的文件(即数据存储)。试在此基础上将相关的DFD成分添加在答题纸上,以将该加工子图绘制完整。
阅读以下说明和流程图(如图1-32~图1-35所示),回答问题1和问题2,将解答填入答卷的对应栏内。
【说明】
某供销系统接受顾客的订货单。当库存中某配件的数量小于订购量或库存量低于一定数量时,向供应商发出采货单;当某配件的库存量大于或等于订购量时,或者收到供应商的送货单并更新了库存后,向顾客发出提货单。另外,该系统还可随时向总经理提供销售和库存情况表。该供销系统的分层数据流图中部分数据流和文件的组成如下:
文件:
配件库存=配件号+配件名+规格+数量+允许的最低库存量
数据流:
订货单=配件号+配件名+规格+数量+顾客名+地址
提货单=订货单+金额
采货单=配件号+配件名+规格+数量+供应商名+地址
送货单=配件号+配件名+规格+数量+金额
假定顶层图是正确的,“供应商”文件已由其他系统生成。
【问题1】
指出哪张图中的哪些文件可不必画出。
【问题2】
指出哪些图中遗漏了哪些数据流。回答时用如下形式之一:
(1)XX图中遗漏了XX加工(或文件)流向XX加工 (或文件)的XX数据流。
(2)XX图中XX加工遗漏了XX输入(或输出)数据流。
图1-32 顶层数据流图
图1-33 第0层数据流图
图1-34 加工1子图
图1-35 加工2子图
阅读以下说明和流程图(如图1-36~图1-39所示),回答问题1~问题3,将解答填入答卷的对应栏内。
图1-36 顶层数据流图
图1-37 第0层数据流图
图1-38 加工1子图
【说明】
下面给出的是某房产管理系统的一套分层数据流图。其功能描述如下:
(1)系统随时根据住户送来的入住单更新住户基本信息文件。
(2)每月初系统根据物业管理委员会提供的月附加费(如清洁费、保安费和大楼管理费等)表和房租调整表,计算每家住户的月租费(包括月附加费),向住户发出交费通知单。住户交费时,系统输入交费凭证,核对后输出收据给住户。
(3)系统定期向物业管理委员会提供住房分配表和交费情况表。
(4)住户因分户或换房,在更新住户基本信息文件的同时,系统应立即对这些住户做月租费计算,以了结分户或换房前的房租。
假定题中提供的顶层图是正确的,请回答下列问题。
【问题1】
指出哪张图中的哪些文件可不必画出。
【问题2】
指出在哪些图中遗漏了哪些数据流。回答时请用如下形式之一:
(1)XX图中遗漏了XX加工(或文件)流向XX加工(或文件)的XX数据流。
(2)XX加工XX遗漏了输入(或输出)数据流XX。
【问题3】
指出图1-39中加工2.3能检查出哪些不合格的交费凭证。
图1-39 加工2子图
阅读以下说明和流程图(如图1-40~图1-43所示),回答问题1~问题4,将解答填入答卷的对应栏内。
图1-40 顶层数据流图
图1-41 第0层数据流图
图1-42 加工1子图
【说明】
该系统具有如下功能:
(1)对考生送来的报名单进行检查。
(2)对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站。
(3)对阅卷站送来的成绩清单进行检查,并根据考试中心制订的合格标准审定合格者。
(4)制作考生通知单送给考生。
(5)进行成绩分类统计(按地区、年龄、文化程度、职业和考试级别等分类)和试题难度分析,产生统计分析表。
部分数据流的组成如下所示:
报名单=地区+序号+姓名+性别+年龄+文化程度+职业+考试级别+通信地址
正式报名单=报名单+准考证号
准考证=地区+序号+姓名+准考证号+考试级别
考生名单={准考证号十考试级别}(其中{W}表示W重复多次)
统计分析表=分类统计表+难度分析表
考生通知单=考试级别+准考证号+姓名+合格标志+通信地址
【问题1】
指出如图1-42所示的数据流图中(1)、(2)、(3)的数据流名。
【问题2】
指出第0层数据流图(见图1-41)中有什么成分可删去。
【问题3】
指出如图1-43所示的数据流图中在哪些位置遗漏了哪些数据流,也就是说,要求给出漏掉了哪个加工的输入或输出数据流的名字,例如加工2.5的输出数据流“难度分析表”。
【问题4】
指出考生名册文件的记录至少包括哪些内容。
阅读下列说明和数据流图,回答问题1~问题3。
【说明】
某医院收费系统的主要功能是收取病人门诊的各项费用。系统的收费功能分为3个方面:病历收费、挂号收费和根据处方单内容收取检查或药物费用。
(1)对于初次来该医院看病的病人,首先应记录该病人的基本情况,同时病人需要购买病历。
图1-43 加工2子图
(2)病人看病前要挂号。根据病人的病历和门诊部门(如内科、外科等),系统提供相应的挂号单和处方单,并收取费用。
(3)病人根据处方单做进一步检查或取药前需交纳各项费用。系统首先根据病人的基本情况检查处方单中病历号是否正确,记录合格的处方单并提供收据。
(4)所有收费都必须依据定价表中的定价来计算,且所有收费都必须写入收费记录中。
医院收费系统的顶层数据流图如图1-44所示;医院收费系统的第0层数据流图如图1-45所示。其中,医院收费系统的加工1子图如图1-46所示,医院收费系统的加工3子图如图1-47所示。假定顶层数据流图是正确的,“定价表”文件已由其他系统生成。
图1-44 医院收费系统的顶层数据流图
图1-45 医院收费系统的第0层数据流图
【问题1】
指出哪张图的哪些文件可以不必画出。
【问题2】
图1-46中缺少4条数据流,请直接在图中添加。
图1-46 医院收费系统的加工1子图
【问题3】
图1-47中缺少两条数据流,请直接在图中添加。
图1-47 医院收费系统的加工3子图
阅读以下说明和数据流图,回答问题1~问题3。
【说明】
某直达列车车票预告系统接受顾客的订票、取票和售票处工作人员的查询业务。
(1)顾客为了提前订票,可向系统提供个人信息及其期望订购的车次及日期,系统根据个人信息是否齐全以及车次是否正确来判断订票单是否合格。对于合格的订票单,系统如果相应的车次有剩余票,则记录顾客个人信息及订票信息,并向顾客提供取票单。
(2)到了可以取票的时间,顾客向系统提供取票单,在检查单据合格的情况下,系统向顾客提供火车票。
(3)售票处的工作人员可以利用系统查询各车次车票的售票情况。
该直达列车车票预售系统的分层数据流圈中部分数据流和文件的组成如下:
文件:
火车时刻表=车次+开车时间+到站时间+起始站+终点站+上铺票价+下铺票价
订票信息表=车次+车票日期+旅客身份证号+座位号+是否领票
旅客信息表=旅客身份证号+姓名+性别+联系电话
座位表=车次+座位号
数据流:
订票单=旅客姓名+性别+身份证号+联系电话+车次+车票日期
车票=车次+起始站+终点站+开车日期+开车时间+座位号+票价
假定顶层图是正确的,“火车时刻表”和“座位表”文件已由其他系统生成。
【问题1】
指出图1-48~图1-51中哪张图的哪个文件可以不必画出。
【问题2】
指出图1-50和图1-51中错误的数据流。
【问题3】
根据题中说明和数据流图分析,加工3“查询处理”是否可以查询出剩余票的信息?为什么?
图1-48 直达列车车票预售系统的顶层数据流图
图1-49 直达列车车票预售系统的第0层数据流图
图1-50 直达列车车票预售系统的加工1子图
图1-51 直达列车车票预售系统的加工2子图
阅读下列说明和有关的图,回答问题1~问题4,将解答填入答题纸的对应栏内。
【说明】
某制造企业的物料出入库管理的工作流程分别叙述如下。
1. 出库工作流程
(1)领料人提交领料单(每一种物料有一张领料单)。
(2)仓库保管员根据领料计划单检验该领料单是否有效。
(3)若经检验没有相应的领料计划,则通知领料人该领料单无效。
(4)若领料单有效,仓库保管员根据领料单上的物料代码核对是否有足够的库存。
(5)若没有足够的库存,仓库保管员向领料人发缺货单。
(6)若有足够的库存,仓库保管员在领料单上签字,并登记出库单,修改物料主文件中的现有库存数;相应的物料出库,物料清单交领料人。
2. 入库工作流程
(1)采购员提交入库申请单(每一种物料有一张入库申请单)。
(2)仓库保管员根据采购计划单验收入库申请单。
(3)若验收发现没有相应的采购计划,则仓库保管员向采购员发无效申请单。
(4)若验收合格,则仓库保管员向检验员申请物料检验;检验员根据检验结果填写物料检验单。
(5)如果物料或供货方不合格,则向采购员发出退货单。
(6)如果检验合格,则仓库保管员登记入库单,修改物料主文件中的现有库存数,相应的物料入库。
为便于及时了解库存情况、核查出入库情况,该企业决定将上述人工流程由计算机来实现。在设计该系统时,采用了两种方法:结构化方法和面向对象方法。
图1-52给出了物料出入库系统的数据流图,图中的数据流并没有画全,需要考生填补。图1-53给出了采用面向对象方法所认定出的类。
【问题1】
图1-52中缺少了哪些数据流?请指明每条数据流的名称、起点和终点。
【问题2】
给出“领料单”和“入库申请单”这两个类至少应具有的属性。
【问题3】
为建立功能完善的库存管理系统,除了查询、统计、报表输出功能外,还应具有哪些对提高企业效益至关重要的功能?
【问题4】
用面向对象方法设计的类中,有一些类的对象是需要持久存储的,这样的类一般需要映射到关系数据库模式中。请指出图1-53中哪些类需要做这样的映射。
图1-52 物料出入库系统的数据流图
图1-53 物料出入库系统中的类
阅读下列说明和图,回答问题1~问题4,将解答填入答题纸的对应栏内。
【说明】
某大型企业的数据中心为了集中管理、控制用户对数据的访问并支持大量的连接需求,欲构建数据管理中间件,其主要功能如下:
(1)数据管理员可通过中间件进行用户管理、操作管理和权限管理。用户管理维护用户信息,该信息(用户名、密码)存储在用户表中;操作管理维护数据实体的标准操作及其所属的后端数据库信息,标准操作和后端数据库信息存放在操作表中;权限管理维护权限表,该表存储用户可执行的操作信息。
(2)中间件验证前端应用提供的用户信息。若验证不通过,则返回非法用户信息;若验证通过,则中间件将等待前端应用提交操作请求。
(3)前端应用提交操作请求后,中间件先对请求进行格式检查。如果格式不正确,则返回格式错误信息;如果格式正确,则进行权限验证(验证用户是否有权执行请求的操作), 若用户无权执行该操作,则返回权限不足信息,否则进行连接管理。
(4)连接管理连接相应的后台数据库并提交操作。连接管理先检查是否存在空闲的数据库连接,如果不存在,则新建连接;如果存在,则重用连接。
(5)后端数据库执行操作并将结果传给中间件,中间件对收到的操作结果进行处理后,将其返回给前端应用。
现采用结构化方法对系统进行分析与设计,获得如图1-54所示的顶层数据流图和如图1-55所示的0层数据流图。
【问题1】
使用说明中的词语,给出图1-54中的实体E1~E3的名称。
图1-54 顶层数据流图
【问题2】
使用说明中的词语,给出图1-55中的数据存储D1~D3的名称。
【问题3】
给出图1-55中加工P的名称及其输入、输出流。
除加工P的输入与输出流外,图1-55中还缺失了两条数据流,请给出这两条数据流的起点和终点。
注:名称使用说明中的词汇,起点和终点均使用图1-55中的符号或词汇。
【问题4】
在绘制数据流图时需要注意加工的绘制。请给出3种在绘制加工的输入、输出时可能出现的错误。
图1-55 0层数据流图
试题1分析
本题是一道分层数据流图的题。解答此类问题最关键的一点就是要细心,把题目看清,不要丢掉任何一个条件。另外,解题时应有一定的技巧,从一些常规的入口作为突破口,会事半功倍。下面就利用分层数据流图的数据流的平衡原则(即父图和子图(加工图)的一致性)来解题。
子图是其父图中某一部分内部的细节图(加工图),它们的输入/输出数据流应保持一致。例如,你看到地上有只蚂蚁有6条细细的腿,中间是一个小黑点,你想看得更清楚一些就要使用放大镜看。这时,你能看到它的头、触角、身体和比较粗的腿,但是你看到的一定还是6条腿,而不是7条,也不是3条。子图也是如此,在上一级中有几个数据流,它的子图也一定有同样的数据流,而且它们的输送方向是一致的(也就是说,原图有3条进的数据流、两条出的数据流,子图同样也是)。
使用该平衡原则可以轻松地解决问题3。在0层图中,“4监控传感器”模块有1条输入数据流“传感器状态”和3条输出数据流“电话拨号”、“传感器数据”和“告警类型”。但在加工4的细化图中,我们只看到了输出数据流“告警类型”。所以很快我们就知道此加工图少了“传感器状态”、“电话拨号”、“传感器数据”这3条数据流。加工4的结构非常清晰,所以我们只需把这3条数据流对号入座即可:“电话拨号”应是“4.5拨号”的输出数据流;“传感器状态”应是作为“4.4读传感器”处理的输入数据流;“传感器数据”应是经“4.1显示格式”处理过的数据流,所以作为“4.1显示格式”的输出数据流。
【问题1】
此题和以往试题有所不同,以往都给定了完整正确的顶层图,现在顶层图不完整,我们可以通过题目说明信息及顶层图来分析顶层图并解答问题。题目中提到了“房主可以在安装该系统时配置安全监控设备 (如传感器、显示器、报警器等)”,在顶层图中这3个名词都没有出现。但仔细观察可以看出,“电视机”实际上就是“显示器”,因为它接收TV信号并输出。其他的几个实体都和“传感器”、“报警器”没有关联。又因为A中输出“传感器状态”到“住宅安全系统”,所以A应填“传感器”。B接收“告警类型”,所以应填“报警器”。
【问题2】
首先,毫无疑问“4监控传感器”用到了配置信息文件,这一点可以在加工4的细化图中看出。同时由于输出到“5显示信息和状态”的数据流是“检验ID信息”,所以“5显示信息和状态”也用到了配置信息文件。
试题1参考答案
【问题1】
A:传感器 B:报警器
【问题2】
4.监控传感器 5.显示信息和状态
【问题3】
补充的数据流
【问题4】
物理数据流图关注的是系统中的物理实体以及一些具体的文档、报告和其他输入/输出硬拷贝。物理数据流图用作系统构造和实现的技术性蓝图。
逻辑数据流图强调参与者所做的事情,可以帮助设计者决定需要哪些系统资源、为了运行系统用户必须执行的活动、在系统安装之后如何保护和控制这些系统。逻辑数据流图是物理数据流图去掉了所有的物理细节后得到的变换形式,其被用作系统分析的需求分析阶段的起点。
试题2分析
总体地分析该流程图,0层流程图是通过对总图中的“考务系统”细分为“报名处理”、“成绩处理”、“考生名册”并划分其数据流得来的。加工1子图是通过对0层流程图中的“报名处理”细分为“检查报名单”、“编制准考证号”并划分其数据流得来的;加工2子图是通过对0层流程图中的“成绩处理”细分为“成绩清单录入”、“制作成绩通知单”、“制作录取通知单”、“试题难度分析”等并划分其数据流得来的。
在一层数据流图中,如果一个文件仅仅作用于一个加工,那么该文件可以作为局部文件出现在该加工的子图中,而不必出现在它的父图中。在0层流程图中,“成绩册”文件仅仅作用于一个加工,即与“成绩处理”相关联,所以可以从父图中删去。
加工1子图是通过对0层流程图中的“报名处理”细分得来的。在0层流程图中“报名处理”功能的输入、输出流为“报名单”、“不合格报名单”、“准考证”以及指向考生名册的数据流。而分化后的加工1子图具有“合格报名单”、“不合格报名单”以及指向考生名册的数据流。根据数据流图中父图和子图的数据流应平衡的原则,应加入遗漏的“报名单”、“准考证”这两个数据流。
根据常识,报名在编制准考证前,发准考证则在报名后,所以输入流“报名单”应指向“检查报名单”,而输出流“准考证”应从“编制准考证号”流出。
完整的子图1如图1-56所示。
图1-56 完整的加工1子图
加工2子图是通过对0层流程图中的“成绩处理”细分得来的。在0层流程图中“成绩处理”功能的输入、输出流为“录取通知单”、“成绩分布表”、“成绩通知单”、“试题难度分析表”、“不合格标准”、“合格标准”和“成绩清单”。而分化后的加工2子图的输入、输出流为“录取通知单”、“成绩通知单”、“试题难度分析表”、“不合格标准”、“合格标准”和“成绩清单”,唯独没有“成绩分布表”,所以要增加该数据流。由于子图中已有的“成绩清单录入”、“制作成绩通知单”、“制作录取通知单”和“试题难度分析”4个加工都不能处理“成绩分布表”,所以应增加“制作成绩分布表”这个加工,用于流出“成绩分布表”。
另外,在加工2子图中有“考生名册”和“成绩册”两个文件,它们与加工2.1~2.4都没有联系,这是不正确的,遗漏了数据流。
“制作成绩通知单”、“制作录取通知单”、“试题难度分析”和“制作成绩分布表”这4个加工需要“成绩册”中的各课程的成绩作为数据输入,同时“成绩册”的数据是由“成绩清单录入”这个加工得来的。
“制作成绩通知单”、“制作录取通知单”和“成绩清单录入”这3个加工需要“考生名册”提供详细的考生信息。由0层流程图得知,没有数据流从“加工2子图”到“考生名册”,所以“考生名册”在子图中没有输入流。
完整的加工2子图如图1-57所示。
图1-57 完整的加工2子图
试题2参考答案
【问题1】
“成绩文件”可删除。
【问题2】
报名单数据作为加工1.1的输入数据流;准考证数据作为加工1.2的输出数据流。
【问题3】
增加加工2.5,加工名称为“制作成绩分布表”,它的输入流是成绩册文件,输出流是成绩分布表;增加从考生名册文件到加工2.1~2.3的数据流;增加从成绩文件到加工2.2~2.4的数据流;增加加工2.1到成绩册文件的数据流。
试题3分析
供销系统是描述顾客、供应商、总经理与供销系统之间的数据的输入与输出的变换过程。试题明确指出了顶层图的正确性,可以根据试题说明与顶层图确定系统的基本功能:
(1)处理顾客的订货单,反馈不合法订货单给顾客,在一定的条件下向顾客发出提货单。
(2)在一定的条件下向供应商发送采购清单,处理供应商的送货单,反馈不合法的送货单。
(3)在一定条件下接受总经理的查询,向总经理提供销售及库存情况表。
根据试题的提问可以掌握如下的知识点:
首先,问题1的“不必画出”的含义,是指在某层数据流图中,只画流程图中各加工之间的公共数据文件,隐藏某加工的局部数据文件,这个规则只是为了使整个流程图的层次结构更为科学,更加清晰。当然,画出那些“不必画出的数据文件”对流程图阅读不会造成理解错误。
其次,问题2指出各层流程图中可能遗漏了数据流,所以可以假定各层流程图的处理流程、加工分解以及已有数据流的正确性。
【问题1】
理解“不必画出”的含义后,就可以进行问题1的解答与分析。
顶层图中没有涉及数据文件,可以跳过不予考虑。
0层图中包含“配件库存”、“缺货订单”和“采购清单”3个文件。其中“采购清单”是加工2的局部数据文件。根据原则,“采购清单”应是0层图中不必画出的数据文件,但此时不能保证采购清单是一个局部文件,还需要根据加工1子图来确定。
如果“采购清单”是加工1子图的一个数据文件,那么“采购清单”与哪些加工有关联呢?加工1.1是订单合法性检查,加工1.3是制定报表,加工1.4是更新库存,加工1.5是处理到货,这些加工都与采购无直接的联系,那么只有加工1.2可能与“采购清单”有数据联系。
加工1.2是接受送来的合法订单,首先根据配件库存来确定订单是否现在能发货,如果有货则进行“有货订单”处理,如果配件不够订单数,则需要产生一个采购请求。是否要填写采购清单呢?也就是加工1.2填写“采购清单”,再由加工2来进行处理,是不是这样需要根据分析加工2来确定。从加工2子图的加工2.3到2.1再到2.2是用来产生“采购清单”的,因此以上的假设应该不正确,也就是采购清单不是由加工1生成,而是由加工2通过几个子加工生成的,所以采购清单是加工2的一个局部数据文件,在0层图中不应出现,是一个不必画出的数据文件。
由于加工1子图与加工2子图只有一层细化图,因此没有局部文件和外部文件之分,可以不予考虑。
【问题2】
对于问题2要求指出哪些图中遗漏了哪些数据流,这需要从两个方面进行考虑。
一是父图与子图的平衡,即子图的输入输出数据流与父图相应的加工的输入输出数据流必须一致。
二是针对每个加工至少要有一个输入和输出,反映此加工的数据来源和结果。
在顶层图中,供销系统有“订货单”、“送货单”与“销售及库存情况”3个输入数据流,“不合法的订货单”、“不合法的送货单”、“提货单”、“采购单”与“销售及库存情况表”5个输出数据流,在0层图中都得到反映,没有父图与子图的不平衡。
0层图中的加工1输入数据流有“订货单”、“到货通知”和“查询销售及库存情况”,而在加工1子图中少了“到货通知”,存在父图与子图的输入不平衡。输出数据流有“不合格订货单”、“销售及库存情况表”和“提货单与采购请求”,而加工1子图中没有“提货单”,存在父图与子图的输出不平衡。
试题说明提到“当某配件的库存量大于或等于订购量时,或者收到供应商的送货单并更新了库存后,向顾客发出提货单”,所以在加工1.4更新库存后,应产生“提货单”输出数据流;且“到货通知”是加工1.4处理的前提条件,加工1.4处理的输入数据流“到货单”,需经加工1.5完成,加工1.5也没有输入数据流,所以加工1.5处理的输入数据流为“到货通知”。
加工 1.3需要完成销售与库存有关情况,而输入的数据只有销售历史,很明显还缺少库存情况,所以遗漏了文件“配件库存”到子加工1.3的数据流。
0层图中的加工2有“采购单”、“不合格送货单”和“到货通知”3个输出数据流,在加工2子图中这3个输出数据流都有反映,所以没有遗漏输出数据流。
加工2有“送货单”、“采购请求”两个输入数据流,显然加工2子图中遗漏了输入数据流“采购请求”。
从加工2子图的处理流程上来看,加工2.4是到货进行处理,与采购无直接关系。“采购请求”应该触发采购输入数据,数据处理流向是从加工2.3到加工2.1最后到加工2.2,产生采购清单文件和输出数据流采购单;且加工2.3没有输入数据流,所以“采购请求”应作为加工2.3的输入数据流。
再一次分析整个数据流图,确保所有的输入与输出数据流的平衡。
试题3参考答案
【问题1】
0层图中的“采购清单”不必画出。
【问题2】
加工1子图中遗漏了“配件库存”文件到1.3加工的数据流。
加工1子图中1.4加工遗漏了“提货单”输出数据流。
加工1子图中1.5加工遗漏了“到货通知”输入数据流。
加工2子图中2.3加工遗漏了“采购请求”输入数据流。
试题4分析
房产管理系统是描述住户与物业管理委员会之间的数据输入与输出的变换过程。试题明确指出了顶层图的正确性,所以根据试题说明与顶层图确定系统的基本功能:
(1)分类处理用户的入住单,更新住户基本信息,结算分户或换房前的房租,以及制作住房分配表。
(2)计算住户月租费,发出交费通知单,处理住户交费,以及制作住房分配表和交费情况表。
根据试题的提问可以掌握如下的知识点:
首先,问题1的“不必画出”的含义,是指在某层数据流图中,只画流程图中各加工之间的公共数据文件,而隐藏某加工的局部数据文件,这个规则只是为了使整个流程图的层次结构更为科学,更加清晰。当然,画出那些“不必画出的数据文件”对流程图阅读不会造成理解错误。
其次,问题2指出各层流程图中可能遗漏了数据流,所以可以假定各层流程图的处理流程、加工分解以及已有数据流的正确性。
【问题1】
在0层图中有“住户基本信息文件”、“房租文件”和“交费文件”3个文件。其中“房租文件”、“交费文件”为加工2局部数据文件,根据原则,这两个文件在0层图中不必画出,但在问题2中给出了可能有遗漏数据流的情况,还须分析加工1子图,以确定该加工没有遗漏使用这些文件的数据流。下面就通过分析加工1子图的处理流程,确定遗漏的数据流及上面关于局部文件的假设。
加工1子图由6个加工组成,即入住单校验、按入住性质分类、登录、分户处理、换房处理以及制作住房分配报告。
加工1.1对入住单进行校验,反馈不合法的入住单。那么加工1.1根据什么来校验入住单?该加工没有提供任何校验数据,如果不借助外部的数据信息,则只能检查入住单数据中的一般性错误,如录入的数据是否含有非法字符、数据格式是否满足系统的约定等。另外还需检查数据的一般性错误,保证录入的入住单数据是合法的,根据一般的知识经验,对某个输入合法性的校验,需要借助某些外部数据文件,可以判断该加工遗漏了到某数据文件的输入数据流。
对于合法的入住单,加工1.2对它进行分类处理,分成3类:新住户(加工1.3)、分户(加工1.4)、换房(加工1.5),每个处理更新住户基本信息文件。那么这里可以确定1.1加工的外部数据应是“住户基本信息文件”,也就是加工1.1根据“住户基本信息文件”进行合法性检查。
加工1.3处理新住户,只需要把住户信息写入文件即可。而加工1.3与加工1.4除了更新住户基本信息文件外,还应立即对这些住户做月租费计算,以结算分户或换房前的房租。
这里加工1.4和1.5可能直接依据“房租文件”和“交费文件”计算房租,但这两个加工的输出数据流是两个输出通知,也就是房租的计算交给加工1“收费管理”来完成,这样简化了处理流程和系统的结构。所以可以确定这两个文件不是加工1的数据文件,因此没有必要在0层图中画出。
【问题2】
再来看整个处理流程的输入与输出数据,发现整个流程与加工1有输出不平衡。少了“住房分配表”的输出,根据加工的命名可以判断是由加工1.6制作住房分配表输出。
加工2子图由调整房租、计算月房租、交费凭证验证、制作数据及制作交费报告5个加工组成,也即整个流程完成房租计算(加工2.1与加工2.2)、交费处理(加工2.3与2.4)、报表制作(加工2.5)3个功能。
加工2.2对房租调整表进行处理进而生成房租文件,作为加工2.1的输入数据;加工2.1进行房租的计算、生成交费文件及产生交费通知单。那么房租计算需要哪些数据呢?试题说明给出“根据物业管理委员会提供的月附加费表和房租调整表,计算每家住户的月租费”的条件,房租调整表由加工2.2加工生成房租文件,再由加工2.1读入,所以加工2.2不存在遗漏数据流;而月附加费表只有直接输入,所以加工2.1遗漏了“月附加费表”输入数据流。
住户持交费凭证交费时,由加工2.3根据“交费文件”进行凭证的合法性检查。这就需要检查交费凭证是否在文件中存在,交费数据与文件是否一致等数据的个别性错误,同时还要判断输入的凭证数据是否含有一些非法字符等一般性错误。经过检查后产生“合格交费凭证”数据流给加工2.4制作数据并输出收据给住户,显然加工2.4遗漏了“收据”输出数据流。
加工2.5定期根据“交费文件”制作交费报告提供给物业管理委员会,不存在遗漏数据流的问题。
再分析整个细化流程图的输入与输出数据流,确定该流程图不存在父图和子图输入和输出数据的不平衡。
【问题3】
住户持交费凭证交费时,由加工2.3根据“交费文件”进行凭证的合法性检查,这就需要检查交费凭证是否在文件中存在,交费数据与文件是否一致等数据的个别性错误,同时还要判断输入的凭证数据是否含有一些非法字符等一般性错误。
试题4参考答案
【问题1】
0层图中的“房租文件”和“交费文件”是局部文件,可不必画出。
【问题2】
加工1子图中,遗漏了数据流:从“住户基本信息文件”到加工1.1。
加工1子图中,加工1.6遗漏了输出数据流“住房分配表”。
加工2子图中,加工2.1遗漏了输入数据流“月附加费表”。
加工2子图中,加工2.4遗漏了输出数据流“收据”。
【问题3】
交费凭证中有非法字符。
交费文件中不存在与之对应的交费凭证。
试题5分析
根据数据流图的数据平衡原则,在分层的数据流各部,上层数据流图与下层数据流图必须是平衡的,即下层数据流图的所有输出数据流必须是上层数据流图中相应加工的输出数据流。如果上层数据流某部某加工的一个输入(输出)数据流对应于下层数据流图中若干个输入 (输出)数据流,而且下层数据流图中这些数据流的成分之和正好等于上层数据流该部的这个数据流,那么它仍算是平衡的。
【问题1】
结合数据流图知识,图1-42中的1.X等字样己经表明,图1-42与图1-41的加工1相对应,考查图1-42的两个输出数据流“不合格报名单”和“考生名册”,根据数据平衡原则,可以断定图1-42的输入数据流(1)是图1-41加工1的输入数据流,即“报名单”。图1-42的输出数据流应与图1-41加工1的输出数据流等价,所以图1-42的输出数据流(2)和输出数据流(3)应是准考证和考生名单。
【问题2】
通过对图1-41加工1进行细致的分析,未发现可删除的成分。通过考查图1-41加工2的输入数据流和输出数据流,发现试题得分清单并不是系统功能所要求的,而只是在加工时使用试题得分清单,完全可以从加工2.1之后产生难度分析表和分类统计表。由此我们断定图1-41中加工2的输出数据流试题得分清单是可以删除的。
【试题3】
显然,图1-43是与图1-41的加工2相对应的。根据数据平衡原则,考查图1-41加工2的输入数据流和输出数据流,发现图1-41中缺少输入数据流合格标准和输出数据流错误成绩单。仔细考查图1-43,易知输出数据流错误成绩清单应从加工2.1流出,而输入数据流合格标准应流入加工2。
【试题4】
仔细阅读数据流图,可知考生名册文件的数据源是正式报名单,并在加工2.3中产生考生通知单,在加工2.4中产生分类统计表。这样,考生名册文件数据项的来源和应用范围都已经确定。结合试题说明,首先将考生通知单中除合格标志外的数据项都包括进考生名册文件。成绩要按地区、年龄、文化程度、职业和考试级别分类统计,这些数据项都在(正式)报名单中,而加工2.4又没有使用(正式)报名单,显然,以上5个数据项也要包括进考生名册文件。
试题5参考答案
【问题1】
(1)报名单元 (2)准考证(3)考生名单
【问题2】
文件“试题得分清单”可删除。
【问题3】
加工2.1遗漏输出数据流“错误成绩清单”,加工2.2遗漏输入数据流“合格标准”。
【问题4】
考生名册=地区+姓名+年龄+文化程度+职业+考试级别+通信地址+准考证号。
试题6分析
【问题1】
在0层图中的“处方记录”是加工3“处方收费”的局部数据文件,所以不必画出。
【问题2】
根据说明“系统首先根据病人基本情况检查处方单中病历号是否正确”,因此,在加工3.1“检查处方单”中,需读入病人基本情况,所以缺少从“病人基本情况”到“3.1检查处方单”的数据流。然后系统“记录合格的处方单”,所以加工3.2“记录处方”中需要将处方的内容记录到文件“处方记录”中,因此缺少从“3.2记录处方”到“处方记录”的数据流。加工3.3“制作收据”中需根据文件“定价表”的各项目或药品的价格来计算所需收取的费用,因此图中还缺少从“定价表”到“3.3制作收据”的数据流。最后收费的记录需写入文件“收费记录”中,所以缺少的第四条数据流是从“3.3制作收据”到“收费记录”的数据流。
【问题3】
找出缺少的数据流的关键是父图与子图的平衡,即子图的输入/输出数据流与父图相应的加工的输入/输出数据必须一致。
从0层图中可以看到,对于加工1“病历收费”有输入流“病人信息”,输出流“不合格病人信息”,“病历”和“收据”。而加工1子图中却只有“病人信息”和“病历”,所以一定缺少两条输出流“不合格病人信息”和“收据”。病人信息是否合格是在加工1.1“检查病人信息”中处理,因此,加工1.1除一条输出流“合格病人信息”外,还缺少一条输出流“不合格病人信息”。对合格的病人信息,加工1.2计算收费后,理应提供收据给病人,所以另一条缺少的数据流是“1.2计算费用”的“收据”输出数据流。
试题6参考答案
【问题1】
医院收费系统的0层图中的“处方记录”。
【问题2】
(1)从“病人基本情况”到“3.1检查处方单”的数据流。
(2)从“3.2记录处方”到“处方记录”的数据流。
(3)从“定价表”到“3.3制作收据”的数据流。
(4)从“3.3制作收据”到“收费记录”的数据流。
【问题3】
(1)“1.1检查病人信息”的“不合格病人信息”输出数据流。
(2)“1.2计算费用”的“收据”输出数据流。
试题7分析
【问题1】
“不必画出”是指在某层数据流图中,只画流程图中各加工之间的公共数据文件,而隐藏某加工的局部数据文件,这个规则只是为了使整个数据流图的层次结构更科学、更清晰,不过画出“不必画出的数据文件”对数据流图不会造成理解错误。在0层图中有文件“火车时刻表”、“订票信息表”、“旅客信息表”和“座位表”,其中“座位表”是加工1“顾客订票”的局部数据文件,所以不必画出。
【问题2】
本题是找出错误的数据流。解决这种问题的关键是父图与子图的平衡,即子图的输入/输出数据流与父图相应的加工的输入/输出数据必须一致。
从0层图中可以看到对于加工1“顾客订票”,有到文件“旅客信息表”的输出流,从文件“列车时刻表”得到的输入流,以及与文件“订票信息表”的输入/输出流。而加工1子图中只有从加工1.1到文件“列车时刻表”的数据流,与父图不一致,因此是错误的,应改为从文件“列车时刻表”到加工1.1的数据流。同理,从文件“旅客信息表”到加工1.3的数据流也与父图不一致,应该改为从加工1.3到文件“旅客信息表”的数据流。
0层图中加工2“顾客取票”中存在从文件“旅客信息表”到加工2的数据流,而加工2子图中从加工2.1到文件“旅客信息表”的数据流是与0层图相悖的,因此也是错误的。应该改作从文件“旅客信息表”到加工2.1“检查信息表”的数据流。
【问题3】
每个加工的功能要从提供给该加工的文件的信息量决定。从0层图中可以看出,加工3 “查询处理”仅有从文件“订票信息表”的输入流,而从说明中的文件组成可以看出,订票信息表仅记录了旅客订票和取票的信息,不能知道总的座位数,因此加工3能查询已订购和已售出的车票情况,而不能查询出剩余票的情况。要想查询出剩余票的情况,需要利用文件 “座位表”来了解车次座位的总的情况,再利用文件“订票信息表”的已订和已售车票信息共同得出剩余票信息。
试题7参考答案
【问题1】
0层图中文件“座位表”是局部数据文件,不必画出。
【问题2】
(1)图1-50所示的数据流图中从加工1.1“检查订票单”到文件“列车时刻表”的数据流。
(2)图1-50所示的数据流图中从文件“旅客信息表”到加工1.3“填写取票单”的数据流。
(3)图1-51所示的数据流图中从加工2.1“检查取票单”到文件“旅客信息表”的数据流。
【问题3】
不可以。从0层图中可以看出,加工3“查询处理”仅有从文件“订票信息表”的输入流,而从说明中的文件组成可以看出,订票信息表仅记录了旅客订票和取票的信息,不能知道总的座位数,因此加工3能查询已订购和已售出的车票情况,而不能查询出剩余车票的情况。
试题8分析
本题和前面几道习题略有不同,题目给出的不是分层数据流图,而是一张系统的详细数据流图。同时题目不仅考查了数据流图的基本知识和数据字典条目,还考查了用面向对象方法设计系统的有关知识。
【问题1】
本题要求考生找出数据流图中所缺少的数据流。由于该题没有其他任何图可以对比和参考,所以解题的关键就是仔细阅读说明,将文字与图一一对照,找出问题所在。
本题的说明部分对物料出入库管理工作流程的阐述非常清晰,所以只要逐句分析,并在数据流图中找到相应的数据流,若没有,则为缺少的数据流。例如,在出库工作流程中,“(1)领料人提交领料单”对应数据流图中一条从“领料人”到“领料单检验”的“领料单”数据流。逐步检查后发现,“(5)若没有足够的库存,仓库保管员向领料人发缺货单”这句话在数据流图中找不到相应的数据流,所以缺少一条从“领料单检验”到“领料人”的“缺货单”数据流。同理,在入库工作流程中,无法找到与“(5)如果物料或供货方不合格,则向采购员发出退货单”相对应的数据流,所以缺少一条从“物料检验”到“采购员”的“退货单”数据流。
【问题2】
此题要求找出“领料单”和“入库申请单”的数据字典条目,可以根据题目的说明部分来解答此题。
首先在说明中分别找到与之相关的描述。在出库工作流程中,每一句话都提到了领料单,根据其中的(1)和(4)可知,领料单应包含属性“物料代码”;根据(4)可知领料单应包含属性“数 量”和“日期”;由(1)、(3)、(5)可知,领料单应包含属性“领料人”;由(6)可推断出领料单还应包含属性“仓库保管员”。所以领料单应包含属性:物料代码、数量、日期、领料人、仓库保管员。同理,在入库工作流程中可以找到与“入库申请单”有关的描述。由(1)可知,入库申请单应包含属性“采购员”和“物料代码”;由(2)和(5)可知,入库申请单应包含属性“日期”和“供货方”;根据(2)和(6)可推断出领料单还应包含属性“数量”。
【问题3】
此题是一个典型的进销存问题。对于一个功能完善的库存管理系统,应具有查询、统计、报表输出和库存警报功能。分析题目可知,在出库时应有库存不足报警,在入库时应有库存超限报警。
【问题4】
题目要求在采购计划单、物料主文件、领料单、出库单、供货方档案、入库申请单、检验单、入库单和领料计划单这9个类中找出需要持久存储的类。在数据流图中,可以看到“采购计划单、入库单、供货方档案、出库单、物料主文件、领料计划单”表示为存储文件,可见这些文件中存储的信息需要被永久保存,所以这些文件需要映射到关系数据库模式中。而领料单、入库申请单、检验单只在数据流中出现,可见这些只是暂时的凭证,而不需要永久保存。
试题8参考答案
【问题1】
名称:退货单;起点:物料检验;终点:采购员
名称:缺货单;起点:领料单检验;终点:领料人
【问题2】
领料单的属性:物料代码、数量、日期、领料人、仓库保管员。
入库申请单的属性:物料代码、数量、供货方、日期、采购员。
【问题3】
库存超限报警、库存不足报警。
【问题4】
采购计划单、入库单、供货方档案、出库单、物料主文件、领料计划单。
试题9分析
该题考点——数据流图,与往年考题一致,要求完善数据流图:辨别实体、存储文件,补充加工处理和缺失的数据流。
解答此类问题时有以下两个原则:
第一个原则是紧扣试题系统说明部分,数据流图与系统说明有着严格的对应关系,系统说明部分的每一句话都能对应到图中,解题时可以逐句地对照图来分析。
第二个原则即数据平衡原则,这一点在解题过程中也是至关重要的。数据平衡原则有两方面的含义,一方面是分层数据流图父子图之间的数据流平衡原则,另一方面是每张数据流图中输入与输出数据流的平衡原则。
与往年试题相比,本题比较简单,所考查的知识点也在历年的试题考点之中。因此,不再进行详细分析,而是直接给出参考答案。
试题9参考答案
【问题1】
E1:前端应用 E2:数据管理员 E3:后端数据库
【问题2】
D1:用户表 D2:操作表 D3:权限表
【问题3】
P名称:处理操作结果
缺失的数据流
【问题4】
(1)加工之间、各层之间对应的输入输出流的数量不一致。
(2)输入输出方向不正确。
(3)输入输出流没有命名。