本文对2006年5月至2014年11月的软件设计师级别下午试题进行汇总统计,希望对准备参加软考的朋友能有所帮助。
试题统计
|
试题一 |
试题二 |
试题三 |
试题四 |
试题五 |
试题六 |
试题七 |
2006年上 |
数据流图/网上作业提交与管理系统 |
UML /客户信息管理系统/类图 |
ER图与关系模式/图书管理系统 |
Web Service |
数据结构与算法/C语言/B树/多叉平衡查找树 |
C++/订单管理系统/涉及到迭代器模式 |
Java/订单管理系统/涉及到迭代器模式 |
2006年下 |
数据流图/建账软件 |
ER图与关系模式/住房管理系统 |
UML/电子商务网站/类图、序列图(顺序图) |
数据结构与算法/最短装配时间算法/程序流程图填空 |
数据结构与算法/C语言/二叉链表 |
C++/传输门/状态模式 |
Java/传输门/状态模式 |
2007年上 |
数据流图/房屋租赁服务系统 |
ER图与关系模式/医院门诊管理系统 |
UML /图书管理系统/类图 |
数据结构与算法/贪心算法/程序流程图填空 |
数据结构与算法/C语言/树型分布网络 |
C++/鸭子模拟游戏/策略模式 |
Java/鸭子模拟游戏/策略模式 |
2007年下 |
数据流图/成绩管理系统 |
ER图与关系模式/小型汽车维修管理系统 |
UML /唱片播放器/类图、状态图 |
数据结构与算法/贪心算法/程序流程图填空等 |
C语言/简化绘图程序/基于结构体的面向对象编程 |
C++/采购审批/职责链模式 |
Java/采购审批/职责链模式 |
2008年上 |
数据流图/音像管理信息系统 |
ER图与关系模式/篮球比赛信息管理系统 |
UML /汽车停车场信息系统/用例图、类图、状态图 |
数据结构与算法/快速排序/伪代码填空、时间复杂度分析等 |
数据结构与算法/C语言/栈 |
C++/家用电器遥控系统/命令模式 |
Java/家用电器遥控系统/命令模式 |
2008年下 |
数据流图/销售管理系统 |
ER图与关系模式/宾馆客房预订子系统 |
UML /在线会议审稿系统/用例图、活动图 |
数据结构与算法/动态规划算法/伪代码填空、时间复杂度分析等 |
数据结构与算法/C语言/单链表 |
C++/文档操作类库/模板方法模式 |
Java/文档操作类库/模板方法模式 |
2009年上 |
数据流图/商品配送中心信息管理系统 |
ER图与关系模式/大型连锁商场数据库系统 |
UML/自动存提款机模拟系统(ATM)/用例图、序列图(顺序图) |
数据结构与算法/最短路径Floyd-Warshall算法/伪代码填空、时间复杂度分析等 |
数据结构与算法/C语言/二叉树遍历 |
C++/图像浏览系统/桥接模式 |
Java/图像浏览系统/桥接模式 |
2009年下 |
数据流图/信用卡管理系统 |
ER图与关系模式/多用户电子邮件客户端系统 |
UML/订餐系统/用例图、活动图 |
数据结构与算法/回溯法求解0-1背包问题/伪代码填空、穷举法等 |
C++/文件目录树/组合模式 |
Java/文件目录树/组合模式 |
数据结构与算法/C语言/栈 |
2010年上 |
数据流图/数据管理中间件 |
ER图与关系模式/实验管理系统 |
UML/售票机/用例图、类图、中介者模式 |
数据结构与算法/C语言/有向图拓扑排序/代码填空、拓扑序列求解、时间复杂度分析等 |
C++/飞机飞行模拟系统/策略模式 |
Java/飞机飞行模拟系统/策略模式 |
|
2010年下 |
数据流图/订单处理系统 |
ER图与关系模式/小区物业收费管理系统 |
UML/网上药店/类图、状态图、组合关系和聚合关系 |
数据结构与算法/C语言/堆排序/代码填空、时间复杂度分析等 |
C++/公司组织结构/组合模式 |
Java/公司组织结构/组合模式 |
|
2011年上 |
数据流图/病人监控系统 |
ER图与关系模式/服装采购管理系统 |
UML/图形编辑器/用例图、类图、桥接模式 |
数据结构与算法/C语言/排序算法/代码填空、时空复杂度分析等 |
C++/饭店菜单/组合模式 |
Java/饭店菜单/组合模式 |
|
2011年下 |
数据流图/招聘系统 |
ER图与关系模式/物流公司信息系统 |
UML/Pay & Drive系统(开多少付多少)/用例图、类图 |
数据结构与算法/C语言/回溯法(类似背包问题)/代码填空 |
C++/纸巾售卖机/状态模式 |
Java/纸巾售卖机/状态模式 |
|
2012年上 |
数据流图/图书管理系统 |
ER图与关系模式/住院病人信息管理系统 |
UML/网上购物平台/用例图、类图 |
数据结构与算法/C语言/作业最优调度算法/代码填空等 |
C++/咖啡店计算费用/状态模式 |
Java/咖啡店计算费用/状态模式 |
|
2012年下 |
数据流图/电子商务系统之购物车 |
ER图与关系模式/会议预定系统 |
UML/小木屋和营地的预定及管理系统/用例图、类图 |
数据结构与算法/C语言/装箱问题(一维装箱问题)/代码填空等 |
C++/多数据库支持/抽象工厂模式 |
Java/多数据库支持/抽象工厂模式 |
|
2013年上 |
数据流图/募捐系统 |
ER图与关系模式/电视台信息管理系统 |
UML/基于Web的城市黄页/用例图、类图 |
数据结构与算法/C语言/任务调度问题/代码填空,时间复杂度分析等 |
C++/自动生成求职简历/原型模式 |
Java/自动生成求职简历/原型模式 |
|
2013年下 |
数据流图/WEB的课程注册系统 |
ER图与关系模式/快递公司物品运送信息管理系统 |
UML/航空会员积分系统/类图 |
数据结构与算法/C语言/多个矩阵相乘的计算任务问题/代码填空,时间复杂度分析,最优调度等 |
C++/开发一个绘图软件/桥接模式 |
Java/开发一个绘图软件/桥接模式 |
|
2014年上 |
数据流图/修车题 |
ER图与关系模式/电商题 |
UML/ 通信图 |
数据结构与算法/C语言/ 归并排序 |
C++/ /观察者模式 |
Java/ /观察者模式 |
|
2014年下 |
数据流图/ | ER图与关系模式/超市管理系统 | UML/选民信息软件管理系统/类图 |
数据结构与算法/C语言/ 代码填空,时间复杂度分析,等 |
C++/ 开发灯具遥控器 /命令模式 |
Java/ 开发灯具遥控器 /命令模式 |
从2006年5月开始(尤其是从2010年5月开始),软件设计师级别的试题题型基本固定:
第二题为数据库分析与设计,主要考查ER图的绘制以及ER图与关系模式的映射,考查形式为补充完成ER图(增加实体、联系、属性以及联系类型)、将关系模式补充完整(属性/字段填空)、找出关系模式的主外键,偶尔考查关系模式的规范化,如将某个关系模式转换为第三范式等;【该题整体难度不大,需认真完成4-6道往年真题,但偶尔有个别小问题需要仔细分析才能回答准确】
从2010年开始,软件设计师考试中取消了单独的C语言试题(融合在数据结构与算法题中)。
考试前的状态尤为重要。上午题虽然很零散,但是很简单,下午题虽然就5道,但是做题时需要认真、认真再认真,答案题中找,好好读题,说不定算法都能懵对几分……做题的时候,要从精神上藐视它,告诉自己这题会做;要从心里重视它,读题时认真、耐心……
试题一:DFD(数据流图)
1.从最近几年考试的情况来看,这题主要考察几个知识点:
1.1 给出外部实体的名称
1.2 给出数据存储的名称
1.3 查找错误的数据流和丢失的数据流
1.4 数据字典部分的考察(2012年下半年DFD最后一问的数据项其实就是考察的数据字典)1.5 问答题,比如2008上DFD最后一问的:面向对象结构设计方法的基本思及其适用场合。
2.做此题的技巧
这题,一般会给出一大段文字,然后给出顶层数据流图和0层数据流图等。我一般读题的过程中,会把读到的名词(可能为外部实体的词)、某某文件之类(即数据存储)、数据流标出来,这样在做问题一、二的时候,数据流图与说明对照,快速、标准的解决知识点1.1和1.2.
查找丢失数据流时,先要做的是顶层和0层图对照,保持父图和子图平衡,即父图中某加工的输入(输出)数据流的数据必须与子图的输入(输出)数据流中的数据在数量和名字上相同。在此基础上,读文字说明,一句句的注意从..到..的字眼,这样就能解决知识点1.3。
数据字典的问题,要知道数据字典各个符号的定义。
对于简答题这样的题目,就凭借项目经验来写吧,尽量多写点,总能达到点上。
试题二: 数据库分析与设计
从历年考题来看,主要有两种形式:一种是文字说明+表格,一种是只有文字说明的。
1.主要考察几个知识点
1.1 补充联系及联系类型,完善实体联系图
1.2 ER图向关系模型的转变
1.3 加个功能再次补充实体联系图
1.4 简答题
2.做此题的技巧
第一遍读题的时候,画出各实体,尽量找出实体间的对应关系。对于给表格的题,表格的标题及表格周围的文字都要认真看,比如时间有可能就是某一实体的属性。
解决1.1的技巧及注意事项:注意审题,不要漏泄联系类型(1:1,1:m,m:n),难点在于一个联系联系三个实体的。读题的时候注意这样的字眼,比如:某某老师对某某学生上某某课。
解决1.2的技巧:先从说明中凭自己的感觉从文字说明及表格中找实体的属性,找完以后,再去看ER图,遵照ER图向关系模型转转换的原则。不要漏写、多些属性值,不要忘记标主键、外键。
解决1.4的技巧:按照自己的经验来,考前先弄懂1-3范式具体的含义。
试题三:面向对象分析与设计
从近几年考察来看,常常给出一段说明,然后附加有用例图和类图,当然也有可能会考状态图。
1.主要考察的知识点
1.1 填写用例名称、依赖关系
1.2 填写类名称
1.3 补充多重度
1.4 对应的状态
1.5 用到的某某设计模式的内涵
2. 解决此类问题的技巧
第一遍读题的过程中,注意各名词,该标的地方标出来。
用例名称一般比较好写,还要注意一点就是:依赖关系。要明白扩展《extend》和包含《include》的用意及箭头方向。
多重度问题跟数据库中的联系类型有点相似,但不要写错,这里多个的时候只能用*表示哦。注意文中给出的数字,可能帮助你解决多重度问题。
状态图各状态的转换也算是比较好找的一类问题吧,主要考察的是细心。
考察某设计模式的内涵的这类问题,要熟悉23个设计模式的含义了。设计模式很重要啊……
试题四:算法题
这类题对我来说难度不小,但也不能掉以轻心,有时候算法考的还是比较简单的,懵都能懵对几分,比如时间复杂度和空间复杂度。可以看看《大话设计模式》,这里面讲的挺明确的。但是算法不是一朝一夕就能提高的,考试之前把几种常见算法看懂就好了,比如各类排序算法、分治算法、动态规划算法、贪心算法、回溯算 法……
试题五:设计模式
这个题算是比较简单的,我选择做java版的设计模式,这个题有点java基础,能看懂类图,即使不懂设计模式也能得分。高中时老师常教育我们这么一句 话:简单全做对,稳坐中档题,舍弃全不会;主要表达的是考试要心态正,乱中求稳,不要第一题做的不好,后面的都做不好了。
考试之前将HeadFirst好好瞅瞅,历年考题出的例子大多与HeadFirst上的例子极为相似。
一定要知道的几点:比如 interface、extends、implements、abstract、super等关键字的写法,注意大小写;注意委托的用法……
保持好心态,乱中求稳,稳中求胜!相信自己,应该没问题的!只能说该做的都做了,大不了重来,一定把它突破!
关于Software Level更多讨论与交流,敬请关注本博客和新浪微博songzi_tea.