2021 软考 软件设计师考试教程(详细版)

目录

  • 一、计算机组成原理与体系结构
    • 1.数据的表示
      • 进制的转换
      • 原码反码补码移码
      • 浮点数运算
    • 2.CPU结构
      • 运算器与控制器的组成
    • 3.Flynn分类法简介
    • 4.CISC & RISC
    • 5.流水线
      • 流水线,流水线周期及流水线执行时间
      • 流水线吞吐率,加速比,效率
    • 6.层次化存储结构
    • 7.Cache的基本概念
    • 8.时间局部性与空间局部性
    • 9.随机存储器与只读存储器
      • 主存的分类
      • 主存的编址
    • 10.磁盘工作原理
    • 11.计算机总线
    • 12.串联系统与并联系统可靠度计算
      • 串联系统
      • 并联系统
      • 模冗余模型
      • 常考题型
    • 13.差错控制
      • 循环校验码CRC
      • 海明校验码
  • 二、操作系统基本原理
    • 1.操作系统概述
    • 2.进程管理
      • 进程状态转换图
      • 前趋图
      • 进程的同步与互斥
      • PV操作
      • PV操作练习题
      • PV操作与前趋图
      • 死锁问题
      • 银行家算法
    • 3.存储管理
      • 分区存储组织
      • 页式存储组织
      • 段式存储组织
      • 段页式存储组织
      • 快表
      • 页面置换算法
    • 4.文件管理
      • 索引文件结构
      • 文件和树形目录结构
      • 位示图-空闲存储空间的管理
    • 5.设备管理
      • 数据传输控制方式
      • 虚设备与SPOOLING技术
      • 微内核操作系统
  • 三、数据库系统
    • 1.三级模式-两级映射
    • 2.数据库设计过程
    • 3.ER模型
    • 4.关系代数
    • 5. 规范化理论-函数依赖
    • 6.规范化理论-价值与用途
    • 7.规范化理论-求候选关键字
      • 求候选键
    • 8.规范化理论-范式
      • 第一范式
      • 第二范式
      • 第三范式
      • BC范式
    • 9.范式练习题
    • 10.规范化理论-模式分解
      • 模式分解-例题
    • 11.数据库并发控制
      • 存在的问题实例
    • 12.数据库完整性约束
    • 13.数据库安全
    • 14.数据库备份与恢复
      • 数据备份
      • 数据库故障与恢复
    • 15.数据仓库与数据挖掘
    • 16.反规范化技术
    • 17.大数据基本概念
  • 四、计算机网络
    • 1.OSI/RM七层模型
    • 2.网络技术标准及协议
    • 3.计算机网络分类与拓扑结构
    • 4.网络规划与设计
      • 逻辑网络设计
      • 物理网络设计
      • 分层设计
    • 5.IP地址与子网划分
      • 子网划分
      • 无分类编址(无类域间路由)
    • 6.特殊含义IP地址
    • 7.HTML
    • 8.无线网
    • 9.网络接入技术
    • 10.IPv6
  • 五、系统安全分析与设计
    • 1.信息系统安全属性
    • 2.对称加密与非对称加密
      • 对称加密技术
      • 非对称加密技术
    • 3.信息摘要
    • 4.数字签名
    • 5.数字信封与PGP
    • 6.设计邮件加密系统(实例)
    • 7.各个网络层次的安全保障
    • 8.网络威胁与攻击
    • 9.防火墙技术
  • 六、数据结构与算法基础
    • 14.查找二叉树(排序二叉树)
    • 15.最优二叉树(哈夫曼树)
    • 20.图-拓扑排序
    • 35.排序算法的时间复杂度和空间复杂度
  • 七、程序设计语言与语言处理程序基础
    • 1.编译过程
    • 2.文法的定义以及语法推导树
      • 文法的类型
    • 3.有限自动机与正规式
      • 有限自动机例题
    • 4.表达式
    • 5.函数调用(传值与传址)
    • 6.各种程序语言特点
  • 八、法律法规
    • 1.保护期限
    • 2.知识产权人确定
    • 2.侵权判定
    • 3.标准化基础知识
      • 标准的分类
      • 标准的编号
  • 九、多媒体基础
    • 1.音频相关概念
    • 2.图像相关概念
      • 彩色空间
    • 3.媒体的种类
    • 4.多媒体的计算问题
    • 5.常见多媒体标准
    • 6.数据压缩技术基础
    • 7.有损压缩与无损压缩
  • 十、软件工程
    • 1.软件开发模型
      • 瀑布模型SDLC
      • 原型模型、演化模型、增量模型
      • 螺旋模型
      • V模型
      • 喷泉模型与RAD
      • 构建组装模型CBSD
      • 敏捷开发办法
      • 信息系统开发方法
    • 2.需求工程
      • 需求开发-需求分类
    • 3.结构化设计
    • 4.软件测试-测试原则与类型
    • 5.软件设计-测试用例设计
    • 6.软件测试-测试阶段
    • 7.软件测试-McCabe复杂度
    • 8.系统运行与维护
    • 9.软件过程改进CMMI
    • 10.项目管理
  • 十一、需求工程
    • 1.设计原则
    • 2.UML
    • 3.设计模式的概念
    • 4.设计模式的分类
    • 5.创建型模式
    • 6.结构型模式
    • 7.行为型模式
  • 十二、数据流图DFD
    • 1.数据流图基本概念
    • 2.数据字典
  • 十四、UML建模
    • 1.UML图-用例图
    • 2.UML图-类图与对象图
    • 3.顺序图
    • 4.活动图
    • 5.状态图
    • 6.通信图

一、计算机组成原理与体系结构

1.数据的表示

进制的转换

  • 十进制转R进制用 短除法
  • R进制转十进制用 按权展开法

原码反码补码移码

表示范围 :

  • 原码 : − ( 2 n − 1 − 1 ) -(2^{n-1}-1) (2n11)~ 2 n − 1 − 1 2^{n-1}-1 2n11
  • 反码 : − ( 2 n − 1 − 1 ) -(2^{n-1}-1) (2n11)~ 2 n − 1 − 1 2^{n-1}-1 2n11 (-127~127)
  • 补码 : − 2 n − 1 -2^{n-1} 2n1~ 2 n − 1 − 1 2^{n-1}-1 2n11 (-128~127)

浮点数运算

  • 首先要对阶,最后要结果格式化

2.CPU结构

运算器与控制器的组成

2021 软考 软件设计师考试教程(详细版)_第1张图片

  • 主存储器即内存

3.Flynn分类法简介

2021 软考 软件设计师考试教程(详细版)_第2张图片

  • 是一种计算机体系结构的分类法
  • 两个指标 :指令流&数据流,分别都分成两种类型 :单的和多的。那么就组成了四种体系结构。

4.CISC & RISC

  • 指令系统类型 的 区别比较 :
    2021 软考 软件设计师考试教程(详细版)_第3张图片
  • CISC 是在以前计算机还没有大规模通用化(计算机定制)时被提出的,定制,设计,e.g.天气预报计算机。根据不同用户做不同的指令,且指令数量很多且复杂,所以是复杂的。
  • 后来计算机要成为了通用设备,就要精简化 计算机指令系统。比如把乘法删掉,看成了多个加法,大大降低系统的指令数量。
  • 可变长格式 : 指令在系统中有一个二进制的编码,编码的长度可以不同;而在RISC中是定长格式。
  • RISC引入寄存器,因为速度极快效率极高。
  • 硬布线逻辑控制 :效率高

5.流水线

流水线,流水线周期及流水线执行时间

2021 软考 软件设计师考试教程(详细版)_第4张图片

  • 由于取址,分析,执行 这三个步骤是由不同的部件来完成的

  • 流水线执行时间计算 :
  • 理论时间 是 203。
  • 实践时间 :k 是指分几段(这里是3),三角形t就是流水线周期。204。
  • 百分之80的概率 考试用的是 理论时间公式

流水线吞吐率,加速比,效率

2021 软考 软件设计师考试教程(详细版)_第5张图片

2021 软考 软件设计师考试教程(详细版)_第6张图片
计算出不使用流水线的时间为500,使用流水线的时间为203

  • 时空图中所有颜色块的面积大小
  • 也因此得出 每一个工作段时长是相等的 的情况下 的流水线效率是最高的,一个执行完后下一个立即开始执行,连接非常紧密,那么浪费掉的只有刚开始建立的小片空间 和 最后完成时小块的空间,中间都是密集的。
  • e.g.2021 软考 软件设计师考试教程(详细版)_第7张图片

6.层次化存储结构

  • 寄存器在CPU里,容量极小,速度很快。
  • Cache是高速缓存存储器
  • Cache按内容存取 速度远高于 按地址

7.Cache的基本概念

  • Cache工作于CPU和 主存之间
  • 在整个存储体系中,除了寄存器,Cache速度是最快的
  • 图上这题的数据中 引入Cache后 使得速度提升了近20倍

8.时间局部性与空间局部性

  • 局部性原理,得到最佳效果
    2021 软考 软件设计师考试教程(详细版)_第8张图片

9.随机存储器与只读存储器

主存的分类

2021 软考 软件设计师考试教程(详细版)_第9张图片

  • 内存 是 随机存储器
  • 随机存储器RAM 特点 :内存一旦断电,内存中所有数据都将被清除掉,保存不下来
  • 而 只读存储器ROM 在 掉电后,仍然能存储相应信息

主存的编址

2021 软考 软件设计师考试教程(详细版)_第10张图片

  • 就是把芯片组成相应的存储器
  • 8 ∗ 4 8*4 84位的意思是 :8代表它有8个地址空间,4代表每一个地址空间是存储是4个bit位的信息,比如说000这一个空间里面就有4个bit的容量

2021 软考 软件设计师考试教程(详细版)_第11张图片

  • 用大的地址-小的地址+1即可,K是1024,即 2 1 0 2^10 210

10.磁盘工作原理

2021 软考 软件设计师考试教程(详细版)_第12张图片


11.计算机总线

2021 软考 软件设计师考试教程(详细版)_第13张图片

  • 内部总线 :微机内部各个外围的芯片 与 处理器之间的总线。是 芯片 的级别
  • 系统总线 :微机中各个插电版 和 系统版 之间的总线。属于 插件版 这一层级
  • 外部总线 :微机 和 外部设备 的总线

12.串联系统与并联系统可靠度计算

串联系统

2021 软考 软件设计师考试教程(详细版)_第14张图片

  • 可靠率 R R R,失效率lamda。注意这里的两个公式中,右边失效率的公式是近似的,当子系统比较多,且每个失效率极低的时候,可以用这个公式快速计算结果

并联系统

2021 软考 软件设计师考试教程(详细版)_第15张图片

  • 只有当所有子系统同时失效时,整个系统才失效

模冗余模型

2021 软考 软件设计师考试教程(详细版)_第16张图片

  • 提高系统可靠性时可以用冗余的方式进行。表决器中少数服从多数

常考题型

2021 软考 软件设计师考试教程(详细版)_第17张图片

  • 先看总体是串联还是并联

13.差错控制

循环校验码CRC

  • CRC可以做检错但不能做纠错的一种编码

2021 软考 软件设计师考试教程(详细版)_第18张图片
2021 软考 软件设计师考试教程(详细版)_第19张图片

  • 要在原始报文后加若干个0,加的个数就是生成多项式的长度-1
  • 进行%2除法后得到一个四位的余数,把这个四位替换刚才补上的4个0的位置,就得到了CRC编码
  • 得到的结果和11011做%2除法运算,如果得到的结果是0那就对了

海明校验码

  • 2 r > = 4 + r + 1 2^r>=4+r+1 2r>=4+r+1中的4就是信息位的位的个数,r就是校验位的位的个数
  • 海明校验码除了可以检错还可以纠错(两个结果异或就知道哪位出错,再取反就纠错了)

二、操作系统基本原理

1.操作系统概述

2021 软考 软件设计师考试教程(详细版)_第20张图片
2021 软考 软件设计师考试教程(详细版)_第21张图片

2.进程管理

进程状态转换图

2021 软考 软件设计师考试教程(详细版)_第22张图片

  • 图一中的就绪是只缺一个资源-CPU资源,万事俱备,只限东风;等待是除了没有CPU资源,还差其他状态;运行是这个进程所需要的所有资源都配足了,并且给它了CPU资源。
  • 图一中,注意没有从等待到运行的箭头,说明在运行时缺了个资源,在补好后不能直接回到运行状态。CPU资源宝贵,所以采用时间片方式,用完一片要等下一次。调度
  • 发现三种状态不足以涵盖,比如人为暂停某个进程,提出五态模型。图二中,运行,活跃就绪,活跃阻塞对应原先的三态模型。挂起

前趋图

2021 软考 软件设计师考试教程(详细版)_第23张图片

  • 用前趋图的形式来表达的其实是要完成的一系列活动它的先后的约束关系。如图一会让人误解必须先什么再什么,但其实它们之间没有约束关系。D到E有一条线表示约束。哪些任务可以并行,哪些任务有先后关系

进程的同步与互斥

2021 软考 软件设计师考试教程(详细版)_第24张图片

  • 互斥 :在同一时刻,只允许某一个进程去使用资源,即,同一个资源不能同时服务于多个进程
  • 同步 和 互斥 不是互为反义词,互斥的反义词是共享,同步的反义词是异步
  • 同步 :当差距拉的比较大时,要求速度快的停下来等

生产者与消费者问题
2021 软考 软件设计师考试教程(详细版)_第25张图片

  • 单缓冲区情况 :市场容量只有1,且同一时刻不允许既有生产者去存东西又有消费者去搬东西,这就是互斥,市场是一个互斥资源,只允许一个人操作,不能同时操作;生产者把东西放进去,放了一个,市场就满了,不能再放了,不允许,只有等到消费者把市场里的东西消费掉,才允许生产者再放东西,这就是同步
  • 多缓冲区情况 :类似,只是同步的情况可以放的步子大一点而已。

PV操作

2021 软考 软件设计师考试教程(详细版)_第26张图片

  • 临界资源 :独木桥就是一个临界资源。共享,互斥(某一时间点只允许一个人)。
  • 临界区 :访问临界资源的代码。是代码段,不是缓冲区之类的。
  • 信号量 : P ( S ) P(S) P(S) V ( S ) V(S) V(S)等中的 S S S就是信号量。特殊体现在它是应用于PV操作中的专属变量。
  • PV操作 :是两大原子操作的一个组合,有P操作和V操作。

解决问题
2021 软考 软件设计师考试教程(详细版)_第27张图片

  • 加入PV操作使得某些错误操作引刃而解

PV操作练习题

  • 最多允许n个购书者进入,如何做到这一点 :在进入的时候把信号量-1,一直减到到负数的时候,就阻塞别人进入,也就是P操作,当S小于0时当前进程将被阻塞,阻塞会如何被唤醒激活呢?就是当有车驶离停车场,就进行V操作,把资源释放出来,这就是图中的 P ( S n ) P(S_n) P(Sn) V ( S n ) V(S_n) V(Sn)这一对信号量的操作,或者说这一对PV操作,实现的功能就是书店最多允许n个购书者的进入,因为n+1个进来的时候就会被阻塞
  • 付款操作不是购书者单人就能完成的操作,需要收银员,在这个过程中会有同步的关系在里面
  • 收银员进程中,假如没有b1,b2,那直接就变成了收费,周而复始收费的动作,问题就在于如果没有购书者提出付款的申请,收费动作没有意义,所以一开始没有人提出付款需求,收银员收费是不允许的,所以b1位置要有一个P操作,且这个P操作应该由付款动作来唤醒,一旦有人要付款,就要进行一个V操作,V操作唤醒收银员则a1和b1的信号量是同一个,且是一对PV操作
  • 付款得等收银员收费后才可以走,所以a2对购书者也会有一个阻塞操作,让它等待收银员进程完成它的职能,这个a2和b2是对应起来,有一对PV操作
  • 所以,a1和a2分别是 V ( S 1 ) , P ( S 2 ) V(S_1),P(S_2) V(S1),P(S2),b1和b2分别是 P ( S 1 ) , V ( S 2 ) P(S_1),V(S_2) P(S1),V(S2)
  • PV操作题目关键点在于找出约束关系

PV操作与前趋图

2021 软考 软件设计师考试教程(详细版)_第28张图片

  • 对于A活动而言,在它前面是没有任何活动的,所以它一开始就能执行,并不受什么约束,B,C也是如此;但对于D而言,一开始没办法执行,要执行它必须要先完成ABC这些,而要执行E必须先完成D

  • 其实就是P自减,V自增
  • 简单方法 :要用到的信号量是 S 1 S_1 S1 S 4 S_4 S4,那么在箭线上标出这四个信号量,遵循从左到右,从上到下,每一个箭头对应一个信号量,箭头的起点位置是V操作,终点位置是P操作

2021 软考 软件设计师考试教程(详细版)_第29张图片

  • 因此答案是CAA

死锁问题

2021 软考 软件设计师考试教程(详细版)_第30张图片

  • 答案是13个。在分析最少多少个资源不会发生死锁时,就先给每个进程分配它所需的总数-1个资源,然后系统里还有一个资源,这样就不会产生死锁

银行家算法

2021 软考 软件设计师考试教程(详细版)_第31张图片

  • 死锁的四大条件,缺一不可
  • 互斥 :大家不能同时使用
  • 保持和等待 :各个进程会保持自己的资源且会等待别人释放更多的资源给自己
  • 不剥夺 :系统不会去把分配给某个进程的资源剥夺掉
  • 环路等待 :2021 软考 软件设计师考试教程(详细版)_第32张图片
  • 因此,解决死锁问题有两种方案 :方案一、死锁的预防;方案二、死锁的避免

2021 软考 软件设计师考试教程(详细版)_第33张图片

  • 系统状态是安全的,即,系统没有发生死锁状态。
  • 要计算出当前系统还剩了多少个资源

2021 软考 软件设计师考试教程(详细版)_第34张图片

3.存储管理

分区存储组织

  • 最佳适应法的缺陷 :使用最佳适应法后,整个系统中内存的碎块会非常多,且那些碎块很不好利用。因此我们考虑最差适应法。
  • 循环首次适应法 :就是把这些空闲的区域按顺序连成一个环状,然后顺次分配,那就不会每次都只盯着第一个了

页式存储组织

2021 软考 软件设计师考试教程(详细版)_第35张图片

  • 前面讲到的分区存储组织,就是在内存中划定一个用户区域,供用户程序调用内存时使用,会出现超越内存容量的问题,不好
  • 而在页式存储组织中,就解决了超越内存容量的问题,比如如果内存是2G,甚至可以运行4G的程序
  • 逻辑地址 和 物理地址 间的 页内地址是相同的,页号不一样,因为逻辑地址的页号对应着物理地址的块号,可以看到,页号和块号不是相等的,当然也可以是相等的,没有严格的限制,因此要查表才能得知
  • 如何通过逻辑地址求物理地址 ?首先要知道逻辑地址中哪一部分是页号,哪一部分是业内地址,将页内地址直接写下来就是物理地址的页内地址,然后再通过页号去查找块号,把两部分拼接起来就是物理地址

  • 淘汰页号,淘汰的必须是在内存中的,就是0125中,再看访问位,刚刚被访问过的访问位为1,不能淘汰,只有访问位为0的才能淘汰,所以应该被淘汰的应该是1

段式存储组织

  • 段式存储分为段号和段内地址两个部分,虽然从地址的结构来看给人段式存储和页氏存储一样的感觉,但实际上并不是,因为它们分割的方式有较大差异,段式按照逻辑结构来划分,段的大小不要求一致,而在页式中这是不允许的,
  • 好处 :便于共享
  • 段表存的是段号,段长,基址

段页式存储组织

  • 先分段再分页
  • 缺点 :查了段表还要查页表

快表

2021 软考 软件设计师考试教程(详细版)_第36张图片

  • 相联存储器 :是按内容存取的,特点 :速度非常快,效率非常高,快表是放在了高速缓存器Cache里,相对应来讲,如果把段表,页表之类的放在内存中,那称之为慢表,快表是放在Cache里的,慢表是放在内存中的

页面置换算法

2021 软考 软件设计师考试教程(详细版)_第37张图片
2021 软考 软件设计师考试教程(详细版)_第38张图片

  • FIFO
  • 对比图二和图一,把内存页加到四页的时候,发现缺页次数反而增加了,这就产生了抖动现象

练习

  • 没有使用快表,说明,每一个块,需要两次内存的访问,总共有6个块,所以会产生12次对内存的访问
  • 对于第二问缺页中断的问题 :默认指令一次性读入即只产生1次 ,而这里的操作数每个都会产生2次2021 软考 软件设计师考试教程(详细版)_第39张图片
  • 因此第二问缺页中断次数为5

4.文件管理

索引文件结构

2021 软考 软件设计师考试教程(详细版)_第40张图片

  • 这种结构本身的容量很有限,但它引入了一种扩展机制,可以很方便的将文件容量扩大很多倍
  • 一般的索引文件结构有13个结点(0-12)

  • 逻辑块号往往从0开始
  • 可以看到5号逻辑块对应的物理块号是58
    2021 软考 软件设计师考试教程(详细版)_第41张图片

所以选C和D

文件和树形目录结构

2021 软考 软件设计师考试教程(详细版)_第42张图片

位示图-空闲存储空间的管理

2021 软考 软件设计师考试教程(详细版)_第43张图片

  • 在磁盘上面有大量的空间,需要管理,以便有依据分配空间,有这四个管理方法
  • 位示图法 :1表达的区域已经被占用,0表达还是空闲,把存储空间分成很多个物理块,直观表达空闲还是占用

  • 4195号物理块其实是第4196个物理块,那么 ( 4195 + 1 ) / 32 = 131.125 (4195+1)/32=131.125 (4195+1)/32=131.125,超过131,说明把前131个都填满,并且当前在第132个中

在这里插入图片描述

  • 占用,所以是1,所以AC排除,而根据上图,就是第3位置,因此B
  • 细节 :“第X个字”是从1开始算,“多少位置”是从0开始算

5.设备管理

数据传输控制方式

2021 软考 软件设计师考试教程(详细版)_第44张图片

  • 数据传输控制方式主要指的是 内存 和 外设 之间的数据传输控制问题
  • 程序控制方式 又称为 程序查询方式,这种方式是最为低级的,也是CPU介入最多的机制,外设在这种方式中非常被动
  • 程序中断方式 很多方面和程序控制方式一样,但主动性强些,有中断机制,如果外设完成了相应的数据的传输,这时,它会发一个中断出来,系统就会做下一步的处理,因此,效率会比查询方式高一些
  • DMA方式,也称,直接存取控制方式,有专门控制器,CPU只要在开头初始化,整个过程都由DMA的控制器来完成监管,完成后再由CPU接管,效率高很多

虚设备与SPOOLING技术

2021 软考 软件设计师考试教程(详细版)_第45张图片

  • SPOOLING技术核心在于开辟了缓冲区,把要输出或输入的数据先缓存起来,这样就解决了外设的低俗和内部系统的高效之间的瓶颈差异,一般系统内部都内置了这个技术

微内核操作系统

  • 将内核做小的操作系统,问题出现的概率大大降低了
  • 微内核操作系统中分了用户态和核心态,核心态就是微内核中的内核情况,用户态就是核心态之外进行的,即,在用户态这里出现的问题都没有关系,都可以通过一定方式解决,但核心态出现故障就会比较严重;用户态和核心态之间有交互,只有到了非常关键的部分才会在核心态处理

三、数据库系统

1.三级模式-两级映射

2.数据库设计过程

2021 软考 软件设计师考试教程(详细版)_第46张图片

3.ER模型

2021 软考 软件设计师考试教程(详细版)_第47张图片

  • 学生这个实体可能包含多个属性,实体和实体之间会有联系

2021 软考 软件设计师考试教程(详细版)_第48张图片

4.关系代数

2021 软考 软件设计师考试教程(详细版)_第49张图片

5. 规范化理论-函数依赖

6.规范化理论-价值与用途

2021 软考 软件设计师考试教程(详细版)_第50张图片

7.规范化理论-求候选关键字

在这里插入图片描述

  • 超键和候选键的唯一区别就是超键可能有冗余属性,而候选键不存在冗余属性;候选键也是可以唯一标识元组的
  • 2021 软考 软件设计师考试教程(详细版)_第51张图片
  • 候选键和主键的区别 :候选键可以有多个,主键只能有一个

求候选键

2021 软考 软件设计师考试教程(详细版)_第52张图片

  • “A和B”和“AB”区别 :后者是组合键

8.规范化理论-范式

2021 软考 软件设计师考试教程(详细版)_第53张图片

第一范式

2021 软考 软件设计师考试教程(详细版)_第54张图片

第二范式

  • SNO和CNO的组合键才是主键,因为联合起来才能确定成绩;而学分是可以通过课程号来确定的;那么候选键就是SNO和CNO的组合键,这里存在部分函数依赖,带来的问题是数据冗余…。解决方案是把CNO和学分提取出来新的关系模式,在原来的关系模式中去掉学分,但不能去掉CNO

第三范式

  • 这里的主键标出来了只有单属性,是不可能有部分函数依赖问题存在的,所以肯定也是满足了第二范式
  • 但这张表里依然有数据冗余的问题
  • 解决方案就是把DNO和DNAME和LOCATION独立出来成为一个关系模式,原来的关系模式就只剩下三个字段了

BC范式

  • 只要在候选键中出现过的就是主属性
  • 这里STJ都是主属性,没有非主属性,所以肯定是满足第二范式和第三范式的
  • 由于 T − > J T->J T>J中T不是候选键,所以这个不是BC范式

9.范式练习题

  • 不属于第三范式有两种可能 :1.属于第二范式但不属于第三范式;2.连第二范式都没有达到。一般不会连第一范式都没有达到
  • 职工和部门是多对一的关系,所以应该在职工表中加上部门号
  • 第二空时已经在职工号和部门号之间建立了关系,所以不需要“部门号”,所以排除CD,剩下的AB之间的差别只是B多了个商品名称,这个商品名称是没有必要的,因为商品号就可以查到商品名称,一旦出现就是冗余
  • 答案为:C,D,A

10.规范化理论-模式分解

模式分解-例题

2021 软考 软件设计师考试教程(详细版)_第55张图片
2021 软考 软件设计师考试教程(详细版)_第56张图片

11.数据库并发控制

2021 软考 软件设计师考试教程(详细版)_第57张图片

存在的问题实例

2021 软考 软件设计师考试教程(详细版)_第58张图片

12.数据库完整性约束

2021 软考 软件设计师考试教程(详细版)_第59张图片

13.数据库安全

2021 软考 软件设计师考试教程(详细版)_第60张图片

14.数据库备份与恢复

数据备份

2021 软考 软件设计师考试教程(详细版)_第61张图片

数据库故障与恢复

2021 软考 软件设计师考试教程(详细版)_第62张图片

15.数据仓库与数据挖掘

2021 软考 软件设计师考试教程(详细版)_第63张图片

16.反规范化技术

2021 软考 软件设计师考试教程(详细版)_第64张图片

17.大数据基本概念

2021 软考 软件设计师考试教程(详细版)_第65张图片

四、计算机网络

1.OSI/RM七层模型

2021 软考 软件设计师考试教程(详细版)_第66张图片

2.网络技术标准及协议

2021 软考 软件设计师考试教程(详细版)_第67张图片

  • TCP :
  • HTTP :超文本传输协议,用来传输网页数据
  • FTP :文件传输协议
  • Telnet :远程登录
  • POP3,SMTP :邮件传输协议
  • UDP :
  • DHCP :局域网中一般都会有DHCP服务器用来做动态的IP地址的分配工作
  • TFTP :小文件传输协议
  • SNMP :简单网络管理协议
  • DNS :域名解析

3.计算机网络分类与拓扑结构

2021 软考 软件设计师考试教程(详细版)_第68张图片

  • 第一种分类方法 ,按分布范围分 :办公室范围的-局域网;全球性的网络-因特网
  • 第二种分类方法 ,按拓扑结构分 :总线型 :用一条总线把各个终端连起来;星型 :中间会有一个中心节点,中心节点连接各个其他的节点,一旦中心节点被破坏,整个网络都瘫痪,存在“单点故障”问题;环形 :可靠性相比之下占有优势,不存在单点故障,任何一个出故障,可以绕过去;办公室一般是星型,且中心节点是交换机

4.网络规划与设计

逻辑网络设计

物理网络设计

分层设计

2021 软考 软件设计师考试教程(详细版)_第69张图片

  • 顶层是核心层,底层是接入层,都只有一个层次,中间是汇聚层,可以有多个层次,同时顶层和底层功能都非常简单

5.IP地址与子网划分

子网划分

无分类编址(无类域间路由)

6.特殊含义IP地址

2021 软考 软件设计师考试教程(详细版)_第70张图片

7.HTML

8.无线网

9.网络接入技术

2021 软考 软件设计师考试教程(详细版)_第71张图片

10.IPv6

五、系统安全分析与设计

1.信息系统安全属性

2021 软考 软件设计师考试教程(详细版)_第72张图片

2.对称加密与非对称加密

对称加密技术

  • 对称加密技术就是在加密和解密的时候所使用的密钥是完全一样的

非对称加密技术

2021 软考 软件设计师考试教程(详细版)_第73张图片

3.信息摘要

2021 软考 软件设计师考试教程(详细版)_第74张图片

  • 原始信息发生变化,特征值也会发生变化

4.数字签名

2021 软考 软件设计师考试教程(详细版)_第75张图片

5.数字信封与PGP

6.设计邮件加密系统(实例)

7.各个网络层次的安全保障

2021 软考 软件设计师考试教程(详细版)_第76张图片

8.网络威胁与攻击


9.防火墙技术

2021 软考 软件设计师考试教程(详细版)_第77张图片

六、数据结构与算法基础

14.查找二叉树(排序二叉树)

15.最优二叉树(哈夫曼树)

  • 构造哈夫曼树就是让一棵树的带权路径长度是最短的情况
  • 最后就是把每个叶子节点的带权路径长度求出来再累加,所有的中间节点都不是一开始的,都是构造出来的

20.图-拓扑排序

2021 软考 软件设计师考试教程(详细版)_第78张图片

  • 拓扑排序实际上是用一个序列来表达一个图当中哪些事件可以先执行,。。后。。,约束关系,必须先完成哪个才能完成哪个

35.排序算法的时间复杂度和空间复杂度

七、程序设计语言与语言处理程序基础

1.编译过程

2021 软考 软件设计师考试教程(详细版)_第79张图片

  • 在计算机中,对于高级语言程序的处理,往往有两种处理方式,一种以解释的方式进行,一种以编译的方式进行,编译是整段的程序都弄好了,按编译运行的时候才。。然后进行执行

2.文法的定义以及语法推导树

文法的类型


  • 一般以小写字母代表终结符,大写是非终结符,非终结符就是这种符号可以推出其他符号

3.有限自动机与正规式

2021 软考 软件设计师考试教程(详细版)_第80张图片

  • 以双圈代表的往往是结束

2021 软考 软件设计师考试教程(详细版)_第81张图片

  • |是或, ( a ∣ b ) ∗ (a|b)* (ab)中*代表循环多次,*从0到无穷,所以这个可以表达空串
  • 第二空使用代入法会更快,第一问中已经知道ABC都可以被表达出来,那么第二问中就看四个选项中哪一个可以把前面这些串都表达出来,就可能是正确答案,如果不能就肯定可以排出;A,只要是a和b组成的任意串都可以表达,连第一问的D也可以,也就是说比文法的范围还要大,所以不是等价关系,排出A;D对于第一问C这种情况不能。

有限自动机例题

2021 软考 软件设计师考试教程(详细版)_第82张图片

  • A是起点,C是终点
  • A选项就是问能否通过输入4个0从A到达C,可以就是可以被识别

4.表达式

2021 软考 软件设计师考试教程(详细版)_第83张图片

  • 这棵树的中序遍历就可以得到这个中缀表达式,,前,,后,,
  • 这道题,要先把这个表达式的树给构建出来,注意括号决定了顺序,同时也是体现出了顺序,因为括号不需要构造到树中

5.函数调用(传值与传址)

2021 软考 软件设计师考试教程(详细版)_第84张图片
2021 软考 软件设计师考试教程(详细版)_第85张图片

6.各种程序语言特点

八、法律法规

1.保护期限

  • 保护期限涉及到著作权,软件著作权,商标权,专利权,反不正当竞争法
  • 对于著作权而言,它把要保护的作品分为公民作品(个人)和单位作品(单位,集体);没有限制就是永久保护;单位作品类似,只是没有作者终生这个概念
  • 公民软件作品和单位软件作品和前面非常类似,
  • 注册商标,有效期10年,可以续注,期满会注销
  • 发明专利权,有效期20年
  • 实用新型和外观设计专利权(10年)和发明专利权的区别 :创新程度不一样,实用新型一般是已有的东西上附属改良,而发明强调了自主创新的部分要比较大
  • 商业秘密最为独特,保护期限是不确定的,分经营和技术两个方面,前提是单位做了相应的机密的保护措施,比如有明文规定;如果擅自公开了别人的商业秘密,这属于违反了反不正当竞争法

2.知识产权人确定

  • 主要是用来区分一个作品完成后,著作权归单位拥有还是个人拥有
  • 专利权的职务作品界定比前面两种更为严苛,

  • 委托创作的规则和职务作品恰恰相反,
  • 合作开发是大家共同拥有著作权
  • 商标和专利是先申请先拥有的原则

2.侵权判定

2021 软考 软件设计师考试教程(详细版)_第86张图片

  • 所谓发表,就是公之于众,不一定要在报刊杂志上,网站上也算是发表
  • 开发软件时思想过程不受保护

3.标准化基础知识

标准的分类

2021 软考 软件设计师考试教程(详细版)_第87张图片

  • 常考 :国家标准,行业标准,地方标准,企业标准(企业规范)

标准的编号

2021 软考 软件设计师考试教程(详细版)_第88张图片

  • 给GB,要知道它不仅是国标,而且是强制性的,而推荐性的国家标准会在后面加一个“/T”,指导性。。。,实物。。。
  • 行业标准代号容易重复,因此一般通过排除法
  • 地方标准代号就是DB开头,很好识别
  • 企业标准,以Q代表企业

九、多媒体基础

1.音频相关概念

2021 软考 软件设计师考试教程(详细版)_第89张图片

  • 声音的带宽指的就是声音这种音波它的频率的范围
  • 超声波往往指的就是大于20k赫兹以上的,次声波(低声波)。。。
  • 2倍,所以电话一般是8k,CD音质往往是40k以上

2.图像相关概念

2021 软考 软件设计师考试教程(详细版)_第90张图片

  • 饱和度指的是色彩的艳丽程度,饱和度低的时候就是颜色灰灰的不鲜艳

彩色空间

2021 软考 软件设计师考试教程(详细版)_第91张图片

  • 普通电脑显示器用RGB,红绿蓝
  • YUV,电视中常见,考虑了兼容性的需求;电视上还可以用YIQ,YCBCR(YUV延伸)
  • CMY在印刷领域用到,光的颜色是采取叠加的原理,而印刷的三原色是用相减的原理,CMYK中的K是黑色,加了一种黑色的颜料
  • 最后的是艺术家空间

3.媒体的种类

  • 根据定义可以分成这五个类别
  • 显示媒体(表现媒体)不仅包括输出显示媒体,还包括输入显示媒体

4.多媒体的计算问题

2021 软考 软件设计师考试教程(详细版)_第92张图片

  • k与K是不一样的,k是1000,K是1024,也就是说存储数据时的K是以1024为单位,传输数据时的k是以1000为单位

5.常见多媒体标准

  • JPEG是目前最为常见的图像文件的标准,有损
  • VCD格式和MP3个是在MPEG-1中定义的
  • DVD是在MPEG-2中定义
  • MPEG-4中最大的改变就是增强了交互性,所以开始应用于网络,可视电话
  • MPEG-7已经不是具体定义,多媒体内容描述接口
  • MPEG-21是一个标准集成

6.数据压缩技术基础

  • 压缩的前提 :必须有冗余才可以压缩

7.有损压缩与无损压缩

  • 有损压缩就是压缩之后想要返回之前的原貌是不行的,因为在压的过程中已经丢失了一些信息,无损压缩就是可以还原的,一摸一样;RAR之类的是无损压缩;JPG文件属于有损压缩
  • 无损压缩压缩比比较差一些
  • 最为常见的无损压缩是哈夫曼编码(变长编码)

十、软件工程

1.软件开发模型

瀑布模型SDLC

2021 软考 软件设计师考试教程(详细版)_第93张图片

  • 根本原因在于需求分析阶段难以把控
  • 适用于需求明确或者是二次开发,否则不适合

原型模型、演化模型、增量模型

2021 软考 软件设计师考试教程(详细版)_第94张图片

  • 原型和瀑布模型是一对相当互补的
  • 原型法从诞生开始就是定位于需求不明确的情况
  • 原型强调构造一个简易的系统
  • 增量模型就是强调先做一块再做一块。。。好处在于比较早的和用户进行了接触,一次一次的审视核心功能,风险小很多

螺旋模型

  • 螺旋模型特征一 :由多个模型组合,所以具备多个模型的特点;在选择题碰到需求不明确,且选项即有原型又有螺旋形,就选原型,如果没有原型就选螺旋形
  • 螺旋模型引入了风险分析,是之前的一系列模型都没有的特征

V模型

2021 软考 软件设计师考试教程(详细版)_第95张图片

  • 和瀑布模型很相似,只是在这种模型中,测试有着更重要的地位,测试有着细化;强调测试,强调要提早的进行测试,测试要贯穿于开发的始终,而不是压到最尾端
  • V型有深意,因为在需求分析阶段就去画验收测试和系统测试计划了,就是希望提早发现问题

喷泉模型与RAD

2021 软考 软件设计师考试教程(详细版)_第96张图片

  • 喷泉模型最大的特点是面向对象,而瀑布模型属于是结构化的典型代表
  • RAD,快速开发模型,由瀑布模型和CBSD也就是构建化开发模型组合形成的模型,最大的特点就是能快速构建应用系统

构建组装模型CBSD

2021 软考 软件设计师考试教程(详细版)_第97张图片

  • 极大提高了软件开发的复用性,使得软件开发市场降低,成本降低,可靠性增加
  • 构建一个构建库->可靠性
  • 架构设计在瀑布模型中没有提到

敏捷开发办法

  • 不是一个模型,而是一组模型,有着共同的价值观
  • 局限性 :一般只做小型项目,大型就力不从心

信息系统开发方法

2.需求工程

需求开发-需求分类

2021 软考 软件设计师考试教程(详细版)_第98张图片

3.结构化设计

2021 软考 软件设计师考试教程(详细版)_第99张图片

4.软件测试-测试原则与类型

2021 软考 软件设计师考试教程(详细版)_第100张图片

5.软件设计-测试用例设计

2021 软考 软件设计师考试教程(详细版)_第101张图片

6.软件测试-测试阶段

  • 单元测试和集成测试之间都是先做单元测试再做集成测试的,但确认测试和系统测试不一定

7.软件测试-McCabe复杂度

2021 软考 软件设计师考试教程(详细版)_第102张图片

  • 假设有向图中有m条有向边,n个节点,用m-n+2可以得到整个图的环路复杂度
  • 将所有分叉的地方抽象成节点,或者不抽象成节点,环路复杂度不会发生改变

8.系统运行与维护

9.软件过程改进CMMI

10.项目管理

2021 软考 软件设计师考试教程(详细版)_第103张图片

  • 各任务之间的依赖关系再Gantt图中不能非常直观的表达出来,这是它最大的区别
  • 图为PERT图
  • 关键路径,就是,在整个图中,从开始节点到结束节点最长的一条路径,它对应的是整个项目的最短工期,因为在一个项目中有很多任务可以并行的开展
  • 先用正推的方式把所有事件的最早开始时间求出,再通过逆推的方式把所有方式的最晚开始时间逆向求出
  • 事件1在0时刻就可以进行了,事件2必须在事件1完成后,所以事件2最早的开始时间是2。。。依次算出事件9的最早开始事件是15,由于它是最后的一个事件,那么最迟的开始时间也是15
    2021 软考 软件设计师考试教程(详细版)_第104张图片

2021 软考 软件设计师考试教程(详细版)_第105张图片

  • 因此第二空的答案是10

十一、需求工程

1.设计原则

2021 软考 软件设计师考试教程(详细版)_第106张图片

2.UML

3.设计模式的概念

2021 软考 软件设计师考试教程(详细版)_第107张图片

4.设计模式的分类

2021 软考 软件设计师考试教程(详细版)_第108张图片

5.创建型模式

2021 软考 软件设计师考试教程(详细版)_第109张图片

6.结构型模式

2021 软考 软件设计师考试教程(详细版)_第110张图片

7.行为型模式

2021 软考 软件设计师考试教程(详细版)_第111张图片
2021 软考 软件设计师考试教程(详细版)_第112张图片

十二、数据流图DFD

1.数据流图基本概念


2021 软考 软件设计师考试教程(详细版)_第113张图片

2.数据字典

2021 软考 软件设计师考试教程(详细版)_第114张图片

十四、UML建模

1.UML图-用例图

2021 软考 软件设计师考试教程(详细版)_第115张图片

2.UML图-类图与对象图

2021 软考 软件设计师考试教程(详细版)_第116张图片
2021 软考 软件设计师考试教程(详细版)_第117张图片

  • 一个书籍列表对应0到多本书籍

2021 软考 软件设计师考试教程(详细版)_第118张图片

3.顺序图

2021 软考 软件设计师考试教程(详细版)_第119张图片

  • 顺序图最大的特点是体现出处理事情的时候的时间顺序情况如何,按顺序一步一步下来

4.活动图

2021 软考 软件设计师考试教程(详细版)_第120张图片

  • 结构上,像程序流程图
  • 粗横线,产生了两个不同的线程

2021 软考 软件设计师考试教程(详细版)_第121张图片

  • 这种活动图指示了不同的对象,可以指示哪个活动是归属于哪个人的

5.状态图

2021 软考 软件设计师考试教程(详细版)_第122张图片

  • 状态为节点,箭线代表的是触发事件,导致状态的变迁
  • 先识别总共有几种状态,再看这些状态之间转化的条件

6.通信图

2021 软考 软件设计师考试教程(详细版)_第123张图片

  • 其实是顺序图的另一种表达方式;顺序图就是上面一排的对象,完了之后引出相应的生命线,对象之间的一些交互就是在这个上面以顺序表达消息的传递
  • 通信图中,对象就是这一系列的节点,对象的交互还是通过箭头的方式来标识,所以它和顺序图的区别就是它时间方面没强调的那么明晰,其他方面基本一致。所以把顺序图和通信图统称为交互图

你可能感兴趣的:(软件设计师)