如何准备软考-软件设计师(上)

前言:

参加了2023年下半年的软考-软件设计师的考试,之所以参加这个考试,主要出于以下几个目的:

1.减税。虽然只有1500的额度,但是考虑到税率,其实也不少,而且也没有更好的省钱途径。

2.学习。备战软考的过程中,也会学习到一些和设计相关的知识点。虽然之前也能或多或少知道,但是并不擅长用更标注的词汇进行描述。

3.找感觉。后面还打算参加很多门考试,比如证券从业资格证,软考高级等等,拿这次锻炼考试的感觉,为后面做准备。

考完之后,有很多感悟,所以写下来做一个记录,方便后来人。

本系列分为上下两篇,上篇主要讲解软件设计师综合知识的题型,解题思路以及相关的文档。

下篇主要讲案例。

如果你要问本文和其它的辅导有什么区别?最大的区别就是本文是基于某些知识点进行扩展和讲解,并不是单单只讲题目本身的答案。

一.备战思路

作为一名工作十多年的老程序员,去报培训班肯定不是我的选择,我的选择就是刷历史真题。

1.不用太早进行准备,提前3周左右开始准备即可。

2.我的节奏是第一天做综合知识,第二天做设计师案例,每天做完之后进行总结。这样大约可以做七八套题,基本上就够了。

3.一定要先答题,然后再看正确答案,这样记忆性更强。否则单看题目容易忘。

4.使用excel进行答题记录,如下图所示:

如何准备软考-软件设计师(上)_第1张图片

5.整理错题集合,最后一天强化记忆。

如何准备软考-软件设计师(上)_第2张图片

6.最近5年的历史真题一定要做一遍。相关资源如果嫌搜索麻烦可以PDD上买,或者公众号上搜索。

二.综合知识题型分类

综合知识,一共是75道题,每题1分,答对45道题即可通过。一般练习的时候,要尽量达到55分左右,给自己留一些缓冲的空间。

题目分类如下:

类型 数量 解释
计算机系统的知识点 3 主存,硬盘,系统总线等等
加密算法 1-2 要记录几种加密类型的英文名
中断向量 1
指令执行 1-2 指令流水线/复杂指令集/精简指令集特点
浮点类型 1
著作权/专利相关的知识 2-3
数据流图 1-2
设计模式 2-3 23中设计模式
软件项目的活动图里程碑 1-2 求关键路径
C++中的值传递和引用传递 1
磁盘空间计算 1-2
进程/线程相关知识点 1
前趋图 3 这个题一定要搞清楚的,理解之后分几乎是必得的。
开发方法 1-2 敏捷开发,极限编程,水晶法等等。
耦合/内聚类型 2
白盒测试覆盖 2 路径覆盖,McCabe方法计算。
封装/集成/多态/重载/信息 1
面向对象设计 2
UML图 1
python基本用法 2-3
数据库设计/关系模式 2-3 有几个关键词,蕴涵关系等
SQL 2 这个看命令对应的英文单词的意思即可
哈夫曼树 1 哈夫曼树是按照权重排序的
有向图/无向图/邻接矩阵/邻接表 1-2
排序算法/二分查找 3-4 各种排序算法的时间复杂度,空间复杂度,稳定性等
Kruskal算法 2 使用贪心算法
各种网络通讯协议 4-5 比如www协议,OSI七层模型等等
英语题 5 英语题并不是粗略看懂就能答对的

三.综合知识知识点梳理

题目1:加密算法
X509 数字证书标准推荐使用的密码算法(8),而国密 SM2 数字证书采用的公钥密码 算法是(9)。
【来源于2022年下】
8)A. RSA B. DES C. AES D. ECC
9)A. RSA B. DES C. AES D. ECC

答案:8:A,9:D

解析:

RSA,非对称加密,
ECC,非对称加密,更短更安全
DSA,非对称加密
DES:密钥加密的块算法
AES 是一种(分组加密)算法。
ECC、DSA和RSA均属于公开密钥加密算法;DES是共享密钥加密算法。

题目2:网络安全

某单位网站首页被恶意篡改,应部署(10)设备阻止恶意攻击

(10)A. 数据库审计 B. 包过滤防火墙 C. web 应用防火墙 D. 入侵检测

【来源于2022年下】

答案:10:C

知识点:

数据库审计通常是监控并记录用户对数据库服务器的读、写、查询、添加、修改以及删除等操作,并可以对数据库操作命令进行回放。

包过滤是在 IP 层实现的防火墙技术,包过滤根据包的源 IP 地址、目的 IP 地址、源端口、目的端口及包传递方向等包头信息判断是否允许包通过。包过滤防火墙技术的优点是低负载、高通过率、对用户透明,但无法拦截应用层的攻击。

Web应用防火墙是一种用于保护Web服务器和Web应用的网络安全机制。其技术原理是根据预先定义的过滤规则和安全防护规则,对所有访问Web服务器的HTTP 请求和服务器响应,进行HTTP协议和内容过滤,进而对Web服务器和Web应用提供安全防护功能。

入侵检测通过收集操作系统、系统程序、应用程序、网络包等信息,发现系统中违背安全策略或危及系统安全的行为。具有入侵检测功能的系统称为入侵检测系统,简称为IDS。IDS能发现入侵行为并报警,但不能阻止恶意攻击。

题目3:著作权
《计算机软件保护条例》 第八条第一款第八项规定的软件著作权中的翻译权将原软 件由(13)的权利。
A. 源程序语言转换成目标程序语言
B. 一种程序设计语言转换成另一种程序设计语言
C. 一种汇编语言转换成一种自然语言
D. 一种自然语言文字转换成另一种自然语言文字
【来源于2022年下】

答案:D

知识点:

《计算机软件保护条例》第八条第一款原文:软件著作权人享有下列各项权利:
(一)发表权,即决定软件是否公之于众的权利;(终生+50年)
(二)署名权,即表明开发者身份,在软件上署名的权利;(永久)
(三)修改权,即对软件进行增补、删节,或者改变指令、语句顺序的权利;(永久)
(四)复制权,即将软件制作一份或者多份的权利;(终生+50年)
(五)发行权,即以出售或者赠与方式向公众提供软件的原件或者复制件的权利;(终生+50年)
(六)出租权,即有偿许可他人临时使用软件的权利,但是软件不是出租的主要标的的除外;(终生+50年)
(七)信息网络传播权,即以有线或者无线方式向公众提供软件,使公众可以在其个人选定的时间和地点获得软件的权利;(终生+50年)
(八)翻译权,即将原软件从一种自然语言文字转换成另一种自然语言文字的权利;(终生+50年)
(九)应当由软件著作权人享有的其他权利。
(十)作品完整权。(永久)
要记住哪些是永久的,那些是50年的。以及每种权利所对应的内容

题目4:耦合/内聚
若模块 A 和模块 B 通过外部变量来交换输入、输出信息,则这两个模块的耦合类型 是()耦合。
(31)A. 数据 B. 标记 C. 控制 D. 公共
【来源于2022年下】

答案:D

知识点

题目5:白盒测试
白盒测试技术的各种覆盖方法中,()具有最弱的错误发现能力。
(33)A. 判定覆盖 B. 语句覆盖 C. 条件覆盖 D. 路径覆盖

答案:D

知识点:

各种覆盖的强度
语句覆盖:每条语句至少执行一次(最弱的覆盖,1)。
判定/分支覆盖:每个判定的所有分支各出现一次。
条件覆盖:所有的条件,true和false各出现一次。
路径覆盖:所有的路径组合各一次。

答案解析:

这个有可能几句话讲不清,最好找个视频看一遍,找几个极端例子理一下即可。比如下图中几种覆盖各需要多少条用例。

如何准备软考-软件设计师(上)_第3张图片

题目6:设计模式
在某系统中,不同级别的日志信息记录方式不同,每个级别的日志处理对象根据信 息级别高低,采用不同方式进行记录。每个日志处理对象检查消息的级别,如果达到它的级别则进行记录,否则不记录然后将消息传递给它的下一个日志处理对象。针对此需求, 设计如下所示类图。
(45)A. 行为型类B. 行为型对象 C. 结构型类 D. 结构型对象

答案:B

知识点:

--创建型模式--
类模式:工厂方法模式
对象模式:抽象工厂模式,建造者模式,原型模式,单例模式
--结构型模式--
类模式:适配器模式
对象模式:适配器模式,桥接模式,组合模式,装饰模式,外观模式,享元模式,代理模式。
--行为型模式--
类模式:解释器模式,模版方法模式
对象模式:责任链模式,命令模式,迭代器,中介者,备忘录,观察者,状态模式,策略模式,访问着模式
--------------------------------
工厂方法:
抽象方法:
建造者模式:
单例:
原型:封装产生代码后减少代码的编写
适配器:将一个类的接口转换成客户希望的另外一个接口
代理:
装饰器:
外观:把复杂的内部逻辑封装,提供给外部简单的接口
桥接:将抽象部分与其实现部分分离,使他们都可以独立的变化
组合:
享元:
状态:
策略:策略模式可以将不同时期的促销活动定义为一个个算法,进行封装,它们彼此可以互相替换。
命令:将一个请求封装为一个对象,从而使得以用不同的请求对客户进行参数化。
观察者:
访问者:表示一个作用于某对象结构中的各元素的操作。它允许在不改变各元素的类的前提下定义作用于这些元素的新操作。
中介者:
迭代器:主要意图是提供一种方法顺序访问一个聚合对象中的各个元素,且不需要暴露该对象的内部表示
解释器:
备忘录:
责任链:很多对象由每一个对象对其下家的引用而连接起来形成一条链
模版方法

答案解析:无

题目7:排序算法
下列排序算法中,占用辅助存储空间最多是(61)
A. 归并排序 B. 快速排序 C. 堆排序 D. 冒泡排序

答案:B

知识点:

排序算法 平均时间复杂 最坏时间复杂 最好时间复杂 空间复杂 稳定性
冒泡排序 O(n2) O(n2) O(n) O(1) 稳定
直接插入 O(n2) O(n2) O(n) O(1) 稳定
直接选择 O(n2) O(n2) O(n) O(1) 不稳定
快速排序 O(nlogn) O(n2) O(nlogn) O(logn) 不稳定
堆堆排序 O(nlogn) O(n2) O(n)O(1) O(1) 不稳定
归并排序 O(nlogn) O(nlogn) O(nlogn) O(n) 稳定

答案解析

题目8:网络通讯协议

答案:C

知识点:

五层结构:
应用层:使用数据
传输层:TCP/UDP,保证完整性。
网络层:把分组发到目的主机
数据链路层:向该层用户提供透明的和可靠的数据传送基本服务。虚拟局域网(VLAN)
物理层:为数据端设备提供传送数据通路、传输数据

OSI/RM分为七层结构
应用层:实现具体的应用功能
表示层:数据的格式与表达,加密,压缩。
会话层:建立,管理,终止会话,在OSI中属于会话层的任务。
传输层:端到端的连接
网络层:分组传输和路由选择
数据链路层:传送以帧为单位的信息
物理层:二进制传输

题目9:动态/静态存储器
以下关于 SRAM 和 DRAM 储存器的叙述中正确的是(2)
A. 与 DRAM 相比,SRAM 集成率低,功率大、不需要动态刷新
B. 与 DRAM 相比,SRAM 集成率高,功率小、需要动态刷新
C. 与 SRAM 相比,DRAM 集成率高,功率大、不需要动态刷新
D. 与 SRAM 相比,DRAM 集成率高,功率大、需要动态刷新

答案:D

知识点:

DRAM是动态,动态集成率高,功率小,需要动态刷新
SRAM是静态,静态集成率低,功率大,不需要动态刷新
题目10:面向对象设计
面向对象分析的第一项活动是(18);面向对象程序设计语言为面向对象(19)。
A. 组织对象 B. 描述对象间的相互作用 C. 认定对象 D. 确定对象的操作
A. 用例设计 B. 分析 C. 需求分析 D. 实现

答案:A,D

知识点:

面向对象分析的活动是:
1.认定对象,
2.组织对象,
3.对象间的相互作用,
4.给予对象的操作。
面向对象设计的活动:
1.识别类及对象
2.定义属性
3.定义服务
4.识别关系
5.识别包

题目11:磁盘管理
某文件管理系统采用位示图(bitmap))记录磁盘的使用情况。如果系统的字长为 32 位,磁盘物理块的大小为 4MB,物理块依次编号为:0、1、2、位示图字依次编号为:0、1、2、那么 16385 号物理块的使用情况在位示图中的第(37)个字中描述;如果磁盘的容 量为 1000GB,那么位示图需要(38)个字来表示
(37)A. 128 B. 256 C. 512 D. 1024
(38)A. 1200 B. 3200 C. 6400 D. 8000

答案:C,D

知识点:

16385/32=512个字
1000GB*1024/4MB/32=8000
这个其实直接按照固定的公式算即可,不需要理解。
题目12:嵌入式操作系统

答案:A

知识点:

嵌入式操作系统的特点:
(1)微型化,从性能和成本角度考虑,希望占用的资源和系统代码量少;
(2)可定制性,从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置,以满足不同应用的需求;
(3)实时性,嵌入式操作系统主要应用于过程控制、数据采集、传输通信、多媒体信息及关键要害领域需要迅速响应的场合,所以对实时性要求较高;
(4)可靠性,系统构件、模块和体系结构必须达到应有的可靠性,对关键要害应用还要提供容错和防故障措施;
(5)易移植性,为了提高系统的易移植性,通常采用硬件抽象层和板级支撑包的底层设计技术。

题目13:开发过程模型

答案:A

知识点:

---特点---
瀑布:线性顺序的开发流程,阶段之间有明确的交付物和依赖关系
演化:重点在于逐步完善系统,从一个基本版本开始逐渐增加功能
螺旋:强调循环迭代,每个循环包括风险评估和规划。等于分拆成几个瀑布。
增量:将项目分为多个独立的部分(增量),每个增量添加新功能或改进。
敏捷:以小而自足的团队工作,强调合作、快速交付和需求的灵活性。
喷泉:面向对象,以需求为动力,支持软件重用
原型:开发人员快速地构造整个系统或者系统的一部分以理解或澄清问题。
---优点---
瀑布:易于理解和管理
演化:允许灵活地适应需求变化
螺旋:风险管理强化,可以及早发现和解决问题
增量:允许快速交付部分功能,以便用户可以尽早使用
敏捷:强调快速适应需求变化,提高用户满意度
喷泉:
---缺点---
瀑布:不适用需求变化
演化:需要更多的时间和资源,以及良好的项目管理。
螺旋:较复杂,需要更多的资源和时间,不适用于小型项目
增量:可能需要更多的计划和协调,因为多个增量同时进行
敏捷:不适用于所有项目,尤其是需要严格合规性的项目
喷泉:不利于项目管理,严格管理文档
题目14:指令寻址
计算机指令系统采用多种寻址方式。立即寻址是指操作数包含在指令中:寄存器寻 址是指操作数在寄存器中,直接寻址是指操作数的地址在指令中。这三种寻址方式操作数 的速度(5)。 
A. 立即寻址最快;寄存器寻址次之,直接寻址最慢 
B. 寄存器寻址最快,立即寻址次之,直接寻址最慢 
C. 直接寻址最快, 寄存器寻址次之,立即寻址最慢 
D. 寄存器寻址最快,直接寻址次之,立即寻址最慢 

答案:A

知识点:

速度上:立即寻址>寄存器寻址>直接寻址
立即寻址:直接在指令中
寄存器寻址:在寄存器中
直接寻址:在内存中
题目15:精简复杂指令
以下关于 RISC 和 CISC 计算机的叙述中,正确的是( )。 
(2) A. RISC 不采用流水线技术,CISC 采用流水线技术
 B. RISC 使用复杂的指令,CISC 使用简单的指令
 C. RISC 采用很少的通用寄存器,CISC 采用很多的通用寄存器 
D. RISC 采用组合逻辑控制器,CISC 普遍采用微程序控制器 
 

答案:D

知识点:

正确的是:
RISC:精简指令集系统计算机,指令数量少,少量寻址类型,适合流水线,,多寄存器
CISC:复杂指令集系统计算机,指令数量多,多种寻址类型,不适合流水线,微程序控制,研制周期长;

题目16:数据库设计
某高校信息系统设计的分 E-R 图中,人力部门定义的职工实体具有属性:职工号、 姓名、性别和出生日期;教学部门定义的教师实体具有属性:教师号、姓名和职称。这种 
情况属于(51),在合并 E-R 图时,(52)解决这一冲突。 
(51)A. 属性冲突 B. 命名冲突 C. 结构冲突 D. 实体冲突 

答案:C

知识点:

本题考查数据库设计的基础知识。 面向不同的应用设计E-R图,在构建实体时只需要考虑应用中所需要的属性。
结构冲突是指同一实体在不同的分E-R图中有不同的属性,同一对象在某一分E-R图中被抽象为实体而在另一分E-R图中又被抽象为属性,需要统一。 
本题试题中,人力部门将职工抽象为“职工号” 属性,教学部门将教师抽象为“教师”实体,从而产生了结构冲突。因此,为了解决结构冲突的问题,应该在合并E-R图时,在职工实体中加入“职称”属性,删除教师实体。
题目17:UML图
下图所示 UML 图为(42)。 
(42)A. 对象图 B. 类图 C. 组件图 D. 部署图 

答案:B

知识点:

本题考查统一建模语言(UML)的基本知识。 UML对象图、类图、组件图和部署图各自刻画系统的不同方面。其中,
类图展现了一组对象、接口、协作及其之间的关系;
对象图展现了某一时刻一组对象以及它们之间的关系,描述了在类图中所建立的事物的实例的静态快照;
组件图展示一组组件之间的组织和依赖,它与类图相关,通常可以把组件映射为一个或多个类、接口或协作;
部署图展现了运行时处理结点以及其中构件的配置。 
题图所示为在面向对象系统的建模中所建立的最常见的图,即UML类图。图中A和B分别表示两个类。类A和类B之间◆——表示聚集关系,是一种特殊类型的关联,描述了整体和部分间的结构关系,聚集上的多重度表示关联的实例的个数,即类A的一个实例为整体,由不同个数类B的实例聚集而成。A的一个实例可以与B的一个或多个实例关联;而B的一个实例仅与A的一个实例关联,只作为A的一个实例的部分;如果A的一个实例被删除,则所包含的B的实例都被删除。图中类B上存在一元关联,其上多重度表示B的一个实例可与B的其他一个或多个实例关联。

你可能感兴趣的:(感悟/理财,软考,软件设计师)