软考大题做题技巧——数据流图、数据库E-R图、UML、算法、设计模式(干货!)

小编在软考最后一周,破釜沉舟的学习软考的大题,找到了一些大题的做题技巧,特此分享给大家,希望所有参加软考的同学都能尽自己百分百的努力,收获最好的结果。

做题时可以重点找一下每类问题考察的考点以及提问问题的形式,然后分析解题的方法。

【一】数据流图题:

本题考察的是软考书上第六章,结构化开发方法,主要是数据流图相关内容,重点难点部分是关于加工与数据流的相关知识,以及一些数据流平衡和数据流是否异常等问题。

问题题型解决方法
问题一找外部实体(E1,E2…)根据题意,找到外部的人、物、其他系统,提供输入或者输出数据流的名词
问题二找数据存储(D1,D2…)本题比较简单,一般看见0层图中与数据存储有关的数据流上标的是什么,就在其名称后边加上:(信息)表 即可,如:数据流上是路线线索,则其指向的数据存储为:路线线索信息表
问题三找缺失数据流做题技巧:(1)注意数据流有5种:1>加工——>加工;2>加工——>数据存储;3>加工——>外部实体;4>外部实体——>加工;5>数据存储——>加工;切记,数据流不会出现实体——>实体,或者数据存储——>数据存储。(2)根据题意看清有哪些操作,对应什么功能,确定数据流信息以及数据流的起点和终点。
问题四此问题一般是比较灵活的题,常见的题型有几种具体看下边的类型分析

 类型分析:

问题四类型一解决方法
分解加工根据题意找到本操作的描述中的动作以及标点符号的断句
增加外部实体看要求将有关的数据流(合并)的终点,指向增加的外部实体。有需要流出的数据起点为增加的外部实体
父图和子图平衡问题(1)要保证父图子图的输入和输出数据在数量和名称上一致。(2)三种不平衡的情况:黑洞:有输入无输出;奇迹:有输入无输出;灰洞:输入不足以支持输出
写数据流的数据项根据题意找到该数据流涉及到的数据项     

【二】数据库E-R图:

此大题主要考察的是数据库章节中的有关关系模式部分的内容,关于各种联系,以及主键外键,或者其他相关问题。

问题题型解决方法
问题一补充实体联系图,并写出联系以及联系的类型根据题的描述,找到实体与实体之间的联系,联系的类型有:1:1;    1:n (或1:*);n:m(或 * :*)
问题二补充关系模式

(1)根据题目给出的,以及关系1:1,1:n;n:m。

(2)注意将1:n的“1”写到“n”中,如部门:员工=1:n,需要把部门号写到员工(员工号,部门号...)这个关系模式中。

(3)多对多(n:m)的关系,要将关系单独形成一个关系模式:如:多名教师可以教授多名学生,则有教授(教师号,学生号)这个关系模式

问题三写出完整性约束:主键、外键

主键:唯一标识一个元组的

外键:在此关系中包含此属性,且此属性在另一个关系中为主键,则称此属性为此关系的外键

问题四问题四是本大题的最后一个问题,比较灵活具体看类型分析

 E-R图问题四类型分析:

问题四类型一解决方法
添加实体,再补充实体联系图

注意:如果需要添加弱实体(双矩形),则其关系是弱关系(双菱形)。

注意:弱实体依赖于强实体,有强实体存在,弱实体才能存在

增加某些信息,需不需要添加实体

此类问题开增加的信息是描述谁的,就作为谁的属性,如果关系图上有,则不需要添加实体。

注意:如果是“抽出来”的关系,也可以有属性

不同对象的属性命名都为“编号”,命名冲突吗?答:不冲突,命名冲突是对同一个对象而言,是指同一对象在不同关系模式中命名不同,在合并E-R模型时就产生命名冲突,如:教师这个对象,在教师表中命名为“教师编号”,而在职工表中却命名为“职工编号”,这就是同一对象在不同表中的不同命名,如果两个表需要合并,就会出现命名冲突。
模式中存在什么问题?     此问题要考虑关系模式的三范式是否满足,不满足会存在冗余,则要拆分关系模式
简单属性与复合属性简单属性:不可再分的;复合属性:可以细分为更小的部分,如:通信地址:可以进一步划分为邮编、省、市、街道等...

【三】UML图题:

本题考察为软考书上第七章面向对象中UML部分,重点有:用例图,类图,以及涉及到的八种关系。状态图,活动图等也有考过,最好是都能掌握。

问题题型解决方法
问题一对象题目,找参与者,找用例

注意:(1)参与者一般是人或物,名词;用例一般是动作,功能

(2)找用例时,注意extends 和 include 关系,突破口。1、  a------->b (extends)关系,则a是拓展出来的用例,“b是被拓展的”;’如:打印订单(a)------->订单(b)(extends)。2、a------->b(include)关系,则"b是被包含的”,如:查询(a)------->查询学生表 、查询教师表....(b)

问题二对应题目和类图找类

突破口:特殊的关系:泛化 / 继承、聚合、组合、依赖等,对应题目信息确定具体是哪个类

问题三确定题目给出的属性/方法属于哪个类对应题目中的描述,和类图结合,确定属性属于哪个类
问题四其他题目具体见下列表格,类型分析

UML题中其他问题:

    问题    解决方法
根据题中的类图,确定使用了哪种设计模式?为什么?一定要看类图,不能根据自己的主观判断。此前考过的有桥接模式、中介者模式等
多重度问题

(1)多重度:表示一个类的实例与另一个类的多少实例发生关联

(2)需要在题目描述中,寻找关联两端的类之间的关系,双向都要考虑

(3)区分0..*(可以取0、1、多),1..*(可以取1、多),*(不可以取1,必须是多个),1,0..1(0或者1),0..2/3

聚合和组合的区别
用例的基本事件流和备选事件流基本事件流:描述该用例的基本流程,指每个流程都“正常”运作时所发生的事情,没有任何备选流和异常流,而只有最有可能发生的事件流;
   其他(备选)事件流:表示这个行为或流程是可选的或备选的,并不是总要总要执行它们;

【四】算法题:

首先要先了解四大算法的思想和特点,然后重点是依照题意去走代码,并且,算法题一般问题二,是问什么算法,这个根据题意和算法的特点就能做出来,问题三一般都是一个例子,这个题一般根据题意就能做出来,并且还能根据这个问题,去走代码,更好的理解代码。

简单说一下每个算法的思想和特点,以及一般的考察点或题目特点:

算法思想特点题目特点考点

分治法

分而治之,分解,求解,合并

(1)递归

(2)折半

(3)分而治之,分解,求解,合并

一般都是折半问题会考察分治法的递归式和时间复杂度

动态规划法

求最优解,每一种情况都会记录(最优子结构),(通过重复子问题)最后找到最优解

(1)最优子结构——出现式子

(2)重复子问题

(1)出现动态规划的式子(最优子结构)

(2)求最优解

(1)一般代码缺的空与动态规划的条件和式子有关系

(2)时间复杂度(这个凭经验,看几层循环)

贪心法

局部最优

(1)以“xx”为优先顺序

(2)可以取部分,不一定是每个物品的全部

(3)局部最优

(1)出现“以什么什么为顺序,优先....”

(2)只考虑局部最优,每一步找最优

 

如:背包问题:物品以最大单位价值编号顺序,依次装入背包中.......

会考察贪心算法的时间复杂度,以及贪心算法是否能达到最优解(不能,只能保证局部最优)

回溯法

解空间树回退其上一个结点,直到找到一种方案满足全部结点问题一般出现“退回到上个结点”。如:皇后问题回溯法是“深度优先搜索”

算法题,看似很难,其实是因为我们对其代码不熟悉,但是其思想很简单,也是很实用的解决(复杂)问题的方法。

在做算法题时,最重要的是读懂题意,尤其是题中有很多个条件限制,那么每一个条件都会出现在代码中,我们在走代码时,一定要对应着题意,看其缺少什么限制条件,从而找出缺少的代码句。

第二,就是不要把它想的很难,代码实在填不出来,后边的问题二和问题三也能根据题和题的描述,做出来,至少保证拿到七八分。

 

【六】设计模式题:注意咱们一般都选第六题,考试的时候要注意用涂卡笔把选的题号涂上。

对于设计模式,首先要学其思想,以及每个模式对应着解决什么问题,思想也是最重要的,会在以后的工作中用到。

其次,对于考试,考的是代码,但是实质是考察的类和类之间的关系:对应类图,找泛化/继承关系,调用关系,依赖关系等。

考试做题技巧(套路><):

1.找父类子类的泛化/继承关系:通过父类找到子类缺少的方法,或者由子类推出父类的抽象方法。

注意:抽象类(父类):abstract  对应子类:extends

            接口(父类):interface    对应子类:implements(实现)

2.本类对象调用本类方法:出题形式:如果两个类有关联,聚合或者组合的关系,则聚合或者组合的整体一定会含有聚合/组合部分的这个类的对象,那既然这个类中传过来一个其他类的对象,那么就要让他“干活”(否则不就传过了一个其他类的对象啦),即用这个对象调用他自己类的方法。例如:Subject类中传过了一个Observe类的一个对象Obj(或对象集Objs),则会让Observe的对象调用Observe类的方法,代码形式为:Obj.Observe类的方法

3.构造方法传参:this的使用,当类内定义的变量与类内方法的形参名称一样时,为了区分,用this.变量名表示类内定义的变量。

4.实例化类时,要注意需不需要传参,需不需要里氏替换

5.强制类型转换——(类名/数据类型)对象/变量/方法调用

设计模式题应该要拿分,因为前三道题的最后一个问题出题不固定,不太容易能保证拿分,设计模式比较规范化,考察的最重要的就是类和类之间的关系,大家要放平心态,最好是能找到各种模式之间的相似之处和区别,对比着学习。

 

对于考试,最重要的是心态要稳,其次是提前做好计划,按照计划执行,跟着软考小组的步伐,学好每一个阶段,也要有一些自己的安排,针对自己的学习情况查漏补缺。第三是要多想想自己已经会了很多了,不能老纠结自己不会的,不要给自己太大的压力。

送给大家两句鸡汤吧:尽人事,听天命,尽自己最大的努力去干就完事了

 虽然你奋力备战软考的样子很狼狈,但是软考之后你是最优秀的!

 加油!

 

  • 63
    点赞
  • 340
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 36
    评论
评论 36
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ariel_欢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值