24年软件设计师!看这篇就够了(规划+知识点)

cargoooo 2024-10-16 10:05:01 阅读 50

祝大家逢考必过~

一,关于软考:

考试时间:

       一年有两次软考,一般是五月末和十一月的中旬,具体时间官网通知:中国计算机技术职业资格网中国计算机技术职业资格网

icon-default.png?t=N7T8

https://www.ruankao.org.cn/exam/plan

考试时长:

                考试总时长240min

                (注:基础知识模块开考90min后可以交卷,考应用技术模块,推荐做完选择题的同学可以留足时间给应用技术模块,画图和分析题目需要时间比较久)

               

题型和分值:

基础知识:120min

应用技术:120min

        题型数据流图;

                    ER图;

                    UML类图;

                    算法题;

                    设计模式(java/c++选一道);

                                 

二,前言:

备考时间:2024/4月--2024/5月     

推荐课程:B站up主zst_2001

地址:zst_2001的个人空间-zst_2001个人主页url-哔哩哔哩视频哔哩哔哩zst_2001的个人空间,提供zst_2001分享的视频、音频、文章、动态、收藏等内容,关注zst_2001账号,第一时间了解UP主动态。

icon-default.png?t=N7T8

https://space.bilibili.com/91286799

学习路线(推荐)

1、上午题—计算机系统(5~6分) 总时长为8h 35min 23s      

2、上午题—程序设计语言(固定6分)总时长为6h 47min 4s   

3、下午题—试题一(15分)总时长为13h 10min 14s     

4、上午题—知识产权(2~3分)总时长为1h 52min 43s     

5、上午题—数据库(固定6分)总时长为17h 11min 44s    

6、下午题—试题二(15分)总时长为10h 20min 10s   

7、上午题—面向对象(3~4分)总时长为3h 46min 40s  

8、上午题—UML(3~4分)总时长为6h 45min 37s    

9、下午题—试题三(15分)总时长为11h 2min 20s    

10、上午题—设计模式(固定4分)总时长为14h 17min 58s    

11、下午题—试题六(15分)总时长为17h 17min 4s    

12、上午题—操作系统(固定6分)总时长为12h 46min 56s   

13、上午题—结构化开发(3~4分)总时长为3h 45min 22s  

14、上午题—软件工程(上)(上+下一共:10分左右)总时长为15h 15min 13s  

15、上午题—软件工程(下)(上+下一共:10分左右)总时长为3h 21min 58s  

16、上午题—信息安全(5分左右)总时长为2h 27min 30s  

17、上午题—计算机网络(固定5分)总时长为5h 36min 46s   

18、上午题—数据结构(上)(上+下一共:5分左右)总时长为18h 28min 28s  

19、上午题—数据结构(下)(上+下一共:5分左右)总时长为6h 28min 27s  

20、上午题—算法(4~5分)总时长为9h 53min 24s  

21、下午题—试题四(15分)总时长为9h 50min 3s 

备考建议

备考时间充足的同学可以按路线完整刷一遍+刷一遍真题+错题回顾,时间紧张的同学可以直接听真题解析边看边做+错题回顾,模拟题可以做可以不做。

三,知识点整理

#1  计算机系统

1,海明码:

        n个数据位,k个校验位,满足2^k-1≥n+k,码距为2只能检错,码距≥3时可能纠错

2,循环冗余校验码(crc):

        k个数据位,r个校验位,码长k+r,采取模2运算,可以检错不能纠错,码距为2

3,RISC和CISC

RISC支持高级语言

CISC采用微码

4,Cache

①按冲突从小到大排:全相联映射<组相联映射<直接映射

②Cache与主存地址的映射是由硬件自动完成的

5,中断:

①中断向量:提供中断程序的入口地址

②中断响应时间:发出中断请求-进入中断服务程序的时间

③保存现场:返回继续执行源程序

6,输入输出(I/O)控制方式

①,程序查询方式

②中断查询方式

③直接存储器方式(DMA),主存与外设

CPU是在一个总线周期结束后响应DMA请求的,每传送一个数据都要一个存储周期。

④电源断电不可屏蔽,I/O中断可屏蔽

7,总线

①SCSI不属于系统总线

②总线复用可以减少总线中信息线的数量

③并行传输成本高速度快适合短距离传输

    串行传输成本低速度慢适合长距离传输

④PCI内并,SCSI外并

8,加密解密(解决窃听,防止主动攻击)

①对称加密(私有密钥加密)

②非对称加密(公开密钥加密)

③混合加密:

发送发把明文对称加密后,再用接收方的公钥把加密后的明文和对称密钥加密,可以加密大量明文

9,摘要与数字签名(认证,防止被动攻击)

摘要:明文与hash码加密后得到,也就是说一个明文既要加密为密文,也要进行hash运算为信息摘要

数字签名(真实性):发送私钥签名,接收方公钥验证

数字证书(我们信任CA):

CA私钥加密,CA公钥解密,得到发送者的私钥签名

10,加密算法

11,可靠性公式

①串联

②并联

12,其他知识点        

①指令寄存器的位数取决于指令字长

②CPU访问速度的快慢:通用寄存器>Cache>内存>外存

③被动攻击:流量分析,会话拦截

④主动攻击:重放,ip地址欺诈,拒绝服务,系统干涉,修改数据命令

#2  程序设计语言

1,编译程序和解释程序:

①编译程序的话,源程序要参与目标程序的执行

②解释程序是翻译成独立保存的目标程序,然后执行程序

2,程序语言的控制成分:

  顺序结构,选择结构,循环结构      

3,规定数据具有类型的作用:

①合理分配存储单元

②规定数据单位的取值范围和合理运算

③对表达式的合法性检查

4,传值调用和引用调用:

①传值调用:可以传递常数变量表达式

②引用调用(传址):不能传递常数和表达式

5,全局变量和局部变量:

        全局变量在函数调用后值会变,而局部变量调用完不会影响原来的值

6,编译方式和解释方式和符号表

①编译方式:词法分析(记号流),语法分析(语法树,主要分析语句结构),语义分析(类型检查,不能发现动态语义错误),中间代码生成(后缀式,三地址码,三元式,四元式,树;与具体机器无关),代码优化,目标代码生成(与具体机器模切相关,执行寄存器的分配工作)

②解释方式:词法分析,语法分析,语意分析(不可省略且顺序不可交换,参与运行控制,程序执行速度慢)

③符号表:收集,记录源程序中相关符号的类型和特征等信息,并将其存入符号表中,记录源程序各个字符的必要信息,辅助语义的检查和代码生成

7,有限自动机(正确识别正规集词法分析工具):

        包括初态和终态,DFA(确定的)和NFA(不确定的)两种自动机,反3符号表示取空

8,上下文无关文法

9,中缀式和后缀式(逆波兰):

①优先级相同的时候,从右往左

②后缀可利用栈转中缀

10,其他知识

①编译完成后,反编译不可还原源程序,只能得到功能等价的汇编程序

②脚本语言(php(适合动态网页),JavaScript,python)是动态语言,也就是弱类型语言,运行在解释器或虚拟机上

③数据空间要采取堆存储分配策略

④编译过程分配的是逻辑地址,程序运行时才是物理地址

⑤语法指导翻译是一种静态语义分析

⑥C语言得到可执行文件的顺序:预处理-编译-汇编-链接

⑦元组可重复,不可修改

#5  知识产权

1,工作产权:专利,商标
2,人身权:发表权(有时间限制),署名权(开发者身份权),修改权,保护作品完整权
3,知识产权具有很强的地域性,在本地具有的专利权,离开了本土使用就不需要使用费
4,计算机软件著作权法:《著作权法》,《计算机软件保护条例》(国务院)

主体:人

客体:源程序,目标程序,软件文档

生效时间:自完成开发后

保护期:自开发后50年,除开发者身份权外全无效

声明:若无合同规定,著作权为开发者,对软件归属有特别规定,则按规定来

5,非职务软件:

①所开发软件不是本职工作的结果

②所开发软件与工作内容无直接联系

③所开发软件没有用到公司的物质技术条件

只有满足三个才享有软件著作权,一般员工只享有署名权

6,商业秘密:技术秘密和经营秘密
7,专利权(设备,装置):

①先到先得,同时申请可协商

②一个发明只能一个人享有专利权,一个专利可以有共同申请人

8,商标权:

①10年有效,到期前六个月可续注册,可无限续注

②同一天申请商标权,先使用可获准注册,协商不满意的话,可以抽签决定

#6,数据库

1,数据库三级模式结构

①三级模式

外模式(子模式):视图

概念模式(模式):基本表

内模式(存储模式):存储文件

②二级映像

外模式/模式映像:逻辑独立性

模式/内模式映像:物理独立性

2,码(键)

超码:包含码的属性集,如(学生,姓名)

全码:所有属性集合才为关系模式的码,称为全码,比如(学生,姓名,班级)

3,关系模式

几元关系:有几个属性列就有几个元

4,完整性约束

5,投影与选择与连接
①投影π:针对垂直方向

         关系R                      关系S                     选择                   投影

②选择α:针对水平方向

-注意表达,选择会先把所有元组选择出来,然后根据选择的列数条件筛选出适合的元组

例:第一句表示筛选第一列的值为5的元组

第二句筛选第一列的值>第三列的值的元组

③连接⋈(需要先进行笛卡尔积):

。θ连接:I和J为条件

。等值连接:X和Y为条件列

。自然连接,如果没有同名属性,则退化为笛卡尔积,同名的属性值要同时相等,比如有A和B两个属性,则RA和SA相等,且RB和SA要相等:

例子:笛卡尔积R×S如下:

观察有一个同名属性A,则自然连接为

左外连接,右外连接,全外连接(都是先自然连接再进行补充的)

全外连接=左外连接+右外连接

6,SQL语句:

①笛卡尔积转SQL语句:R×S>>R,S

②自然连接转SQL语句:∧转and,∨转or

③删除或者新建列:

修改关键字也可以是modify or  alter

④实体完整性:主键

    参照完整性:外键

⑤SQL语言分类

7,聚合函数(where不能加聚合函数)

①一般方法

②执行顺序

③注意事项:

如果select语句后有存在聚合函数,则需要对select的属性列分组

④对视图进行操作,相当于对实表进行操作

⑤对索引进行操作,改变的是计算机的模式

8,函数依赖

①定义

②闭包(部分属性推出整个函数集)

A(R1,R2)---------->R(R1,R2,R3,R4,R5)

③全码:所有属性的集合为一个候选码

9,范式(1nf不可再分):

①1nf-2nf:消除非主属性的部分函数依赖

②2nf-3nf:消除非主属性的传递函数依赖

③3nf-bcnf:消除主属性对不包括它的候选码的部分依赖和传递依赖

10,如何判断是否存在传递依赖 (X为候选键)

           

              也就是Z传递函数依赖于X

    

11,无损连接:能否通过自然连接得到原关系模式

12,需求分析阶段(包括确定系统边界):

①需求说明文档

②数据字典

③数据流程图

13,概念结构分析阶段

①冲突:属性冲突(属性名一样,范围之类的不同),命名冲突,结构冲突(同一实体在不同ER图的属性不同)

14,逻辑结构设计阶段(关系规范化)
15,事物管理:

①原子性

②一致性

③隔离性

④持久性

16,封锁

①排它锁:只允许X锁(写锁)对象读取和修改,也不允许其他人上锁

②共享锁:任何人都可以对S锁对象读取,只允许加S锁,除非上锁人取消,否则不能对S锁对象修改

17,分布式数据库

#7 面向对象

1,类的分类

①实体类:是核心类

②接口类(边界类):是对象和系统交互的媒介

③控制类:是协调者

2,对象

①对象名

②属性(状态)

③方法

3,消息

对象与对象直接进行通信的构造

4,封装

封装是信息隐藏技术,对象是封装的数据和行为的整体

5,继承

子类与父类直接共享数据和方法的机制

多重继承可以使子类具有二义性

6,多态

父类名  对象  =new 子类名();

如: Person 小红 =new student();

小红.run();

编译的时候是先去Person类里面找这个run方法,如果编译通过,就去student里面执行run的子类方法

7,绑定

①静态绑定:编译

②动态绑定:运行,与类的继承和多态有关

8,面向对象设计原则

①单一责任原则:一个原因

②开放-封闭原则:对扩展开放,对修改关闭

③里氏替换原则:基类出现,则子类也可以出现

④依赖倒置原则:依赖抽象,不依赖细节/实现,高层不依赖低层

⑤接口分离原则:不依赖具体

⑥共同封闭原则:只对当前包中类有影响

⑦共同重用原则:对当前包所有类都重用

9,面向对象分析

①认定对象(确定问题域,名词)

②组织对象

③描述对象的相互作用

④确定对象的操作

⑤定义对象的内部信息

10,面向对象设计

①识别类和对象

②定义属性

③定义服务

④识别关系

⑤识别包

11,面向对象测试

①算法层

②类层

③模板层

④系统层

12,其他知识

①静态方法只能访问该类静态成员

②静态对象共享静态成员值(类似指针)

③图形的文字,斜字体抽象类,正体具体类

#8   UML语言

1,事物

①结构事物:静态,名词

②行为事物:动态,动词

③分组事物:包

④注释事物:注解

2,关系

①依赖中,A为依赖事物,B为独立事物

②关联多重度:A类的实例可对应B类多个实例

③用面向对象开发方法时,当两个关联关系为多对多,则需要新建新类(多对多联系)

聚合:

 ,组合:

3,图
①类图:词汇,写作,逻辑数据库建模

类图的属性修饰符含义:

+ :public  公有的

-  :  private  私有的

#:protected  受保护的

~ :package  包的

②用例图(语境,需求建模)

关联:参与者与用例

扩展和包含:用例与用例

泛化:用例与用例,参与者与参与者

③序列图(顺序图,动态)

注意:一个用例一个顺序图!!!

④通信图(协作图,动态)

⑤状态图(反应型对象):状态,活动,转换,事件

     1,状态(只有一个开始,可以没有结束)

     2,活动

     3,转换(状态可以转给自己)

⑥活动图(特殊的状态图)

要点:可以用于复杂用例的流程建模

⑦构件图(组件图,物理建模)

⑧部署图(物理建模)

展现硬件和软件之间的联系,实施阶段使用

⑨总结:UML图总结

#9 设计模式(非常重要)

一,概念和分类(24种模式都得熟悉)

二,具体阐述
1,概念性模式
①工厂方法模式(一个工厂一个产品)

②抽象工厂模式(一个工厂多个产品)

③生成器模式

④单例模式

一个类只有一个实例

⑤原型模式

可以进行复制

2,结构性模式
①适配器模式

②桥接模式

③组合模式

④装饰器模式

⑤外观模式

⑥享元模式

⑦代理模式

3,行为性模式
①责任链模式

②命令模式

③解释器模式(类)

④迭代器模式

⑤中介者模式

⑥备忘录模式

⑦观察者模式

⑧状态者模式

⑨策略模式

⑩模板方法(类)

⑩①访问者

#10  操作系统

一,操作系统层次

二,前趋图

三,死锁

四,进程  

  ①共享同一个进程的这些线程之间是不可见的

  ②优先淘汰在内存,未访问,未修改的页面

五,分页存储管理

做题步骤:先看页内占多少,剩下的就是页号,对应页号的物理块作为物理地址前面数字

六,缓冲区

七,调度算法

旋转调度算法

多级索引

位示图:

I/O系统的层次结构

八,其他知识

        进行磁盘调度时,先移臂,再旋转

#11,结构化开发

一,耦合( 高耦合度独立性差)

无直接耦合:不传递信息

数据耦合:简单的值传递

标记耦合:复杂值和数据结构传递

控制耦合:控制变量

外部耦合:软件之外的传递

公共耦合:公共变量的交互

内部耦合:直接使用另一方内部数据

二,内聚

偶然内聚:无联系

逻辑内聚:逻辑上相似

时间内聚:同时执行

过程内聚:指定的次序或过程执行

通信内聚:数据结构执行

顺序内聚:顺序执行

功能内聚:共同执行,缺一不可,最强内聚!

#15,信息安全

---内网------DMZ(公共)------外网--

一,防火墙
①包过滤防火墙(网络层)

处理:源ip地址,目的ip地址,端口号

特点:速度快,对用户透明,不能处理新威胁

②应用代理防火墙(应用层)

处理:彻底隔绝内网与外围的直接通信

特点:速度慢,配置困难,检查协议特征

③状态检测防火墙

特点:结合了前面两种防火墙的优点

二,病毒

三,网络攻击

入侵检测:专家系统,简单匹配,模型检测

四,网络安全
①传输层安全协议:SSL,TLS
②远程连接:SSH(安全),telnet,RFB
③邮件协议:MIME,PGP
④HTTPS:443 端口
⑤HTTP:80 端口
⑥外部网关:BGP
五,其他知识

#16,计算机网络

一,网络设备

物理层:中继器,集线器(多端口中继器)

数据链路层:网桥,交换机(多端口网桥)

网络层:路由器

应用层:网关

二,协议簇

注:TCP和UDP是建立在ip之上的

三,TCP:

四,邮件协议(TCP)

SMTP(发送):端口号25

POP3(接收):端口号110

MIME:邮件附加功能协议(不安全)

PEM:邮件私密协议

#12  软件工程

一,CMM

①初始级:杂乱无章,靠英雄

②可重复级:基本项目管理

③已定义级:文档化,标准化

④已管理级:详细度量,产品质量

⑤优化级:定量分析,改进标准化

二,CMMI(CMM的集成)

①阶段式模型

②连续式模型(0-5分)

三,模型

①瀑布模型

特点:软件需求目标明确,有开发经验,在原项目上替换改进,每一步写一个文档

缺点:难以适应需求变化,一般后期才能发现问题,风控弱

②V模型(瀑布模型的变体)

③增量模型(具有瀑布模型特点)

特点:可以短时间提交第一个增量,一般第一个增量为核心产品,后续对每一个增量根据用户进行完善

缺点:如果初始增量无符合要求,则后续增量修改可能也有影响

③演化模型(原型模型,螺旋模型)
原型模型

特点:用户前期需求不清晰,变化大,规模不大,不复杂的项目,能快速低成本构造原型,不能快速上市

螺旋模型

特点:可以进行风险分析,开发分周期进行,支持动态需求变化,支持大规模且复杂的项目

缺点:提交时间长,对专业知识要求苛刻,成本高

④喷泉模型(步骤间可越界)

特点:适用于面向对象开发 有迭代性和无间隙性,活动可以交叉进行,各活动可同时进行

缺点:因为可以同时开发,所以需要大量开发人员检查文档,要严格管理文档

⑤统一过程模型

特点:将大项目分为小项目。

初始阶段:生命周期目标

精化阶段:生命周期架构

构建阶段:运作功能

移交阶段:产品发布

四,敏捷方法
1,极限编程XP

特点:沟通,简单性,反馈和勇气,十二实践

2,水晶法crystal

特点:每个项目都要有特定的策略,约定,方法论

3,并列争求法scrum

特点:迭代,冲刺

4,自适应软件开发ASD

特点:六个基本原则

5,敏捷统一过程AUP

特点:大型上连续,小型上迭代

五,系统设计
1,概要设计

①总体设计:按功能划分模块,子系统

②模块间数据结构设计

③编写概要设计文稿

2,详细设计

①详细算法设计

②模块内数据结构设计

③数据库物理设计和其他设计

  六,PERT图

要点:

①开始时刻的最早和最迟时刻都是0

②结束时刻的最早最迟时刻都相等

③最早时刻从开始时刻开始求,最迟时刻从结束时刻开始求

④最迟一般取前一个的最小值,最早一般取最大值

七,McCabe度量法

复杂度=剪头-结点+2

复杂度=闭合圈+1

八,软件配置

#3 数据结构

计算算法时间复杂度

一,顺序表

①插入,删除的时间复杂度:最坏为O(n)

②查询的时间复杂度为O(1)

二,单链表

①插入,删除,查询的时间复杂度最坏都为O(n)

三,栈(递归使用)

四,顺序队列与队列链式存储

①从对头出,从队尾进

②顺序队列的入队和出队每次都要修改队列长度,循环队列可以不用

②链式存储队列的入队和出队不需要遍历整个链表

注:若存储规模确定,顺序表存储队列比单链表效率高

五,串

串的朴素next值计算

next[1]=0

next[2]=1

六,矩阵

①,对称性矩阵

②三对角矩阵

③稀疏矩阵

特点:与三元组表有关

七,树

①度:树的非叶子结点的度

②树的结点数=所有结点的度+1(叶子结点度为0)

③度为m的树第i层至少有m^(i-1)个结点

④高度为h,度为m的树的结点至多个数:

八,二叉树
1,二叉树

n0=n2+1,也就是叶子结点比度为2结点多(最优二叉树才有)

2,完全二叉树

除第n-1层满外,第n层只需要从左到右依次有结点就行

3,平衡二叉树

4,二叉链表与三叉链表

①二叉链表的空指针数:n+1

②三叉链表的空指针数:n+2

5,最优二叉树(哈夫曼树)

①只存在结点值为0和2的结点,总结点值为2n-1

②一般权重小的放左边,大的放右边

九,图
1,图的度数:即顶点所连边的条数,不管有向图还是无向图,总的度数=边数×2

2,连通图和强连通图

3,图的遍历方法:深度优先和广度优先

4,有向无环图的拓扑序列

步骤:

①从入度为0的顶点开始,输出并删除所连的边

②重复第①步,直到剩下一个顶点

特点:假设vi顶点在vj顶点之前

5,顺序查找和折半查找

 

①顺序查找(有序)

1.1  对于顺序存储,链式存储都可以

1.2  平均查找长度:(n+1)/2

②折半查找(有序)

2.1 只适合顺序存储,有序排列

2.2 最多查找时间:log2n(下取整)+1

例题:

A选项步骤:

视频地址:2015年上半年第60题_哔哩哔哩_bilibili

十,哈希表

 ①具有散列性

②冲突尽可能少

③尽可能使关键字的所有组成都起作用 

十一,堆(优先队列的实现结构)

 ①小顶堆:根节点小的堆

 ②大顶堆:根节点大的堆

十二,排序
①直接插入排序:

1.1   稳定

1.2   适用于基本有序的排列,可以达到最好

1.3,复杂度

②希尔排序(分组完再插入排序):

2.1   不稳定

2.2   复杂度

 

③简单选择排序:

 3.1   不稳定

3.2   可归位

3.3   复杂度

④堆排序(选择排序)

4.1   不稳定

4.2   可归位(每次都交换根节点和尾节点)

4.3   大顶堆:排序完从小到大

4.4   复杂度

⑤快速排序(中位数作为基准最佳)

5.1  不稳定

5.2  可归位

5.3  复杂度

⑥冒泡排序

6.1  稳定

6.2  可归位

6.3  复杂度

⑦归并排序

7.1  稳定

7.2  复杂度

 总结①

 总结:具有稳定性:插入排序,冒泡排序,归并排序

总结③:第一趟排序完能确认某个元素最终位置的排序:冒泡排序,简单选择排序,堆排序,快速排序

#20 算法设计

一,动态规划(解决全局最优解问题)

特点:全局最优解,最优子结构,子问题不独立,可以来回调用

①0-1背包

②最长公共子序列

③矩阵连乘(最大为On3)

二,贪心算法

特点:局部最优解,具有最优子结构贪心性质

①部分背包问题

②构造哈希树

三,回溯法

特点:深度优先遍历

①N皇后问题

四,分治法(将大问题化为小问题)

①归并排序

④最大字段和(nlgn)

五,分支限界法

特点:广度优先遍历(时间复杂度n+e)

题外话:

 之前说出完成绩就准备出这个知识整理,熬了几天夜终于弄完了,也算给软考备考时光画个句号,24年的题目相比前几年,少了很多诸如前驱图的简单题,考纲冷门题相比前几年多了不少,可能出题意向有改变的趋势,不过目前的整理知识拿来合格是完全没问题的,放心跟视频学知识点~,祝大家考试顺利~



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。