轻松应对高程软件设计题(3)

发表于:2007-05-26来源:作者:点击数: 标签:
上期我们分析了配件库存文件和缺货订单文件,再来看采购清单。 0层图显示该文件只应用于加工2。采购清单如果只应用在加工1中,最有可能的地方是加工1.2及其后的采购请求数据流,但在这里采购清单是有必要的吗?从加工2中可以看出,采购清单是按供应商对采购
上期我们分析了配件库存文件和缺货订单文件,再来看采购清单。

  0层图显示该文件只应用于加工2。采购清单如果只应用在加工1中,最有可能的地方是加工1.2及其后的采购请求数据流,但在这里采购清单是有必要的吗?从加工2中可以看出,采购清单是按供应商对采购单进行汇总来产生的,对采购单进行汇总,显然已经属于加工2的工作,不应在加工1中予以反映。由此可以断定在加工1中不应该有采购单文件。所以在0层图中画采购清单是不合适的。

  以上考查了0层图、加工1子图和加工2子图中缺货订单、配件库存及采购清单的使用,下面研究加工1中的销售历史文件。如果没有该文件支持,加工1.3是无法制作销售及库存情况表的;而且该文件由加工1.4更新库存产生,其输入数据流和输出数据流均在加工1中,在加工1中使用该文件是合适的。

  问题2要求指出哪些图中遗漏了哪些元素。一般来说,这类题目的解答首先要考虑各层次图的数据平衡,其次要考虑加工的输入数据流和输出数据流要平衡,即保证加工的输出数据流都有其对应的输入数据流。所谓数据平衡,就是在多层次数据流程图中,父图和子图之间的数据流必须保持一致,比如说在父图中某加工有2个输入数据流和一个输出数据流,那么在该加工的子图中的输入(输出)数据流必须在数目上和内容上与父图保持一致。



顶层图



0层图



  在顶层图中,供销系统的3个输入数据流(订货单、送货单与销售及库存情况)和5个输出数据流(不合法的订货单、不合法的送货单、提货单、采购单与销售及库存情况表)在0层图中都得到反映。考查0层图中所有的输入数据流和输出数据流,是否有遗漏的加工呢?在顶层图中总经理的查询是单独的加工,但在0层图中却给包括到加工1中去了,成为加工1.3,其输入或输出数据流也都包括在该加工中。考查加工1子图,加工1.3包含在加工1中是科学的,因为该加工需要来自加工1数据支持,且事务简单,包含在加工1中可以大大减小系统分析和设计的复杂程度。因此不能说0层图遗漏了加工。至于文件,在0层图中凡是需要文件的地方都是从文件输入的,未发生遗漏现象。

  仔细研究0层图,大体上确定加工1有3个输入数据流(订货单、到货通知和查询销售及库存情况),加工1子图中只有订货单与查询销售及库存情况两个数据流,显然遗漏了输入数据到货通知,该数据流应该从哪个子加工输入呢?看试题中的说明“收到供应商的送货单并更新了库存后,向顾客发出了提货单”。据此至少可以判定输入数据流到货通知是子加工1.4更新库存的前提条件,没有到货通知,就无法更新库存。是直接输入加工1.4吗?再看子加工1.4与其他子加工的关系。子加工1.5输出数据流的去向是子加工1.4。而子加工1.5需要到货通知的支持,但从子加工1.4到子加工1.5却没有数据流。综合以上分析,应该在子加工1.5处输入数据流到货通知。


加工1子图


  考查0层图,加工1有不合格订货单、销售及库存情况表、提货单与采购请求4个输出数据流。但在加工1子图中,却没有输出数据流提货单,这显然是不符合数据平衡原则的。但该数据流应从何处输出呢?根据试题说明,在更新库存后应向顾客发出提货单。显然这里合适的位置是子加工1.4。

  在0层图中加工2有3个输出数据流,分别是采购单、不合格送货单与到货通知。在加工2子图中这3个输出数据流都有反映,因此可以确定在加工2子图中没有遗漏输出数据流。在0层中,加工2有两个输入数据流(送货单与采购请求),显然加工2子图中遗漏了输入数据流采购请求,问题是该数据流从哪个子加工输入。

  子加工2.4的任务是核对送货单,显然采购请求不应该在这里输入;那么在子加工2.1、子加工2.2和子加工2.3中,究竟应该在何处输入采购请求数据流呢?如果在子加工2.2中输入,则由子加工2.1到子加工2.2数据流按配件清单必将是不完全的,因为这样只计算了缺货订单上需要的配件数量。所以,只能从子加工2.3输入采购请求。


加工2子图


  接着看加工1子图和加工2子图中的各个子加工,看它们的输入数据流和输出数据流是否平衡。子加工1.1、1.2、1.4、1.5和子加工2.1、2.2、2.3、2.4都没有问题,只有子加工1.3,其输出是销售及库存情况表,但在图中该子加工只从文件销售历史中输入数据,销售历史中显然不包含反映库存情况的数据,因此我们可以断定,加工1子图中遗漏了从文件配件库存到子加工1.3的数据流。

  【答案】

  [问题1]:0层中的 “采购清单”不必画出。

  [问题2]:加工1子图中遗漏了“配件库存”文件到1.3加工的数据流。加工1子图中1.4加工遗漏了“提货单”输出数据流。加工1子图中1.5加工遗漏了“到货通知”输入数据流。加工2子图中2.3加工遗漏了“采购请求”输入数据流。

原文转自:http://www.ltesting.net