问答题 .阅读下列说明和图,回答问题1至问题4。
    [说明]
    某医疗器械公司作为复杂医疗产品的集成商,必须保持高质量部件的及时供应。为了实现这一目标,该公司欲开发一采购系统。系统的主要功能如下:
    1.检查库存水平。采购部门每天检查部件库存量,当特定部件的库存量降至其订货点时,返回低存量部件及库存量。
    2.下达采购订单。采购部门针对低存量部件及库存量提交采购请求,向其供应商(通过供应商文件访问供应商数据)下达采购订单,并存储于采购订单文件中。
    3.交运部件。当供应商提交提单并交运部件时,运输和接收(S/R)部门通过执行以下三步过程接收货物:
    (1)验证装运部件。通过访问采购订单并将其与提单进行比较来验证装运的部件,并将提单信息发给S/R职员。如果收货部件项目出现在采购订单和提单上,则已验证的提单和收货部件项目将被送去检验。否则,将S/R职员提交的装运错误信息生成装运错误通知发送给供应商。
    (2)检验部件质量。通过访问质量标准来检查装运部件的质量,并将已验证的提单发给检验员。如果部件满足所有质量标准,则将其添加到接受的部件列表用于更新部件库存。如果部件未通过检查,则将检验员创建的缺陷装运信息生成缺陷装运通知发送给供应商。
    (3)更新部件库存。库管员根据收到的接受的部件列表添加本次采购数量,与原有库存量累加来更新库存部件中的库存量。标记订单采购完成。
    现采用结构化方法对该采购系统进行分析与设计,获得如图1所示的上下文数据流图和图2所示的0层数据流图。
   

    图1 上下文数据流图

   
问答题 1.  [问题1]
    使用说明中的词语,给出图1中的实体E1~E5的名称。
【正确答案】E1:供应商
   E2:采购部
   E3:检验员
   E4:库管员
   E5:S瓜职员
【答案解析】
问答题 2.  [问题2]
    使用说明中的词语,给出图2中的数据存储D1~D4的名称。
【正确答案】D1:库存
   D2:采购订单
   D3:质量标准
   D4:供应商
   (注:名称后面可以带有“文件”)
【答案解析】
问答题 3.  [问题3]
    根据说明和图中术语,补充图2中缺失的数据流及其起点和终点。
【正确答案】
数据流 起 点 终 点
装运错误通知 P3或验证装运部件 E1或供应商
缺陷装运通知 P4或检验部件质量 E1或供应商
原有部件库存量 D1或库存 P5或更新部件库存
已验证的提单信息 P3或验证装运部件 P4或检验部件质量
注:表中数据流顺序无关
【答案解析】
问答题 4.  [问题4]
    用200字以内文字,说明建模图1和图2时如何保持数据流图平衡。
【正确答案】图1(或父图)中某加工的输入输出数据流必须与图2(或子图)的输入输出数据流在数量和名字上相同;图1(或父图)中的一个输入(或输出)数据流对应于图2(或子图)中几个输入(或输出)数据流,而图2(或子图)中组成这些数据流的数据项全体正好是父图中的这一条数据流。
【答案解析】 本题考查采用结构化方法进行系统分析与设计,主要考查数据流图(DFD)的应用,考点与往年类似,要求考生细心分析题目中所描述的内容。题干描述较为清晰,易于分析。
   DFD是面向数据流建模的结构化分析与设计方法的工具。DFD将系统建模成输入、加工(处理)、输出的模型,即流入软件的数据对象经由加工进行转换,最后以结果数据对象的形式流出软件,并采用自项向下分层且逐层细化的方式,建模不同详细程度的数据流图模型。
   上下文数据流图(项层DFD)通常用来确定系统边界,将待开发系统看作一个大的加工,然后根据为系统提供输入数据流以及接受系统发送的数据流,来确定系统的外部实体,以及外部实体和加工之间的输入输出数据流。
   在上下文图中确定系统外部实体以及与外部实体的输入输出数据流的基础上,将上下文DFD中的加工分解成多个加工,识别这些加工的输入数据流以及结果经加工变换后的输出数据流,建模0层DFD。根据0层DFD中加工的复杂程度进一步建模加工的内容。
   在建模分层DFD时,根据需求情况可以将数据存储建模在不同层次的DFD中。建模时,需要注意加工和数据流的正确使用,一个加工必须既有输入又有输出;数据流必须和加工相关,即从加工流向加工、数据源流向加工或加工流向数据源。注意在绘制下层数据流图时要保持父图与子图平衡。
   [问题1]
   本问题考查上下文DFD,要求确定外部实体。
   在上下文DFD中,待开发系统的名称用“采购系统”作为唯一加工的名称,外部实体为该加工提供输入数据流或者接收其输出数据流。通过考查系统的主要功能发现,系统中涉及到供应商、采购部、检验员、库管员以及S/R职员。根据说明1中“采购部门每天检查部件库存量”,说明2中“向其供应商下达采购订单”、说明3.(1)中“并将提单信息发给S/R职员”,3.(2)中“并将己验证的提单发给检验员”,以及3.(3)中“库管员根据收到的接受的部件列表添加本次采购数量”等信息,对照图1,从而即可确定E1为“供应商”实体,E2为“采购部”实体,E3为“检验员”实体,E4为“库管员”实体,E5为“S/R职员”实体。
   [问题2]
   本问题要求确定图2 0层数据流图中的数据存储。
   重点分析说明中与数据存储有关的描述。说明1中“每天检查部件库存量”以及说明3的(3)中“与原有库存量累加来更新库存部件中的库存量”,可知D1为库存;说明2中“向其供应商(通过供应商文件访问供应商数据)下达采购订单,并存储于采购订单文件中”,可知D2为采购订单、D4为供应商;说明3的(2)中“通过访问质量标准来检查装运部件的质量”,可知D3为质量标准。
   [问题3]
   本问题要求补充缺失的数据流及其起点和终点。
   对照图1和图2的输入、输出数据流,缺少了从加工到外部实体E1(供应商)的数据流,即“通知”。根据描述,发给供应商的通知分为两种情况,一种是在验证装运部件时出现不符合采购订单和提单信息的情况下,“将S/R职员提交的装运错误信息生成装运错误通知发送给供应商”;另一种情况是在检验部件质量时,“如果部件未通过检查,则将检验员创建的缺陷装运信息生成缺陷装运通知发送给供应商”。所以缺少了两条数据流,加工“验证装运部件”流出的数据流“装运错误通知”和加工“检验部件质量”流出的数据流“缺陷装运通知”,这两条数据流的综合即为上下文DFD中的“通知”。
   再考查说明中的功能来判定是否缺失内部的数据流,以及找出缺失的数据流。先考查说明3的(2)中“如果收货部件项目出现在采购订单和提单上,则已验证的提单和收货部件项目将被送去检验”,发现在图2中缺失,起点为“验证装运部件”,终点为“更新部件库存”。再考查说明3的(3)中“与原有库存量累加来更新库存部件中的库存量”,加工“更新部件库存”需要从数据存储“库存(D1)”中取出原有部件库存量,与“接收到的部件量”累加后得到“更新部件数量”更新库存部件中的库存量,图2中缺失了从D1到P5的数据流“原有部件库存量”。
   [问题4]
   在自顶向下建模分层DFD时,会因为加工的细分而发生数据流分解的情况,需要注意保持数据流图之间的平衡(本题中图1和图2)。父图中某加工的输入输出数据流必须与其子图的输入输出数据流在数量和名字上相同,或者父图中的一个输入(或输出)数据流对应子图中几个输入(或输出)数据流,而子图中组成这些数据流的数据项全体正好是父图中的这一条数据流。