参考答案:
图1-1中:添加外部实体“Email系统”,然后将临时预订/预订/变更确认信息 的终点更改为 “Email系统”
预定信息 起点:D1 预定信息 终点:6 要求付款
预定客户信息 起点:D2 客户记录 终点:6 要求付款
客户信息 起点:D2 客户记录 终点: 4确认预定
需变更的客户信息 起点: D2 客户记录 终点:5变更预定
图1-2中:添加外部实体“Email系统”,将数据流“临时预定确认信息”、“预定确认信息”、“变更确认信息”、数据流的终点改为新的外部实体“Email系统”。
详细解析:
本题考查采用结构化方法进行系统分析与设计,主要考查数据流图(DFD)的应用,是比较传统的题目,考点与往年类似,要求考生细心分析题目中所描述的内容。
面向数据流建模是目前仍然被广泛使用的结构化分析与设计的方法之一,而DFD是面向数据流建模的重要工具,是一种便于用户理解、分析系统数据的图形化建模工具,是系统逻辑模型的重要组成部分。DFD将系统建模成“输入—加工(处理)—输出”的模型,即流入软件的数据对象、经由加工的转换、最后以结果数据对象的形式流出软件,并采用分层的方式加以表示。
上下文DFD(顶层DFD)通常用来确定系统边界,将待开发系统看作一个大的加工(处理)。然后根据系统从哪些外部实体接收数据流,以及系统将数据流发送到哪些外部实体,建模出的上下图文中只有唯一的一个加工和一些外部实体,以及这两者之间的输入输出数据流。0层DFD在上下文确定的系统外部实体以及与外部实体的输入输出数据流的基础上,将上下文DFD中的加工分解成多个加工,识别这些加工的输入输出数据流,使得所有上下文DFD中的输入数据流,经过这些加工之后变成上下文DFD的输出数据流。根据0层DFD中加工的复杂程度进一步建模加工的内容。
在建分层DFD时,根据需求情况可以将数据存储建模在不同层次的DFD中,注意要在绘制下层数据流图时要保持父图与子图平衡。父图中某个加工的输入输出数据流必须要与它的子图的输入输出数据流在数量和名字上相同,或者父图中的一个输入(或输出)数据流应对应于子图中几个输入(或输出)数据流,而子图中的一个输入(或输出)数据流对应于子图中几个输入(或输出)数据流,而子图中组成这些数据流的数据项全体正好是父图中的这一条数据流。
【问题1】
本题考查上下文DFD,要求确定外部实体。在上下文DFD中,系统名称作为唯一加工的名称,外部实现和该唯一加工之间有输入输出数据流。通过考查系统的主要功能,不难发现,系统中涉及到客户和会议中心管理员,没有提到其他与系统交互的外部实体。根据描述(1)“客户提交预定请求后”,(2)“会议中心管理员收到客户预定请求的通知之后,提交确认”、“根据客户记录给客户发送临时预定确认信息和支付定金要求”等信息,对照图1-1,从而即可确定E1为“客户”实体,E2为“管理员”实体。
【问题2】
本题要求确定图1-2所示的0层数据流图中的数据存储。重点分析说明与数据存储有关的描述。根据(1)“客户提交预定请求后,检查预定表”,“系统生成新临时预定存入预定表,并对新客户创建一条客户信息记录加以保存”,可知D1为预定表、D2为客户表;根据“会议中心提供举办会议的场地设施和各种设备”,(3)“根据临时预定或变更预定的设备和设备需求,分配所需设备(均能满足用户要求)和设施,更新相应的表和预定表”,“分配设施和设备”可知D3和D4分别为场地(设施)表和设备表。
【问题3】
本问题要求补充缺失的数据流及其起点和终点。
对照图1-1和图1-2的输入、输出流数据,数量不同,考查图1-1中从加工“会议预定系统”输出至E1的数据流,有“临时预定/预定/变更确认信息”,从图1-2中从加工输出至E1的数据流“临时预定确认信息”和“变更预定确认信息”,但缺少了其中一条数据流“预定确认信息”。
另外,图中1-1中有“付款凭据”,图1-2中没有“付款凭据”而只有“已支付定金凭据”,没有针对说明(7)中“管理员收到客户余款支付的通知后”中的“支付余款凭据”。上述两条数据的遗失,使父图和子图数据流没有达到平衡。所以需要确定这两条数据流或者其分解的数据流的起点或终点。
考查说明中的功能,先考查“确认预定”,功能(4)中“给客户发送预定确认信息”,对照1-2,加工4没有到实体E1客户的“预定确认信息”数据流;功能(7)中“管理员收到客户余款支付的通知后”,对照图1-2,加工7没有从实体E1客户输入的数据流“余款支付凭据”。图中“余款支付凭据”数据流是上下文数据流图中数据流“支付凭据”的分解,与另一条分解出的数据流“已支付定金凭据”对照,改名为“已支付余款凭据”。
下面再仔细核对说明和图1-2之间是否还有遗失的数据流。
不难发现,功能(4)中“根据客户记录给客户发送预定确认信息”,而图1-2中加工4从D1预定表中读取预定信息,并没有读取客户信息,所以,此处遗失了数据流“客户记录”,起点是D2客户表,终点是加工4确认预定;功能(5)中“管理员确认客户变更后,根据客户记录给客户发送确认信息”,而图1-2中加工5并没有所根据的“客户记录”输入数据流,所以,此处遗失了数据流“客户记录”,起点是D2客户表,终点是加工5变更预定;功能(6)中“更加客户记录给满足条件的客户发送支付余款要求”,而图1-2中加工6并没有所根据的“客户记录”输入数据流,所以,此处遗失了数据流“客户记录”,起点是D2客户表,终点是加工6要求预定。
继续核对说明和图1-2,不难发现,功能(6)中“管理员从预定表中查询距预定的会议时间两周内的预定”,而图1-2中没有从D1预定表到加工6的输入流,所以,此处遗失了数据流“距预定会议时间两周内的预定”,其起点是D1预定表,终点是加工6要求付款。
【问题4】
DFD中,外部实体可以是用户,也可以是与本系统交互的其他系统。如果某功能交互的是外部系统(在本题中是Email系统),则本系统需要将发送给客户的确认信息发送给Email系统。然后由第三方Email系统向客户发送邮件,此时第三方Email系统即为外部实体,而非本系统内部加工,因此需要对图1-1和图1-2进行修改,添加外部实体“Email系统”,并将数据流确认信息的重点全部改成Email系统。即将数据流“临时预定确认信息”、“预定确认信息”、“变更确认信息”、数据流的终点改为新的外部实体“Email系统”。