软件设计师考试经验.docx
《软件设计师考试经验.docx》由会员分享,可在线阅读,更多相关《软件设计师考试经验.docx(16页珍藏版)》请在冰豆网上搜索。
![软件设计师考试经验.docx](https://file1.bdocx.com/fileroot1/2023-1/24/a5dceaf5-930c-4039-baba-6c1f7368909c/a5dceaf5-930c-4039-baba-6c1f7368909c1.gif)
软件设计师考试经验
“软件设计师”考试经验谈
Postedon2008-10-2209:
55龙怀玉阅读(694)评论
(1)编辑收藏
第一部分,关于题型
CASL:
这是每年必考的一个试型, 在下午试题中最近几年都是一个题, 今年不会有什么变化。
依然为一个题,5个空, 每空3分。
C/C++:
C和C++考的试题难度都差不多. 为了照顾应试的各方面的人(再职人员一些都对C了解得多一些,而学生中,学C++也不是少数),今年题型应该还是C和C++各一题,考生从中二选一。
每题5个空, 每空3分.
事务处理类流程图;前几年, 每年必考的一种题型.我想今年至少会考一题.分值,15分。
数据处理类流程图:
这类试题考的思想和CASL差不多,最近两年都没出现,我想今年也不会出现啦。
数据流图:
这种题型在历年试题中出现得比较多,今年出现在考题中的可能性很大。
如果出现,最多只有一题,分值:
15分。
软件测试:
这类试题难度不大, 但是做题时花的时间不少. 与最近几年的考式风格(考素质,考能力)不合, 所以出现的可能性很小,可能会在上午试题中出现。
SQL:
从历年试题来看,这类试题难度不大,.鉴于最近两年都没有出现,所以今年应该不会在下午试题中出现.和软件测试一样,可能会在上午试题中出现。
状态转换矩阵:
在历年试题中,考得不多,好象也就那么两三次,但这类试题出题灵活,难度与问题的难度相关,可大可小,是一种控制通过率的比较好的一种题型.但由于最近两年都没考,所以这类试题考的可能性有但不很大。
新题型:
出年出现了一种新题型,这种题型由于考生对它的无知,所以能在一定程度上的应试学习(与应试教育相关).与考素质,考能力联系很紧.所以出现的可能性很大。
第二部分,各种题型的一般解法:
以下各种解法是本人在最近复习时总结出来的,现在本人把它整理出来,与大家交流。
一、CASL读题时:
1、要切实理解其中的算法说明;2、理解各寄存器在程序中的使用情况;3、推断各变量的作用;
注意事项:
1、存储器的初始化及使用方法。
2、跳转指令的使用,跳在何处,跳的依据。
3、存储单元内容的变化及其含义。
4、变量的灵活使用。
5、注意程序的整体结构和流程。
二、个人的一些经验:
1、CASL, C, 程序流程图(填空部分)都差不多,只是表示形式不同,注这些题时,可以借用一下英语完形填空的一些方法。
(比如,先通读)
我做题时,一般都是跟踪流程,把寄存器的当前值标注在旁边。
这样有助于跟踪寄存器的变化。
2、关于事务处理类流程图:
我把以前的所有这类题拿来归纳了一下,一般都是出以下几种类型的题:
1)完善流程图(一般都是填写文件名)2)分类的关键项;3)错误检测
4)说明处理的功能(及功能的扩充);5)效率问题6)文件的数据项;
一般读题时,要切实理解系统的功能,处理的流程.在解答本大问题时,一般是根据不同的问题,给于不同的解法(这是废话)
1)填文件类:
一般根据填写的位置,确定与其关系最紧密的那个处理(读些方件的处理),分析该处理的功能,前后的数据变化,一般跟据这个处理的前后数据项的差,(处理后的项减速处理前的项),来确定要填文件的数据项,再由这些项和题中的有关信息来确定就填的文件。
2)分类的目的是为了提高下一个处理(称为受益处理)的率效,受益处理一般都是要读写两个及两个以上的文件,所以在确定分类的关键项时,可根据受益处理的的其它文件的关键项或有序项来确定。
3)在历年的试题中我总结出来以下几类:
(1)输入的不一致。
(2)非法字符。
(3)不合理数据(如单价*数量不等于金额)
(4)在库文件中找不到与之对应的项.,(与库中文件不一致)。
(5)其它类型的错误(由于我总结不一定全,也有可能在以后会出现新问题的错误,所以我在此加上这一条)。
4)说明处理功能,有两条依据:
(1)系统的功能。
(2)处理的上下文(就是说处理的前后的变化)。
5)效率问题与文件的有序性紧密相关,还有就是与处理文件的大小相关。
(在历年试题中我就看出来了这两种,如不完全,请各位补充)
一般要求在写文件时,目标文件要有序,如果写的数据比较多时,写的数据也应该有序。
在不同的文件这间比较时,参加比较的文件就有序.
6)文件的数据项;解决这类问题,一般可根据数据守恒。
数据守恒:
写入的每个数据项都是有用的,每个输出的数据项都是有根据的.在参于处理的各个文件中,每个文件都具有承前启后的作用(输入输出文件除外).
承前:
该文件的数据项来源于前面的文件.
启后:
该文件的每个数据项对后面的处理都是有用的.
3、C/C++,程序流程图的解题目思想各CASL差不多,本人就不再废话啦。
4、数据流图:
在历年试题目中好象就只有三类型:
1)删除没有必要的东西(一般是文件)
2)增加该有而没有出现的东西,(一般有数据流,处理中心)
3)局部地方的查错功能。
各问题的解法:
1)根据就一个,只在一个加工中使用的文件,在上层图中不出现;只是在解题时要倍加小心。
2)增加处理中心:
一般都是因为本图不能完成就该做的事,做题时要与关注题中提到的所有功能,及这些功能在各层图中的分布情况;
增加数据流:
根据数据守恒(父图与子图),但这不能解决一些处理的内部处理所缺的数据流,这些数据流只有根据保个处理的功能及其与之相关的数据流,及数据项。
3)错误类型和事务处理流程中的错误差不多。
关于下午试题部分就些结束,从明天开始我就总结一下上午有关的试题。
知识点
2000
2001
2002
2003
2004上
面向对象
0
0
3
2
3
数据结构
5
10
10
10
11
程序设计语言
5
5
5
5
4
数据库
5
5
9
5
5
操作系统
10
5
5
5
5
软件工程
10
10
12
8
9
信息技术与信息安全
0
0
2
9
6
多媒体
5
5
6
3
4
计算机体系结构
20
20
8
8
8
网络
5
5
5
8
7
离散数学
0
0
0
2
3
外语
10
10
10
10
10
合计
75
75
75
75
75
历年软件设计师考试下午试题知识点分布如下表
题号
2000
2001
2002
2003
2004
1
事务处理流程图
事务处理流程图
事务处理流程图
事务处理流程图
数据流图
2
算法流程图
数据字典和数据流图
数据流和状态转换图
数据库设计
算法
3
数据字典和数据流图
CASL语言
工作流设计
数据流图、面向对象类设计
UML的用例图
4
CASL语言
C语言(M叉树)
CASL语言
CASL语言
CASL语言
5
C语言(字符串设计)
C语言(地图着色)
C语言(背包问题、递归)
C语言(哈夫曼算法)
C语言(二叉排序树删除操作)
6
C语言(最短路径)
C++语言(多项式乘积、链表)
C++语言(弗洛伊德(Floyd)算法)
C++语言(类模板,数组下标越界的判断)
说明
1~3题选2
5、6题选1
5、6题选1
5、6题选1
我今年10月13日参见了计算机水平考试的高级程序员级别考试﹐当时报考的目的是想通过资格考试,获得工程师职称,就不用准备大量材料去参见评审了,并且又通过准备考试学到了些知识。
我本来不是计算机专业毕业的的,是学工业自动化的,但现在在计算机行业工作,以前在学校时过了计算机2级(FOXBASE),在学校里学过《微机原理》、foxpro,自学过PB、HTML,今年5月份通过了CCNA640-607,在准备本次考试之前没有学过C、CASL和软件工程等。
今年的软件水平考试的我考得并不理想,但也有可能过,自己估计上午考得稍微好一点,应该没问题,下午考试成绩在40-50之间,第四题CASL全对了,第五题C因为没有时间了,简单看了看就填上答案了,出来后仔细想了一想,全错了。
本次将准备学习和考试过程中的一些经验教训简单地总结了一下﹐以备自己明年参加考试或者其他网友参考,不对的地方希望指正。
明年我一定还会参见软件考试的,如果今年高程过了,我明年就考网络设计师或系统分析员,因为相对CCNP、ORACLE等认证,软件考试便宜多了。
我的想法是证书越多越好,知识面越宽越好。
一、学习准备时间:
我是8月份开始准备考试的,利用前两个月(8月初-9月20日)学习C语言、CASL和数据结构,9月20日-30日学习程序流程图、数据流图等准备下午前几道题,10月1日-7日看高程的教程(清华大学出版社)准备上午题,10月7日-12日复习准备考试。
因为我已经工作了,只能在晚上和周末学习,加起来用的时间也不多,只是在国庆节放假期间到自己家附近的一所大学中整整奋斗了7天。
现在来看我用的时间确实是少了,但学习的顺序是正确的。
建议其他网友用3-4个月左右的时间准备高程的考试,具体是学习C语言1个月、数据结构3周、CASL汇编3周、程序设计(流程图)3周、基础知识3-4周、复习2周。
具体的学习重点和方法请看下面。
二、上午考试准备:
从2002年的考试题来看,上午的试题向增加广度及注重能力方向发展,数据结构算法分析和软件质量、软件项目管理、面向对象方法等方面的试题的比重增加了,计算机硬件基础知识的比重减小了(以前是教程上100页的内容有20分)。
上午题难就难在没有重点上,随便教程上的一段内容就可能是一道题,在准备考试时一定要把教程详细的看一遍,但是也并不是简单的“随便”,一般情况下去年考的内容今年就不能考了,可不做重点学习(我没有说不学了,即使考了,因为我们已经做过该类型的题,拿分也容易),在看教程时要想一想这段内容能出什麽题目,并记录在笔记上,待复习时用。
还有一个重点就是我今年忽略的软考办发布的“软件考试备考参考”和练习题,参考中可能透漏一些考试范围,比如今年的,基本上是一句话一道题:
高级程序员级上下午各2个半小时。
上午试卷有75空选择题,内容包括:
数据结构(如树的定义、存储和操作,常用的排序算法等),程序语言及编译知识(如
有限自动机与正规式等),操作系统理论知识(如进程、资源管理方法等),软件工程基础知识(含开发方法,概要设计,详细设计,软件测试,软件能力成熟度模型CMM等),数据库基础知识(包括关系代数表达式和SQL的使用),多媒体基础知识,网络基础知识,面向对象开发方法,信息安全,计算机体系结构,存储器系统,计算机专业英语(注重阅读理解资料)
1﹑程序语言处理(文法和编译)﹕这是个难点,不好理解﹐只能“照葫芦画瓢”做一些类型题(比如求句柄、比较最优算符、求推导或归约树、NFA-DFA的转换等)。
2﹑软件工程﹕向目前软件发展趋势一样,注重软件质量和软件项目的管理,这块的考试内容可能超出教程,要看一些其他的资料。
3﹑数据结构和算法﹕数据结构和算法是程序的基础,也是考试的重点,应重点学习,因教程中这方面的内容很少,要看其他资料(比如大学的数据结构教程),很要重点学习理解算法及时间复杂度等﹐今年几个算法的题我都是猜的。
对一些常用的算法(如递归、二分查找、快速排序等)一定要深入理解,并且能自己编制出利用该算法的程序,在编程、调试、完善程序时加强理解。
4﹑计算机英语﹕英语主要看基础,没有什麽好的建议,平时多看一些计算机英文资料。
5、计算机硬件知识:
内容不多但占的分数不少,重要的是详细理解教程上的每段内容,通过重点学习,尽量使在这块内容丢分最少。
6、多媒体和网络知识:
经常考一些教程外的内容,但都是常见的,除学习教程中的内容外还需扩大知识面,平时多积累。
我今年没有学习教程中这方面的内容,靠的是平时的积累。
7、数据库和操作系统:
分数比较少,内容比较难理解,总结一下各部分的知识点和考点,重点学习。
三、下午考试准备:
1﹑CASL汇编﹕是下午题的重点,因为这道题得满分相对其他题容易,一般这道题能得满分,就通过考试了。
在准备学习时一定要熟练掌握,在平时能会做的题在考试中不一定完全答对。
注意掌握常用的算法(如ASCII码字符转换、移位、双层循环等),还要注意不要用错指定(如LEA/LD,JMI/JNZ,SSL/SLA等)。
2﹑C/C++:
主要是熟练,熟能生巧。
另外,重点掌握常用算法的C/C++程序。
3、程序设计题:
该部分题我看主要考智力,没什麽知识点。
主要掌握一下各种流程图,会完善和改错。
四、考前复习:
在考前的2周内要把所有内容全部复习一遍,在做往届试题和练习题时要注意“做题的质量”,在每做一道题后一定要仔细分析,要问一下自己“得到了什麽”。
还有在考试前多上网查一些资料和“小道消息”等信息,不要“闷头学习”。
五、考试经验:
考试时一定要思路清晰、细心,个别问题在答题时要想一想出题者的意图。
上午题的答题时间比较充裕﹐下午的时间又可能不够用,要特别注意时间时间的安排,一般情况下是前3道题用65分钟左右,不能超过80分钟,CASL用30-40分钟,C/C++用30-40分钟,15分钟写答案,10-30分钟检查,可能因为某个题不熟或不会时间会长一些,这样只能牺牲检查的时间了。
我今年就是CASL刚开始看错题了,以为还有10以上的数需转换,这道题花费了我50分钟,最后来不及做C语言的的题卷了,心慌意乱的草草的填了几个空,都错了。
我的经验是做题时一定要镇定,不能心慌,如慌了就完了。
你要相信经过仔细考虑一定能做出正确的答案的,一个角度考虑不出结果,换一个角度考虑。
在答C/C++语言或CASL题时,一定进行验证(边值分析法进行测试)。
以上,是本人的一点经验,希望共分享,共同提高!
上个月查了一下软考的成绩,软件设计师(原高级程序员)上午:
45下午:
50,正好通过!
感觉是很幸运,而且是第一次报,一次性通过,也没有什么辅导,就只读了两三个月,以前本以为通过率只有20%好像很难的样子,看来世上无难事呀!
不过有同学就说了,现在的软考水平一年不如一年了,我却不这么认为,不要说我这是在心时安慰!
首先,说那种话的人自己应该没考过吧!
或者是改革后考过的!
改革后软件设计师下午试题取消CASL汇编,于是有些人就觉得很容易,其实,改革前的汇编是送分题,是基础,基于一些人不会汇编,那我就没什么话好说了,为什么会取消汇编呢,因为现在CASL汇编没什么用了,当然,我是说经济和技术方面,不要骂我!
不过改革后的题目年年在变,可不像改革前只有五种题型:
数据流图、程序流图、CASL汇编、C算法题,C++算法题等等。
不过以前的C算法还是有点难度的(我做过99-2004的所有高程历年真题!
)。
而改革后呢?
数据流图还是有考(难度适中,和以前差不多),程序流图有考,比以前的难(我考的那次是电路布线算法的程序流程),CASL汇编取消,取代的是……题目会变,04年上半年和下半年都是考UML图,于是害我一直在眷眷不休的强练我的UML基础功,把那9个图看的是倒背如流,结果到好,我那次他又不考UML,我看完试卷差点当场吐血!
04年两次好像都是把C和C++还有JAVA让你选一题做,但我考那次的五道题型如下:
第一题是数据流图,一如既往的简单,不过我粗心错了几空;
第二题是数据库题目,我第一眼看过去差点没晕倒,早上刚考了一题,下午又考,不知道出试卷的在想什么!
第三题是程序流和图(电路布线算法的程序流程),这题我个人感觉比较难,因为第一眼看完,没什么感觉,这就完了,编程感觉最重要,第二眼一看,就看到原来是个选择题,晕,这不是天上掉下的馅饼吗?
不过虽然是选择,也没那么容易的,很多选项都很相似,这就要看你的C语言功底了;
第四题是C语言算法题!
本来本人对自己的算法功底是自以为了不起了,于是草草结束了本题,但考玩回去认真研究了一下,天啊!
五个空我错了三个,一个空三分,我一下子就去了九分,呜呜……
最后一题是基础语言题,C++,JAVA,VB,你各自选一个,当我看到VB的时候,差点晕死,不过我还是选了JAVA,题目非常简单,只要有学过都会做,都是书里面的,不像上面的几题!
最后总结一下,什么人可以去考软件设计师。
在校的大学生(计算机专业)一般大一进去都是混日子的,所以还是大二再说吧(那当然不排除高中有点基础的,不过我想应该不会过吧!
);大二有上点专业课,但在那些垃圾教师的带领下,我看也是不怎么样的,所以一切留到大三吧!
大三好,没英语课了,可以安心读英语,想考研的明年7月再念,来得急(虽然软件设计师早上有10分的英语题,不过我想应该不会难倒大学生的,再怎么说也是天之骄子,像我一样,哈哈哈……)
其它专业我就不知道了,已经工作的话,好像早上的试题会有点难度,对于在校大学生来说,早上不是问题,下午问题最大
专业方面,首先C语言功底要好,数据结构不用说了,算法很重要,这门课要认真听,不要以为这个不重要,你说你会编程,什么狗屁图书馆系统,简单的动态网站!
我不用几天就可以搞定,而且还做的很漂亮(我对自己的美工很有自信,在IT里面又会编程又会美工的真的很少……观众:
狗屁,臭美),告诉你,那跟本没什么技术,只会这些,那你毕业就等着失业吧!
一般大公司进去先都是面试你算法怎么样,像Delphi,JBuilder,VC++这些工具,等进公司两下就学会了!
所以算法很重要!
其它的就是操作系统了,想当初我上操作系统的时候,我都不知道老师长什么模样,但书上现在还留有我当时留下来的口水印,当然,大家可别学我,我到后来可背的很惨;软件工程,是一个很重要,而我又是在大学没怎么听的课,所以,我也是很痛苦过来的!
都是背的!
本人推荐自考本科的那本软件工程书籍,什么,你已经是本科了,干什么,是本科就不能读那本了吗?
我也是本科的,现在本科那么多,你又学到了什么,在大学不是会谈恋爱,就是会打游戏,还能干什么?
不过那本书真的很好,做完练习后你会有很大的进步的!
买书方面,其它清华那本就可以了,再加上历年真题,千万别买其它题目,都是从真题里面抽的,而且很多印刷错误!
中国的出版社也真是的,老是出烂书,虽然中国人的脑容量略大于其它人种,但没有后天的补助,还不是笨蛋一个!
其它嘛!
好像没有了,那我就说一下本人近期的目标吧!
明年本人要报系统分析员,争取一次性过,然后去考一门JAVA认证,再去上海LOOK一下,近期就这样了
我今年5月23日参加了计算机水平考试的软件设计师(高级程序员)级别考试,当时报考的目的是想通过该级别的考试,证明自己的水平,工夫不负有心人,考了54/54。
我考了两次,第一次是去年10月份考的,考了42/52,上午差三分而与高程无缘。
我想将这两次准备学习和考试过程中的一些失败和成功的经验教训简单地总结了一下﹐以让今年下半年参加软件设计师考试的网友作为参考,不对的地方希望提出指正。
从来没有上网查过什么资料。
着也许是第一次考试上午不过关的原因吧。
而今年上半年考试,我除了做题,上网查资料成了我每天的必修课,有好多问题应该都是从网上得到解决的,我印象最深的就是NFA-DFA的转换了。
我也不知道请教了多少人,得到的都是比较模糊的答案,但到网上搜索了一下,才发现我也可以做这类题目。
有许多参加该考试的因为上午没有通过而没有通过,因此我建议大家对于基础知识部分,除了看教程和历年试题之外,还要注重网络资源的利用,计算机行业不同于别的,发展很快,所以说任何书本不可能跟上它的最新动态,因此,参加该考试之前,必须关注网上最新动态。
对于上午试题,我想对于各方面的知识主要有以下注意点:
1﹑程序语言处理(文法和编译):
这是个难点,不好理解型题,多做一些求句柄、比较最优算符、求推导或归约树、NFA-DFA的转换等。
2﹑软件工程:
和目前软件发展趋势一样,注重软件质量、软件项目的管理以及风险分析,新的考纲又增加了软件法这一内容,要引起重视。
3﹑数据结构和算法:
数据结构和算法是程序的基础,也是考试的重点,应重点学习,要重点学习理解算法及时间复杂度等﹐对一些常用的算法(如递归、二分查找、快速排序等)一定要深入理解,并且能自己编制出利用该算法的程序,在编程、调试、完善程序时加强理解。
4﹑计算机英语:
英语主要看基础,看历年试题不妨是一个好的办法,还有平时多看一些计算机英文资料。
5、计算机硬件知识:
内容不多但占的分数不少,重要的是详细理解教程上的每段内容,通过重点学习,尽量使在这块内容丢分最少。
6、多媒体和网络知识:
经常考一些教程外的内容,但都是常见的,除学习教程中的内容外还需扩大知识面,平时多积累。
7、数据库和操作系统:
分数比较少,内容比较难理解,总结一下各部分的知识点和考点,重点学习。
对于基础知识部分,我最后的建议就是多研究考纲,分析其中的变化,对于变化了的部分,要多加研究,多猜测它的出题点,对于新加的部分,要将教程相应部分看熟。
另外还要注重利用网络这宝贵的资源。
对于下午试题,我个人认为,这部分考试的难度比较大。
因为基础知识部分可以通过大量练习而很快提高,而能力主要靠平时的培养,虽然大量练习也能提高,但效果不是最好的。
我这里想说的是,练习是要做的,但要有针对性,不要做大量练习,那样不会有太好的效果,我建议只做近3年的就够了,而且要认真并注意总结地做,那样才会有效果。
对于填程序题,主要提高的方法是平时多读C程序,多研究算法,可以将做过的题填好后,再多读上几遍,很有启示作用的。
现在又增加了面向对象这一块,我觉得需要对这一块要引起重视,从最近两次的试题可以看出。
对于最容易丢分的设计题和分析题,我认为开始时可以先做一年的,然后对着答案看看主要的答题思路,其中还是有许多相似之处的。
在这个基础上继续做一年,然后可以慢慢自己独立做一年的,看看自己是否有提高。
我相信按我的方法,你的提高会很快的。
应大家要求我就把考高程的一点心得写出来,希望对大家有所帮助。
先说考点吧,我就按官方教程的顺序来讲。
每一章我都把难点并且是重点的内容提一下,我提到的这些内容一定要理解透彻。
第一章计算机系统知识
这一章看官方教程就可以了,不需要看其它的教材。
如果其中有难以理解的问题,可以上网查阅。
p17--p20高速缓存中的地址映像方法和性能分析
p21--p22软盘硬盘的容量计算方法(格式化和非格式化)
p24--p25cisc/risc两个指令系统的不同
p29--p30dma作用的过程和特点
p31流水线的作用原理
p34--p38几种类型的处理机的按flynn法分类各处于那种类型
p41--p48对称加密不对称加密原理及其代表算法认证模型和加密模型的工作流程密钥管理数字签名和数字加密的过程和区别ssl和
数字时间戳技术
第一章的其它内容一般都是记忆的。
第二章程序设计语言基础
很多人都不喜欢编译原理,如果你能静下心来看一遍绝对可以看懂(我推荐清华的那本编译原理),这一章考得比较少。
p84--p89确定性有限自动机不确定性有限自动机和正规式之间的相互转化一般每次都有2--3分的题
编译原理其它的部分可以不用看了,除非你想深入了解,如果非要看你就看一下90--98的语法分析
第三章操作系统知识
这一章最好是买本操作系统的教材,因为官方教程上写的不够清楚
p121--p123进程和程序的不同(不要简单地背要理解)
p123--p125进程的三态和五态模型(这个