2012年下半年软件设计师考试试题分析
【IT168 厂商动态】2009年1月国家软考办发布了《软件设计师考试大纲及培训指南(2009)》,本次考试就是按这个考试大纲来出题的。
在本次考试中,整个试题难度与近几次考试难度相当,出题也紧扣考试大纲,没有超纲试题。虽然试题中有几个死记硬背的东西,但总体上来说,对各知识点的考查方式还是比较灵活的,接近实际应用。
从知识点分布来看,体现了出题的结构化、模块化。与历年相比,各知识点分数比例基本保持平衡。但增加了应用方面的试题,这也符合近年来的出题趋势。其中考试的很多知识点在希赛的辅导中都有提到过、甚至重点强调过,可以说覆盖率达95%以上。参加希赛辅导的学员应该能从我们的授课和模拟试题中切身的感受到这种出题方向。
1.信息系统综合知识试题
2012年11月考试信息系统综合知识试题考查的知识点分布如表1所示。
表1 2012年11月考试信息系统综合知识试题知识点分布

在本次考试中,上午试题具有以下几个突出特点:
(1)本次试题的难度与近几次考试相比,难度相当,各知识点分数比例基本保持平衡。
(2)对于流水线技术的考查,本次考查方式与往年不同,往年都要求求出处理时间、吞吐量等,而这次则主要考查流水线结构,其实更容易。
(3)就整套试题来看,对知识点考查方式的灵活性在提高。
2.案例分析与设计试题
此次考试的试题一至试题四为必答题,试题五至试题六选答一题。从试题考查内容来看,与近几次考试一样。
试题一
该题以电子商务系统为载体来考核考生对数据流图知识点的把握。从题目的问答形式上来看,和往年差不多,仍然是要求补充外部实体、补充数据存储、补充缺失数据流等。
解答这类问题,有两个原则:
第一个原则是紧扣试题系统说明部分,数据流图与系统说明有着严格的对应关系,系统说明部分的每一句话都能对应到图中来,解题时可以一句一句的对照图来分析。
第二个原则即数据的平衡原则,这一点在解题过程中也是至关重要的。数据平衡原则有两方面的意思,一方面是分层数据流图父子图之间的数据流平衡原则,另一方面每张数据流图中输入与输出数据流的平衡原则。
值得注意的是,这次考试中出现了求数据项的内容,数据项是数据字典中的内容,是不可再分的数据单位。对数据项的描述通常包括以下内容:数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系}
数据流图一直是希赛模拟试题训练的重点,各套模拟试题都有对数据流图进行训练,并介绍了相应的解题方法和技巧。
关于数据流图更详细的介绍也可以参看《软件设计师考试考点分析与真题详解(第4版)》第18章 数据流图设计。
试题二
该题是一个数据库设计题,题目以基于网络的会议预定系统为背景。考查E-R模型、E-R模型转关系模式,求解主键外键、模式分解等知识点。像数据库中实体联系、E-R模型、关系模式的候选键、主键、外键、模式分解,希赛的模拟试题中都有该方面知识点训练题。
试题三
该题以预定售票系统为题材,考查考生对UML用例图、类图的掌握。其考查形式是根据题目描述并结合我们实际的工作经验来补充完整用例图和类图。UML中各种图的用法是软件设计师考查的重点,至于UML具体各种图的用法,请参看《软件设计师考试考点分析与真题详解(第4版)》(桂阳、陈勇军主编,电子工业出版社)第22章 UML分析与设计。
试题四
该题考查算法的C语言实现、时间复杂度和应用,试题本身具有一定的难度。本题描述的算法包括最先适宜算法和最优适宜算法。其中最先适宜算法要求按顺序给货物找到一个能容纳它的集装箱,找到即可装箱,这里的关键就在于找到第一个能容纳它的集装箱,从头到尾遍历各集装箱即可;而最优适宜算法则更复杂一些,它不仅要找到能容纳货物的集装箱,而且还要求该集装箱的剩余容量最小。
另外求这两个算法的时间复杂度我们应该根据程序来求,看程序中循环的层次及每层循环的次数来判定时间复杂度。
对于这个题目第3问的求解可以根据题目对算法描述来进行,也应该非常先进行,因为求解出这个实例后,再来完成程序填空,能增强我们对整个算法的理解。。
试题五-试题六
这两个试题考查的知识点是一样的,只是实现的语言不同而已。近年来,下午试题中的面向对象考题模式也非常稳定了,主要就是考的设计模式+程序语言基本语法。这种类型的题需要对所考查的设计模式有一定的了解。如本题的抽象工厂模式,该模式的基本思想是提供了一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式的主要优点是隔离了具体类的生成,使得客户不需要知道什么被创建,由于这种隔离,更换一个具体工厂就变得相对容易。所有的具体工厂都实现了抽象工厂中定义的那些公共接口,因此只需要改变具体工厂的实例,就可以在某种程度上改变整个软件系统的行为.使用工厂模式的最大好处是:当同一个产品族中的多个对象被设计成一起工作时,他能够保证客户端始终只使用同一个产品族中的对象。
其实对于这类题,如果对设计模式不熟悉,只要我们对面向对象编程熟悉,能读懂类图,其实也可以容易的解题。