文档介绍:软件设计师前言
软件开发教研室
2009下半年软考软件设计师试题分析
软件设计师2009年下半年(11月14日)的考试是2009版新大纲实施之后的第二次考试,整个试题难度较前几次容易,出题紧扣大纲、没有超纲题。
现在的出题都是严格按模板进行的,基本规范化到了哪一题考哪一方面的知识点。我们将对此次考试的考题知识点分布进行分析总结,并指出下午设计试题的答题要点及参考资料。
1、计算机与软件工程综合知识试题
在本次考试中,上午试题具有以下几个突出特点:
(1)本次考试中出现了不少历年系分考过的试题,如“CA认证”、“PV操作”、“数据库恢复的概念”等,这说明不同级别之间的试题交叉度将进一步扩大,对于要求相同的知识点不同级别将出现同样的考题,希赛教育的模拟试题也将针对此现象做一些局部的调整,以便更加切合考试。
(2)试题分布情况越来越稳定,软件工程、面向对象以及数据结构与算法占到整体比例的近50%。
2. 软件设计
此次考试的试题一至试题四为必答题,试题五至试题七选答一题。从试题考查内容来看,做了一个小的调整,原来的试题四C语言试题考查的是数据结构方面的内容,本次修改为了C语言实现的算法设计,而C语言数据数据结构题调整到了试题七,作为选答题出现。这样的调整是比较合理的,因为对于一个软件设计师而言,程序语言以及算法都是需要掌握的。算法通用性较强,所以作为必答题。而对程序语言的掌握存在差异,对于C语言程序设计而言,需要掌握基本数据结构+C语言语法,而对于面向对象程序设计而言,需要掌握设计模式+程序语言语法。
试题一
该题以银行信用卡管理系统为载体来考核考生对数据流图知识点的把握。从题目的问答形式上来看,和往年一致,仍然是要求补充外部实体、补充缺失数据流、找出错误数据流、补充加工处理。
解答这类问题,有两个原则:
第一个原则是紧扣试题系统说明部分,数据流图与系统说明有着严格的对应关系,系统说明部分的每一句话都能对应到图中来,解题时可以一句一句的对照图来分析。
第二个原则即数据的平衡原则,这一点在解题过程中也是至关重要的。数据平衡原则有两方面的意思,一方面是分层数据流图父子图之间的数据流平衡原则,另一方面每张数据流图中输入与输出数据流的平衡原则。
试题二
该题是一个数据库设计题,题目以多用户电子邮件客户端系统为背景。考查E-R模型、E-R模型转关系模式,求解主键外键等知识点。像数据库中实体联系、E-R模型、关系模式的候选键、主键、外键,第一、二、三、四、六套均有该方面知识点训练题。
值得注意的是本题中出现了一个不常考的概念:“弱实体”。一个实体的键是由另一个实体的部分或全部属性构成,这样的实体叫做弱实体。知道这个概念也就能解答出该问题。
试题三
该题以订餐系统为题材,考查考生对UML用例图、活动图的掌握。UML中各种图的用法是软件设计师考查的重点。至于UML具体各种图的用法,请参看《软件设计师考试考点分析与真题详解(最新版)》(王勇、唐强主编,电子工业出版社)第22章 UML分析与设计。
试题四
该题考查用回溯法求解0-1背包问题,回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择(走不通就退回再走这个过程就是回溯)。回溯法是软件设计师需要掌握的一种常用算法,此外还需要掌握的有:迭代法、穷举法、递推法、递归法、贪婪法、分治法。这些方法的详细说明,及具体算法实例请参看《软件设计师考试考点分析与真题详解(最新版)》(王勇、唐强主编,电子工业出版社)第24章常用算法设计(同时该章也用多种算法对背包问题进行了算法实现)。
试题五-试题六
这两个试题考查的知识点是一样的,只是实现的语言不同而已。近年来,下午试题中的面向对象考题模式也非常稳定了,主要就是考的设计模式+程序语言基本语法。这种类型的题需要对所考查的设计模式有一定的了解。如本题的组合设计模式,该模式的基本思想是将对象以树形结构组织起来,以达成“部分-整体”的层次结构。这种模式的优点在于:使客户端调用简单,客户端可以一致的使用组合结构或其中单个对象,用户就不必关系自己处理的是单个对象还是整个组合结构,这就简化了客户端代码。同时这种模式使得在组合体内加入对象部件变得更容易,客户端不必因为加入了新的对象部件而更改代码。题目中的实现主题正是“构造一文件/目录树”,这是组合设计模式的经典实例。
试题七
该题是一个C语言描述的数据结构试题,考查的是数据结构当中的“栈”。解答本题需要对栈有基本的了解,如栈有什么特点,入栈操作与出栈操作分别是怎么进行的。相关知识请参看《软件设计师考试考点分析与真题详解(最新版)》(王勇、唐强主编,电子工业出版社)第1章数据结构基础。
栈结构的具体实