本文对2006年5月至2016年5月【11年,21次】的软件设计师级别下午试题进行一个简单的汇总统计,希望对准备参加软考的朋友能有所帮助。
从2006年5月开始(尤其是从2010年5月开始),软件设计师级别的试题题型基本固定:
(1) 第一题为结构化分析与设计,主要考查数据流图DFD的绘制,考查形式为顶层数据流图和0层数据流图填空(外部实体/数据源、数据存储/文件、加工处理/数据变换填空)、找出遗漏的数据流或者错误的数据流,偶尔考查数据流图的一些绘制要点,如分层数据流绘制需要注意的问题等;【该题整体难度不大,需认真完成4-6道往年真题】
(2) 第二题为数据库分析与设计,主要考查ER图的绘制以及ER图与关系模式的映射,考查形式为补充完成ER图(增加实体、联系、属性以及联系类型)、将关系模式补充完整(属性/字段填空)、找出关系模式的主外键,偶尔考查关系模式的规范化,如将某个关系模式转换为第三范式等;【该题整体难度不大,需认真完成4-6道往年真题,但偶尔有个别小问题需要仔细分析才能回答准确】
(3) 第三题为面向对象分析与设计,主要考查对常用UML图形的掌握情况,比较常见的图形包括用例图、类图、顺序图、活动图和状态图,考查形式为图形填空,附带考查UML的一些基础知识,例如类图中的几种关系及其区别、用例图中用例之间关系的内涵等;【需要熟练掌握常用的UML图形,尤其是用例图和类图,偶尔还包含一道与设计模式有关的小问题】
(4) 第四题为数据结构与算法,主要考查对常用数据结构和算法的掌握情况,通常考查一些中等难度的算法,例如最短装配时间算法、B树、贪心算法、动态规划、回溯法、背包问题、最短路径、拓扑排序、堆排序等,考查形式为C语言代码填空、复杂度分析(时空复杂度)、算法稳定性分析等;【该题为下午试题中难度较大的一题,需要熟悉一些常用的算法和C语言的语法】
(5) 第五、六题为C++和Java(设计模式题,二选一),从2006年开始该题主要考查对常见设计模式的掌握情况,该试题通常会结合一个设计模式实例,给出实例描述和类图,然后进行程序代码填空,有C++和Java两个语言版本,二选一,只要有相关的设计模式基础,解答该题难度不大,没有设计模式基础也不用担心,只要认真理解其设计和实现意图,还是可以正确解答本题;【该题难度不大,有一定的设计模式基础将有助于理解和解答本题】
(6) 从2010年开始,软件设计师考试中取消了单独的C语言试题(融合在数据结构与算法题中)。
具体统计情况如下表所示【因篇幅限制,原题并未一一列出】:
试题统计
|
第一题 |
第二题 |
第三题 |
第四题 |
第五题 |
第六题 |
第七题 |
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年下 |
数据流图/课程注册系统 | ER图与关系模式/物品运送信息管理系统 | UML/航空公司会员积分系统/状态图、类图、设计模式(状态模式) |
数据结构与算法/C语言/矩阵链连乘问题(动态规划)/代码填空,时间复杂度分析等 | C++/绘图程序/桥接模式 |
Java/绘图程序/桥接模式 |
|
2014年上 |
数据流图/巴士维修系统 | ER图与关系模式/电子商务公司信息管理系统 | UML/图书馆管理系统/类图、通信图、设计模式(策略模式) | 数据结构与算法/C语言/归并排序(分治算法)/代码填空,时间复杂度分析等 | C++/实验室环境监测系统/观察者模式 |
Java/实验室环境监测系统/观察者模式 |
|
2014年下 |
数据流图/披萨信息系统 | ER图与关系模式/超市信息管理系统 | UML/选民信息管理系统/类图、多重度 | 数据结构与算法/C语言/最长递增子序列(动态规划)/代码填空,时间复杂度分析等 | C++/灯具遥控器/命令模式 |
Java/灯具遥控器/命令模式 |
|
2015年上 |
数据流图/考试系统 | ER图与关系模式/足球联赛信息管理系统 | UML/物品拍卖网站/类图、设计模式(组合模式) | 数据结构与算法/C语言/n皇后问题(回溯法)/代码填空,代码输出等 | C++/图书管理系统/访问者模式 |
Java/图书管理系统/访问者模式 |
|
2015年下 |
数据流图/在线作业批改系统 | ER图与关系模式/办公自动化系统 | UML/网上商店/用例图、类图 | 数据结构与算法/C语言/最长公共子串(动态规划)/代码填空,时间复杂度分析等 | C++/收银软件/策略模式 |
Java/收银软件/策略模式 |
|
2016年上 |
数据流图/会议预订系统 | ER图与关系模式/商城信息管理系统 | UML/虚拟世界仿真系统/用例图、类图 | 数据结构与算法/C语言/电路布线问题(动态规划)/代码填空,时间复杂度分析等 | C++/地址信息类/适配器模式 |
Java/地址信息类/适配器模式 |
|
设计模式试题单独统计
2006年上半年 |
迭代器模式 |
2006年下半年 |
状态模式 |
2007年上半年 |
策略模式 |
2007年下半年 |
职责链模式 |
2008年上半年 |
命令模式 |
2008年下半年 |
模板方法模式 |
2009年上半年 |
桥接模式 |
2009年下半年 |
组合模式 |
2010年上半年 |
策略模式 |
2010年下半年 |
组合模式 |
2011年上半年 |
组合模式 |
2011年下半年 |
状态模式 |
2012年上半年 |
装饰模式 |
2012年下半年 |
抽象工厂模式 |
2013年上半年 |
原型模式 |
2013年下半年 |
桥接模式 |
2014年上半年 |
观察者模式 |
2014年下半年 |
命令模式 |
2015年上半年 |
访问者模式 |
2015年下半年 |
策略模式 |
2016年上半年 |
适配器模式 |
【作者:刘伟 /lovelion】