陈斌彬的技术博客

Stay foolish,stay hungry

软考之下午题做题技巧

做题的时候,要从精神上藐视它,告诉自己这题会做;要从心里重视它,读题时认真、耐心……

一、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等关键字的写法,注意大小写;注意委托的用法……

保持好心态,乱中求稳,稳中求胜!相信自己,应该没问题的!只能说该做的都做了,大不了重来,一定把它突破!