查看全部128种考试
软件水平考试
 考试动态 报考指南 历年真题 模拟试题 复习资料 心得技巧 专业英语 技术文章 软考论坛 考试用书
 程序员 软件设计师 网络管理员 网络工程师 系统分析师 数据库系统工程师
1
2
3
4
5
6
7
8
9
10
ak47  
【字体: 软件设计师历年设计题分析及实例
软件设计师历年设计题分析及实例
spks.exam8.com 来源:软考在线 更新:2005-3-15 1:31:00 软件水平考试 考试论坛
    根据软件水平与资格考试大纲的要求,高级程序员不仅要具备高水平的程序编制能力,而且要熟练掌握软件设计的方法和技术,具备一定的软件设计能力。软件设计题是下午试题的难点,本文针对软件设计题,给出了解答的一般方法,并且给出了解答实例,最后对历年试题进行了分析,希望能够给广大考生提供帮助。


    解题的一般方法

  一、软件设计题要点

  综观1990年到2004年的高程下午设计题,主要包括以下考点:

  1. 完善处理流程,或指出处理内容,或指出处理结果。

  2. 指出流程图中错误,或为避免错误应在某处添加处理项目。

  3. 为达到某目的,需要改动哪些处理,或改变处理方法会引起什么后果。

  4. 指出错误清单内容。

  5. 文件的记录应包含哪些内容。

  6. 完成处理需要什么样的文件,或文件有什么特征,或引入某文件有什么好处。

  7. 文件怎样分类,或指出关键字。

  8. 某处理的频度。

  9. 输入数据的格式。

  10. 题意中的分类有何好处。

  11. 为实现某目的适当修改文件的记录内容。

  12. 指出图中数据流名,或指出哪些位置数据可增加或删去。

考点最集中的部分是关于文件记录的内容,其次是文件的分类排序,再次是当目的改变应该改动哪些。

  二、答题注意事项

  事务处理流程图一般由若干处理与若干数据组成,在评估流程图并回答试题的问题时,应该注意下面一些问题。

  从“处理”的角度来说,必须注意:

  1. 每个事务处理均有一个特定目标,这一目标往往都是文字说明的。与此对应的处理应能覆盖所设定的目标。对于说明处理要求,都应从问题目标进行考虑。

  2. 除覆盖问题目标的处理外,还有两类处理应予考虑:一是为了保证处理的正确性,设计一些处理框,以检查输入数据的数据项及数据的值域;另一种是检查数据会合时数据的一致性。二是为了处理的效率,如速度、次数、减少处理访问等而引进了一些处理。

  3. 在一个流程图内,在一条流程上的各个处理不能有功能上的重复。如有重复,不是有错,就是流程还可优化。

  4. 每个处理都是由“处理的依据”到“使用数据”,以及从“处理结果”到“产生数据”。“使用数据”或者“产生数据”与处理相互匹配是十分重要的。

从“数据”的角度来说,必须注意:

  1. 注意流程图最初的输入数据与最终输出数据,考虑从输入到输出之间数据演变的情况。根据数据的演变与流程,关于从输入到输出应有哪些数据就比较清楚了,其作用也可以从演变方面了解。

  2. 考虑数据流程中,哪些数据应作为文件形式出现,哪些是中间使用的临时数据。在数据演变中,一些数据经多个“处理”加工后得到结果,每加工一次就产生一个新数据,对这些数据分析,就能得出各数据的存储要求。

  3. 对数据按问题要求设计数据结构。输入(输出)数据的结构与问题有关,而中间数据的结构除与输入(输出)数据有关外,还与处理有关。

  4. 为减少数据冗余,要保证数据一致性,数据文件设计中应考虑关系,亦即各种文件的记录之间的联系。
我们对高级程序员软件设计题的解题方法做了分析,现在我们来分析一道例题。

  ★解答实例

  2000年试题3:阅读以下说明和流程图,回答问题1和问题2。

【说明】

  某供销系统接受顾客的订货单。当库存中某配件的数量小于订购量或库存量低于一定数量时,向供应商发出采购单;当某配件的库存量大于或等于订购量时,或者收到供应商的送货单并更新了库存后,向顾客发出提货单。该系统还可随时向总经理提供销售和库存情况表。该供销系统的分层数据流图中部分数据流和文件的组成如下:

文件

  配件库存=配件号+配件名+规格+数量+允许的最低率库存量

数据流

  订货单=配件号+配件名+规格+数量+顾客名+地址

  提货单=订货单+金额

  采货单=配件号+配件名+规格+数量+供应商名+地址

  送货单=配件号+配件名+规格+数量+金额

  假定顶层图是正确的,“供应商”文件已由其他系统生成。

[问题1]

指出哪张图中的哪些文件可不必画出。
[问题2]
指出在哪些图中遗漏了哪些数据流。回答时用如下形式之一。
(1) X X 图中遗漏了 X X 加工 (或文件) 流向 X X 加工 (或文件) 的 x x 数据流;
(2) X X 图中 X X 加工遗漏了 X X 输入 (或输出) 数据流。


  在顶层图中,供销系统的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子图(图3)中,配件库存文件经过加工1.4更新库存而修改,然后还要为加工1.1和加工1.2提供数据支持,在加工1.1中,通过检查订货单中订购的配件在配件库存中是否有记录,来确定该配件是否属于经销范围,然后以此来确定订货单是否合法。其次,还要在加工1.2中比较合法订货单的数量与库存数量,以此确定是否需要发出采购请求。再次,在发出提货单后,如果库存量低于允许的最低库存量,也要发出采购单。可以看出,在该加工图中,未发现对配件库存文件的不适当的使用。

  在加工2子图(图4)中,在加工2.4核对送货单后要更新库存文件然后加工2.3计算增量提供数据支持,计算出需要采购的配件的数量。应该说这里对配件库存文件的使用是正确的。因此我们可以确定配件库存文件在加工1和加工2中都有应用,画在0层图中是合适的。

  缺货订单文件在试题说明中没有提到,具体的应用需要我们自己分析。0层图中显示该文件被加工1和加工2使用。现在的任务就是确定两个加工中对该文件的使用是正确的。在加工1中缺货订单的数据来自加工1.2和加工1.4,在加工1.2中,接受合法的订货单后,如果订货单上数量大于配件库存文件的数量,将产生缺货订单文件。在加工1.4中,在有货订单送达后,需要交出提货单,然后更新库存。如果库存量低于允许的最低库存量,应该将缺货信息反映到缺货订单中。在加工2中,缺货订单为加工2.3提供部分数据支持,在计算配件增量以明确需要增加的配件的清单时,需要参照缺货订单。结合以上对使用缺货订单文件的分析,可以认为,因此将该文件画在0层图中是有必要的。

我们分析了配件库存文件和缺货订单文件,再来看采购清单。

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

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

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

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

转帖于:软件水平考试_考试吧
文章搜索  
看了本文的网友还看了:
软件水平考试权威辅导教材: 订书电话:010-62168566  更多>>>
网友评论
昵 称: *  评 分: 1分 2分 3分 4分 5分
标题:   匿名发表    (共有条评论)查看全部评论>>
版权声明 -------------------------------------------------------------------------------------
  如果软件水平考试网所转载内容不慎侵犯了您的权益,请与我们联系,我们将会及时处理。如转载本软件水平考试网内容,请注明出处。
关于本站  网站声明  广告服务  联系方式  付款方式  站内导航  客服中心  友情链接  考试论坛  网站地图
Copyright © 2004-2008 考试吧软件水平考试网 All Rights Reserved    
中国科学院研究生院权威支持(北京) 电 话:010-62168566 传 真:010-62192699
百度大联盟黄金认证  十佳网络教育机构  经营许可证号:京ICP060677