软考知识点速记

中央处理单元CPU

CPU组成:

  • 运算器
  • 控制器
  • 寄存器组
  • 内部总线

运算器组成:

  • 算术逻辑单元ALU(实现对数据的算术和逻辑运算)
  • 累加寄存器AC(运算结果或源操作数的存放区)
  • 数据缓冲寄存器DR(暂时存放内存的指令或数据)
  • 状态条件寄存器PSW(保存指令运行结果的条件码内容,如溢出标志等)

控制器组成:

  • 指令寄存器IR(暂存CPU执行指令)
  • 程序计数器PC(存放指令执行地址)
  • 地址寄存器AR(保存当前CPU所访问的内存地址)
  • 指令译码器ID(分析指令操作码)等

进制转换

二进制符号为0b、一般表示为0b0011,十六进制符号为0x或H,可表示为0x18F或18FH。

(1)R进制转换为十进制:位权展开法,用R进制数的每一位乘以R的n次方,n是变量,从R进制数的整数最低位开始,依次为0,1,2,3...累加。

(2)十进制转换为R进制:十进制整数(除以R倒取余数),用十进制整数除以R,记录每次所得余数,若商不为0,则继续除以R,直至商为0,而后将所有余数从下至上记录,排列成从左至右顺序,即为转换后的R进制数;

(3)二进制转八进制:每三位二进制数转换为一位八进制数,二进制数位个数不是三的倍数,则在前面补0(原则是数值不变)。

(4)二进制转十六进制:每四位二进制数转换为一位十六进制数,二进制数位个数不是四的倍数,则在前面补0

原码、反码、补码、移码

机器数使用二进制计数制(0、1表示),分为带符号数和无符号数;无符号数表示正数,没有符号位;带符号数最高位为符号位,正数符号位为0,负数符号位为1。

机器数对应的实际数值叫做真值。

带符号数有下列编码方式:

  • 原码:正常的二进制表示,最高位表示符号,数值0的原码有两种形式:+0 (0 0000000)和-0(10000000)。
  • 反码:负数的反码是其原码除符号位外,其余位取反,数值0的原码有两种形式:+0 (0 0000000),-0 (11111111) 。
  • 补码:负数的补码是其反码末位+1,若有进位则产生进位。数值0的补码只有一种形式+0 = -0 = 0 0000000。
  • 移码:无论正数还是负数,都是其补码的首位(符号位)取反得到移码,主要是用作浮点运算的阶码

正数的原码、反码、补码都是一样的。

浮点数的表示

格式:N=F * 2E

E为阶码,确定数值的范围;F为尾数,确定数值的精度

尾数规格化方法:

  • 用原码表示:0.1XXXX(正数)、1.1XXXX(负数)
  • 用补码表示:0.1XXXX(正数)、1.0XXXX(负数)

同一个浮点数的表示就不是唯一的。

逻辑运算

逻辑与&:同为1则为1

逻辑或|:同为0则为0

异或:不同则为1

逻辑左移<<:左移,高位溢出舍去,低位补0

逻辑右移>>:右移,低位溢出舍去,高位补0

校验码

从A码转换为B码需要修改的位数称为码距。

  • 奇偶校验码:在编码中增加1位使编码中1的位数为奇数(奇校验)或偶数(偶校验),从而使码距为2。只能检1位错,无法纠错。
  • CRC循环冗余校验码
    • 由多项式得出除数
    • 信息码后面补充多项式最高指数个数个0,然后信息码与除数进行模2运算(位运算)
    • 最终得出的校验码,校验码长度与多项式最高指数相同,信息码 + 校验码 即为所求的CRC编码
    • 余数的位数一定只比除数位数少一位
    • CRC只能检错无法纠错
  • 海明校验码:在数据位的确定位置上插入k个校验位,通过扩大码距进行检错和纠错
    • 数据位n,校验位k,其中关系满足:2k-1 >= n+k

Flynn分类法

指令流和数据流的不同组合。

  • 单指令流单数据流(SISD)
  • 单指令流多数据流(SIMD):多个处理器异步执行同一条指令。代表有:并行处理机、阵列处理机、超级向量处理机
  • 多指令流单数据流(MISD):不切实际
  • 多指令流多数据流(MIMD):代表有:多处理机系统,多核计算机

计算机指令

计算机指令由操作码和操作数组成。(操作码:决定要完成什么操作)

计算机指令执行过程分为:取指令——分析指令——执行指令

  • 首先将程序计数器PC中的指令地址取出,送入地址总线,CPU根据指令地址去内存中取出指令内容存入指令寄存器IR
  • 指令译码器分析指令操作码
  • 执行指令,取出指令执行所需的源操作数

指令寻址方式

指令寻址方式:

  • 顺序寻址方式
  • 跳跃寻址方式:下一条指令的地址码不是由程序计数器给出的,而是由本指令给出的

指令操作数寻址方式:

  • 立即寻址方式:地址码字段是操作数本身
  • 直接寻址方式:地址码字段给出的是操作数在主存中的地址
  • 间接寻址方式:地址码字段指向的是存储单元,该存储单元存储的操作数的地址
  • 寄存器寻址方式:地址码字段指向的是寄存器的编号

指令系统

  • CISC(复杂指令系统)
    • 指令数量多,频率差别大,指令长度可变
    • 支持多种寻址方式
    • 微程序控制(微码)
    • 研制周期长
  • RISC(精简指令系统)
    • 指令数量少,频率相近,指令长度不可变,大多数中单周期
    • 寻址方式支持少
    • 增加了通用寄存器,适合采用流水线
    • 优化编译,支持高级语言

指令流水线

指令分成不同的执行段

  • 流水线周期:执行时间最长的段
  • 流水线执行时间:1条指令总的执行时间 + (总指令数-1)* 流水线周期
  • 流水线吞吐率:总指令条数 / 流水线执行时间
  • 流水线加速比:不使用流水线总执行时间 / 使用流水线总执行时间

当题目提到度的概念时,指令条数 = 指令条数/度

存储系统

两级存储:Cache-主存,主存-辅存

局部性原理:

  • 时间局部性原理:相邻的时间会访问同一个数据项
  • 空间局部性原理:相邻的空间地址会被连续访问

高速缓存

CPU工作时送出的是的主存单元的地址,就必须将主存地址转换为Cache存储地址。这种地址映射是由硬件自动完成的。

有下列三种方式完成地址映射:

  • 直接映像:主存中的块号与Cache中的块号是相同的。地址变换简单但不灵活,容易造成资源浪费。
  • 全相联映像:主存中的一块都与Cache中任意一块对应。地址变换复杂,速度慢,最不容易发生冲突
  • 组组相连映像:先分块再分组,组与组之间采用直接映像,组内全相联映像。

Cache命中率

程序中大部分是顺序存储、顺序执行的。

设某流水线计算机主存的读/写时间为100ns,有一个指令和数据合一的Cache,已知该Cache的读/写时间为10ns,取指令的命中率为98%,取数的命中率为95%。在执行某类程序时,约有1/5指令需要存/取一个操作数。假设指令流水线在任何时候都不阻塞,则设置Cache后,每条指令的平均访存时间约为 (14) 。 A.12ns B.15 nsC.18 ns D.120ns

答案解析:该问题可以直接计算,有98%的取指令操作只需10ns,只有2%的取指令操作需要100ns。取指令操作数时95%只需10ns,只有 5%的存/取操作数需要100ns,并且只有20%的指令需要存/取一个操作数。为此,列出设置Cache后,每条指令的平均访存时间的计算公式如下:100×0.02+10×0.98+0.2×0.05×100+0.2×0.95×10= 14.7ns。

主存编址与计算

首先分辨两个概念:

  • 编址:存储器是由一个个存储单元形成的,为了对存储器进行无效的治理,就须要对各个存储单元编上号,即给每个单元赋予一个地址码,这叫编址。经编址后,存储器在逻辑上便造成一个线性地址空间。
  • 寻址:存取数据时,必须先给出地址码,再由硬件电路译码找到数据所在地址,这叫寻址。

编址能够分为两种:按字编址和按字节编址

  • 按字编址:存储体的存储单元是字存储单元,即最小寻址单位是一个字。
  • 按字节编址:存储体的存储单元是字节存储单元,即最小寻址单位是一个字节。

对于主存编址中最常见的计算模式为:依据存储器所要求的容量和选定的存储芯片的容量,就能够计算出所须要的芯片的数量。

例子:若内存地址区间为4000H ~ 43FFH,每个存储单元可存储16位二进制数,该内存区域应用4片存储器芯片形成,则形成该内存所用的存储器芯片的容量是多少?

(1)首先,咱们来求解4000H ~ 43FFH地址空间的总容量,应用终止地址-起始地址+1即可得到总容量,也就是43FFH – 4000H + 1 = 43FFH + 1 – 4000H = 4400H – 4000H = 400H。

(2)接下来,咱们要把400H转换成二进制,对于十六进制数转换成二进制数来说,每一位十六进制数对应着四位的二进制数,咱们能够把400H拆分成4、0、0三局部,4转换成二进制数就示意0100,十六进制的0转换成二进制为0000。所以,400H转换成二进制的后果为:0100 0000 0000。0100 0000 0000也就是2的10次方,即为210

(3)题目中说的每个存储单元可存储16位二进制数,所有总共能够存储的二进制数就是:210 * 16。

(4)该区域应用4片存储器芯片形成,所以,存储芯片的容量为:210 *16 / 4 = 210 * 4 = 212,最终的结果单位为bit。

总线结构

  • 内部总线:内部芯片级别的总线,芯片与处理器之间通信的总线
  • 系统总线:板级总线,分为数据总线(并行数据传输位数)、地址总线(系统可管理的内存空间的大小)、控制总线(传送控制指令)。代表的有:ISA总线、EISA总线、PCI总线
  • 外部总线:设备的总线,微机与外部设备的总线。代表的有:RS232(串行总线)、SCSI(并行总线)、USB(通用串行总线,支持热插拔)

系统的可靠性

假设每个设备的可靠性为R1、R2......Rn,不同系统的可靠性计算公式如下:

(一个设备不可靠,整个系统崩溃)

  • 串联系统的可靠性:R=R1*R2......*Rn
  • 并联系统的可靠性:R=1-(1-R1)*(1-R2)......*(1-Rn)
  • 混合系统的可靠性:划分串联、并联

网络安全

网络安全5大特征:

  • 完整型:信息数据完整不破坏
  • 保密性:信息数据需授权不泄露
  • 可用性:信息数据攻击后迅速恢复可用
  • 不可抵赖性:信息数据参与者不可否认不可抵赖,身份真实有效
  • 可控性:信息数据可以管控传播范围

网络安全基本技术:

  • 数据加密:数据按照规则打乱,重写组合
  • 数字签名:证明发送者签发,保证完整性
  • 身份认证:用户合法性,身份真实没假冒
  • 防火墙:控制内外数据进出,阻挡病毒木马
  • 入侵检测:采用异常检测特征保护网络
  • 网络隔离:内外网隔离分开使用,如网闸

常用的对称加密算法(加密和解密的密钥是相同的,安全性不高,加密速度快,适合大数据加密):

  • DES:
    • 3DES(三重DES):使用两个密钥进行三个加密和三次解密
  • AES
  • RC-5
  • IDEA算法

常用的非对称加密算法(有公钥和私钥,一个加密,一个用来解密,一般是私钥加密,公钥解密,加密速度慢,不适合大数据加密)

  • RSA:计算量大,难破解
  • Elgamal
  • ECC:椭圆曲线算法
  • 背包算法、Rabin、D-H

信息摘要算法(信息摘要就是数据的特征信息,有哈希函数生成,同一个数据产生固定信息摘要,具有单向性,无法从信息摘要还原源数据。主要是为了保证完整性):

  • MD5:产生128位的输出
  • SHA:安全散列算法,产生160位的输出,安全性更高

数字签名:属于非对称加密体制,特点是不可否认、报文鉴别、报文的完整性

数字证书:由用户申请、证书签证机关CA核实签发,对用户的公钥的验证。信息摘要和数字签名都是在原发送方合法的情况下所做的加密和认证技术,无法解决发送方身份是伪造的问题。目前的数字证书版本是X.509。

PKI公钥基础设施:提供公钥加密和数字签名服务的系统或平台,目的是为了管理密钥和证书。包括四个部分

  • X.509格式的证书
  • CA操作协议
  • CA管理协议
  • CA政策制定

PKI的基础技术包括:

  • 数字签名
  • 数据完整性机制
  • 数字信封
  • 双重数字签名

例题: 用户 B 收到经 A 数字签名后的消息 M,为验证消息的真实性,首先需要从 CA 获取用户 A的数字证书,该数字证书中包含(1),可以利用(2 )验证该证书的真伪,然后利用(3 )验证 M 的真实性。【A的公钥、CA的公钥、A的公钥】

前趋图

表示哪些任务可以并行执行,哪些任务是顺序执行的。

进程资源图

表示进程和资源之间的分配和请求关系。

P代表进程,用圆形表示;R代表资源,用方框表示,方框内有几个圆球就代表有几个资源

P->R,代表进程需要一个资源才能执行

R->P,代表有一个资源分配给了进程

阻塞节点:当进程所请求的资源都分配完,无法获取所需资源时,该进程被阻塞。

当一个进程资源图的所有进程都是阻塞节点的时候,即陷入死锁状态。

化简的意思:是否可以顺利执行完。

信号量操作

PV操作

解题技巧:

P(X):这个主要就是检查上一个进程是否完成

V(X):就是唤醒当前进程指向的下一个进程

死锁

死锁产生的四个必要条件:

  • 资源互斥
  • 每个进程占有资源并等待其他资源
  • 系统不能剥夺进程资源
  • 进程资源图是一个环路

死锁的解决措施:

  • 死锁预防:限制并发进程对资源的请求
  • 死锁避免:采用银行家算法,提前计算出一条不会死锁的资源分配方法
  • 死锁检测:定时检测,
  • 死锁解除:强制剥夺资源、撤销资源等

死锁计算:

  • 发生死锁的最大资源数:n*(R-1)
  • 不发生死锁的最小资源数:n*(R-1)+1

分页存储

页面:分页存储管理将进程的逻辑地址空间分成若干个页。并且为各个页加以编号,从0开始。

物理块:把内存的物理地址空间分为若干个块,并且加以编号,从0开始。

物理地址:加载到内存地址寄存器中的地址,内存单元的真正地址。

逻辑地址:CPU所生成的地址。逻辑地址是内部和编程使用的、并不唯一。而逻辑地址是虚拟内存的前提之一。

分页的最大作用就在于:使得进程的物理地址空间可以是非连续的。

页表:在分页系统当中,允许将各个页离散地存储在内存的任意一物理块当中,为了保障进程正确运行,即可以在内存中找到每个页面所对应的物理块,系统为每个进程建立了一张页面映像表,简称为页表,在进程地址空间内所有页(0~n),依次在页表中有一页表项,其中记录了相应的页在内存中对应的物理块。从而,在进程执行的时候,可以查询页表,找到每页在内存中的物理块号,即根据页号找物理块号,从而找物理地址

例题:某虚拟存储器的用户编程空间共32个页面,每页为1KB,内存为16KB。假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如下:

则逻辑地0A5C(H)所对应的物理地址是()

解析:页式存储管理的逻辑地址分为两部分:页号和页内地址。由已知条件“用户编程空间共32个页面”,可知页号部分占5位;由“每页为 1KB”,1K=2^10,可知页内地址占10位。由“内存为 16KB”,可知有16块,块号为4位。逻辑地址0A5C (H)所对应的二进制表示形式是:000 10 10 0101 1100,根据上面的分析,编码“000 10”为页号,表示该逻辑地址对应的页号为2。查页表,得到物理块号是4(十进制),即物理块地址为:01 00,拼接块内地址10 0101 1100,得 01 0010 0101 1100,即125C(H)。

页面置换算法

缺页表示需要执行的页不在内存物理块中,需要从外部调入内存,会增加执行时间。所以缺页数越多,系统效率越低。

  • 最优算法:OPT,理论上的算法,无法实现。原理是选择未来最长时间内不被访问的页面置换
  • 先进先出算法:FIFO,先调入内存的页面先被淘汰,会产生抖动现象
  • 最近最少使用:LRU,过去最少使用的页面被淘汰,效率高,不会产生抖动现象

快表和慢表

快表是将页面存放于Cache中,慢表是将页面存放于内存中。

快表需要访问一次Cache和一次内存,慢表需要访问两次内存才能取出页。

段式存储管理

每段有段号和段内地址。

地址表示:(段号,段内偏移)。其中段内偏移不能超过该段号对应的段长,此地址的真正内存 地址是:段号对应的基地址 + 段内偏移

文件管理

系统有13个索引节点:

  • 0~9为直接索引,每个索引节点存放的是内容;
  • 10为一级间接索引节点,存放的是链接到直接物理块的地址;
  • 11为二级间接索引节点,存放的是一级地址
  • 12为三级间接索引节点,存放的是二级地址

树形文件目录

  • 相对路径:从当前路径开始的路径
  • 绝对路径:从根目录开始的路径
  • 全文件名=绝对路径+文件名

相对路径和绝对路径是不加最后的文件名的。

空间存储管理

  • 空闲区表法
  • 空闲链表法
  • 成组链接法
  • 位示图法:对每个物理空间用一个标识,为1则使用,为0则空闲

输入输出技术

  • 程序控制方式:CPU主动查询外设是否完成数据传输,效率低,占用时间也最多
  • 程序中断方式:外设完成数据传输后,向CPU发送中断,等CPU处理数据,效率高。适用于键盘等实时性高的场景。
  • 中断响应时间指从发出中断请求到开始进入中断处理程序;中断处理时间是从中断开始处理到处理结束;中断向量使用堆栈来保护断点和现场
  • DMA(直接主存存取):CPU完成初始化操作,数据传输整个过程由DMA控制,效率高。适用于硬盘等高速设备

磁盘结构

磁盘有两面,每一面由多个同心圆组成。每个同心圆又分为多个扇区,扇区存放着实际的数据。

  • 磁头:磁头固定在可移动的机械臂上,用于读取数据。现代硬盘都是双面可读写,因此磁头数量等于盘片数的2倍,最大为255。
  • 磁道:每个同心圆称为磁道,最大为1023。
  • 扇区:每个磁道上一个弧道称为扇区,扇区是硬盘的最小组成单位,通常是512字节,每个磁道最大的扇区数为63。

磁盘读取数据所花费的时间包括寻道时间、旋转延迟(等待时间)、传输时间

寻道时间:磁头移动到磁道所需的时间,耗时最长

  • 先来先服务FCFS:根据访问磁盘的先后顺序进行
  • 最短寻道时间优先SSTF:请求访问的磁道与当前磁道最近的进程优先调度,使得寻道时间最短,会产生“饥饿”现象
  • 扫描算法SCAN:电梯算法,双向移动
  • 单向扫描调度算法CSCAN:只做单向移动

等待时间:等到读写的扇区转到磁头的下方所用的时间。

硬盘的存储容量 = 磁头数 * 磁道(柱面)数 *每道扇区数 * 每扇区字节数

计算机网络的分类和拓扑结构

计算机网络分类

  • 局域网LAN:传输速率范围为4Mbps~1Gbps
  • 城域网MAN:传输速率范围为50Kbps~100Mbps
  • 广域网WAN:传输速范围为9.6Kbps~45Mbps

网络拓扑结构

  • 总线型:利用率低,干扰大,价格低
  • 星型:交换机形成的局域网
  • 环形:流动方向固定,效率低扩充难
  • 树形:总线型的扩充,分级结构
  • 分布式:任意节点连接,管理难成本高

OSI/RM参考模型

  • 物理层:二进制数据传输。
    • 中继器(扩大信号)、集线器Hub(多路中继器)
  • 数据链路层:将数据封装成帧传送。
    • 网桥(分析帧地址)、交换机(多口网桥,MAC地址表)
  • 网络层:数据分组和路由选择。
    • 路由器(路由选择)
  • 传输层:端到端的连接,将数据传送到主机端口上
  • 会话层:管理主机之间的会话
  • 表示层:解释数据,对数据进行处理
  • 应用层:实现具体的应用功能,进程间的通信。
    • 网关(协议转换)

网络协议

传输介质有:

  • 有线介质:双绞线、同轴电缆、光纤
  • 无线介质:微波、红外线和激光、卫星通信

网络协议:

  • 局域网协议
    • IEEE802.3标准以太网,速度为10Mbps,传输介质是同轴电缆
    • IEEE802.3u快速以太网,速度为100Mbps,传输介质为双绞线
    • IEEE802.3z千兆以太网,速度为1000Mbps,传输介质为光纤或双绞线
    • IEEE802.4令牌总线网
    • IEEE802.5令牌环网
  • 广域网协议
    • 点对点协议PPP(拨号上网)
    • 数字用户线xDSL(ADSL上网速度和下载速度不对等,下载速度一般很快)
    • 数字专线DDN(市内或长途的数据电路)
    • 帧中继(以帧为传输单位)

TCP/IP协议簇

TCP/IP分层模型

  • 网络接口层:负责接收IP数据报
  • 网际层:又称IP层,数据以分组为单位
    • IP:最重要的协议,无连接,不可靠
    • ICMP:因特网控制信息协议,用来检测网络通信是否顺畅
    • ARP和RARP:地址解析协议。ARP是将IP地址转为物理地址,ARAP则相反
  • 传输层:提供应用程序之间端到端之间的通信
    • TCP:可靠连接,
    • UDP:不可靠连接,一般用于视频、音频数据传输
    • 停止等待协议:TCP保证的可靠连接协议,每发送一个分组后就停止发送,直到对方确认后再继续发送
    • 连接ARQ协议:TCP保证的可靠连接协议,维护着一个窗口,窗口中包含多个分组
    • 滑动窗口协议:TCP流量控制协议,允许发送方在停止并等待确认前发送多个数据分组
  • 应用层:具体的应用功能
    • FTP:文件传输协议,基于TCP
    • HTTP:超文本传输协议,基于TCP
    • SMTP和POP3:邮件传输协议,采用ASCII报文
    • Telnet:远程连接协议
    • TFTP:不可靠的小文件传输协议
    • SNMP:简单网络管理协议,必须以管理员的身份才能完成配置
    • DHCP:动态分配IP地址协议。客户端/服务器模型。
    • DNS:域名解析协议

路由选择策略

  • 静态路由选择:不能调整自身的路由表,也就不能找出最佳路由
  • 固定式路由选择
  • 洪泛式路由选择:主要应用在军事网络等强壮性要求很高的场合
  • 随机路由选择:
  • 动态式路由选择:依靠网络当前的状态信息选择路由,算法会复杂,增加网络负担
  • 分布式路由选择:基本算法有距离向量法和链路状态算法
  • 集中式路由选择:由网络控制中心NCC负责
  • 混合式动态路由选择:多种路由混合使用

IP地址

IP地址分为四段,每段8,总共32位的二进制数。

32位分为网络号和主机号,根据网络号不同,IP地址可以划分为:

  • A类:网络号8位,主机号24位,主机个数为2^24-2(主机号全为0或1不能使用,是特殊地址)。二进制首位是0,十进制0~127
  • B类:网络号16位,主机号16位。二进制首位是10,十进制128~191
  • C类:网络号24位,主机号8位。二进制首位是110,十进制192~223
  • D类组播:二进制首位是1110,十进制224~239。
  • E类组播:二进制首位是1111,十进制240~255。

子网划分:一般的IP地址按标准划分为A、B、C类地址后,可以将主机号拿出几位作为子网号,此时IP地址组成为:网络号+子网号+主机号

  • 网络号和子网号都为1,主机号都为0,这样的地址为子网掩码
  • 子网号可以全为0或1,主机号不能全为0或1,因此主机数需-2,子网数不用

无分类编址:不按照A、B、C规则,自动规定网络号。格式为:IP地址/网络号位数

  • 128.168.0.11/20表示IP地址为128.168.0.11,网络号占20位,因此主机号占12位,也可以划分子网

特殊地址:

防火墙

防火墙分为网络级防火墙和应用级防火墙

网络级防护墙:

  • 层次低,效率高。
  • 包过滤和状态检测手段:检查网络包外在(起始地址、状态)属性是否异常,对应用和用户是透明的。遇到伪装的危险数据包就无法处理

应用级防火墙:

  • 层次高,效率低
  • 会将网络包拆开,检查里面的数据是否有问题。
  • 包括双宿主主机、屏蔽主机网关、被屏蔽子网(DMZ非军事区,一般存放的邮件服务器、Web服务器这些内外网数据交互的服务器,可以屏蔽掉一些来自内部的攻击,但是无法完全)等方法

多媒体分类

  • 感觉媒体:直接作用于人的器官。如:视觉、听觉、触觉等
  • 表示媒体:用于数据交换的编码。如:文字、图形、动画、音频、视频
  • 表现媒体:信息输入输出的媒体。如:键盘、鼠标、麦克风、音响、显示器、打印机
  • 存储媒体:磁盘、光盘、内存等
  • 传输媒体:电缆、双绞线、光纤等

声音

声音是一种模拟信号,转换为数据信号有三个步骤:采样、量化、编码

人能听到的音频信号范围:20Hz~20KHz

声音的采样频率一般是最高频率的两倍,才能不失真。

未经压缩的数字音频数据传输速率计算公式:数据传输率(bps)=采样频率(Hz) * 量化位数(bit) * 声道数

声音波形经过数字化后所占用的存储空间:声音信号数据量(byte) = 数据传输率(bps) * 持续时间(s)/8

数字音乐的合成方法:

  • 数字调频合成方法FM:可以得到“电子模拟声”
  • 波表合成法Wavetable

声音特性:

  • 音量:声音的强弱,取决于声波振幅的大小
  • 音高:声音的高低,取决于声波的振动频率,振动频率越高,音越高
  • 音调:声音的调子的高低,取决于声音本身的频率
  • 音色:音品,取决于声音波形的谐波频谱和包络

声音的文件格式有:.wav、.snd、.au、.aif、.voc、.mp3、.ra、.mid等

图形和图像

颜色三要素:

  • 亮度:颜色敏感深浅程度
  • 色调:颜色的类别
  • 饱和度:颜色的深浅程度

彩色空间:显示图片所使用的色彩空间

  • RGB色彩空间:除了红绿蓝三原色外,其余颜色都是由这三原色叠加而成的。普通电视显示器就是采用这种色彩空间。
  • YUV色彩空间:主要是为了兼容黑白电视,使用的是亮度原理,即亮度不同,颜色不同。
  • CMY(CMYK):印刷书籍时采用的色彩空间。采用的是与RGB相反的减法原理,三原色是浅蓝、粉红、黄
  • HSV(HSB):艺术家彩色空间,从艺术角度上划分

图像的属性:

  • 分辨率:每英寸像素点数dpi
  • 像素深度:存储每个像素所使用的二进制位数

图像的格式:.bmp、.gif、.jpg、.png、.tif、.wmf等

图像深度:图像文件中记录一个像素点所需的位数。

显示深度:显示缓存中记录一个点的位数,也即显示屏可以显示的颜色数。

水平分辨率:显示器在横向上具有的像素点数目

垂直分辨率:显示器在纵向上具有的像素点数目

矢量图的基本组成单位是图元;位图的基本组成单位是像素;视频和动画的基本组成单元是帧。

图像的容量计算:

音频容量计算:音频容量=采样频率(Hz) * 量化或采样位数(位) * 声道数  / 8

视频容量计算:视频容量=每帧图像容量(byte) * 每秒帧数 * 时间 + 音频容量 * 时间

注意B(Byte 字节)b(bit 比特位)K(1024,存储时才用)k(1000)

知识产权

专利权归属于发明人或者设计人,对于在发明创造过程中,只负责组织、提供方便、从事辅助工作的都不属于发明人或设计人。

专利保护期是多少年,要依据专利的类型而定:

  • 发明专利权的期限为二十年;
  • 实用新型专利权的期限为十年;
  • 外观设计专利权的期限为十五年。

软件著作权的发生时间,是软件完成的时候

  • 软件著作权属于公民。署名权、修改权、保护作品完整权的保护期没有任何限制,永远属于保护范围。而发表权、使用权和获得报酬权的保护期为作者终生及其死亡后的50年(第50年的12月31日)。作者死亡后,著作权依照继承法进行转移。
  • 软件著作权属于单位。发表权、使用权和获得报酬权的保护期为50年(首次发表后的第50年的,若50年内未发表的,不予保护。但单位变更、终止后,其著作权由承受其权利义务的单位享有。

软件开发RUP

RUP(Rational Unified Process,统一软件开发过程,统一软件过程)是一个面向对象且基于网络的程序开发方法论。

  • 角色:描述某个人或者一个小组的行为与职责。
  • 活动:是一个有明确目的的独立工作单元
  • 工件:是活动生成、创建和修改的一段信息。

RUP的各个阶段及其里程碑:

1)初始阶段:目标是为系统建立商业案例并确定项目边界。

里程碑:生命周期目标里程碑。它评价项目基本的生存能力。

2)细化阶段:目标是分析问题领域、建立健全的体系结构基础、编制项目计划、淘汰项目中最高风险的元素

里程碑:生命周期结构。它为系统的结构建立了管理基准并使项目小组能够在构建阶段中进行衡量。此刻要检验详细的系统目标和范围、结构的选择以及主要风险的解决方案。

3)构造阶段:目标是所有剩余的构建和应用程序功能被开发并集成运行为产品。

里程碑:初始功能里程碑。它决定了产品是否可以在测试环境中进行部署。此刻,要确定软件、环境、用户是否可以开始系统运作。此时的版本也常称为beta版

4)交付阶段:目标是确保软件对最终用户是可用的。

里程碑:产品发布里程碑。此刻要确定目标是否实现,是否应开始另一个生命周期。一些情况下这个里程碑可能与下一个生命周期的初始阶段的结束重合。

PERT图(项目计划评审技术)

项目进度可用PERT有向图来描述任务和其完成时间。在软考试题中通常会问到关键路径(最短路径)与松弛时间。

关键路径:从开始到结束的所有路径中,所花时间最长的一条为关键路径。(在关键路径上的任务的松弛时间为0)

  • 最早开始时间:在关键路径上,从开始到该任务的最早执行的时间
  • 最晚开始时间:关键路径的总时间-反向得出该任务的时间

松弛时间(最多延迟执行的时间)

  • 第一种求法:最晚开始时间-最早开始时间
  • 第二种求法:关键路径的总时间-包含该任务的关键路径花的时间

解析:答案DC

软件设计的五个阶段

  • 问题的定义及规划:主要确定软件的开发目标及可行性
  • 需求分析
  • 软件设计:根据需求分析的结果,对软件系统进行设计,如系统框架设计、数据库设计等。软件设计一般分为总体设计和详细设计。
  • 程序编码:软件设计的结果转化为计算机可运行的程序代码。在程序编码中必定要制定统一、符合标准的编写规范。
  • 软件测试:有单元测试、集成测试、系统测试。测试方法主要有白盒测试和黑盒测试(功能测试)

软件维护的类型

  • 改正性维护:改正在系统开发阶段已发生而系统测试阶段尚未发现的错误
  • 适应性维护:适应信息技术变化和管理需求变化而进行的修改
  • 完善性维护:扩充功能和改善性能而进行的修改
  • 预防性维护:主动增加预防性的新的功能,以使应用系统适应各类变化而不被淘汰

依赖、泛化、关联、聚合、组合、实现

  • 依赖关系:假设A类的变化引起了B类的变化,则说名B类依赖于A类。
    • A类是B类中的(某个方法的)局部变量;
    • A类是B类方法当中的一个参数;
    • A类向B类发送消息,从而影响B类发生变化
  • 泛化关系:其实就是继承关系
    • 子类与父类应该完全一致,父类所具有的属性、操作,子类应该都有;
    • 子类中除了与父类一致的信息以外,还包括额外的信息;
    • 可以使用父类的实例的地方,也可以使用子类的实例;
  • 关联关系:类与类之间最常用的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间有联系。
    • 通常将一个类的对象作为另一个类的属性
  • 聚合关系:整体和部分的关系,整体与部分 可以分开。
    • 成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在。
  • 组合关系:整体与部分的关系,但是整体与部分不可以分开
    • 一旦整体对象不存在,部分对象也将不存在,部分对象与整体对象之 间具有同生共死的关系

设计模式

UML建模图

用例图:

包含:功能包含小功能

类图:

泛化(Generalization)、实现(Realization)、依赖(Dependence)、关联(Association)、聚合(Aggregation)、组合(Composition)

有限自动机

一个有限自动机所识别的语言是从开始状态到终止状态所有路径上的字符串的集合。要判断一个字符串能否被指定的自动机识别,就看在该自动机的状态图中能否找到一条从开始状态到达终止状态的路径,且路径上的字符串等于需要识别的字符串。

活动图

与PERT图类似。

编译过程

  • 源程序:输入给编译器的其实就是字符串
  • 词法分析:预处理,删除无用的空白字符、回车符及其他非实质性字符和注释
  • 语法分析:根据语言的语法规则(由单词/符号构成语法成分的规则),将单词/符号序 列分解成各类语法成分,如表达式、语句、函数和程序等。语法树、中序遍历。
  • 语义分析:语法正确的程序并不能保证语义一定正确!功能:检查源程序是否包含语义错误,并收集类型信息供后面的代码生成阶段使用。
  • 中间代码生成:依据语言的语义规则,生成与具体的机器无关的中间代码。常用形式有后缀式、三元式、四元式和树等。
  • 代码优化
  • 目标代码生成

耦合类型

  • 数据耦合:两个模块彼此间通过数据参数交换信息。
  • 标记耦合:一组模块通过参数表传递记录信息,这个记录是某一个数据结构的子结构,而不是简单变量。
  • 控制耦合:两个模块彼此间传递的信息中有控制信息。
  • 内容耦合:一个模块需要涉及到另一个模块的内部信息。

测试用例常用方法

  • 等价类划分法
    • 适用场合:界面中只要有数据输入的地方,就可以使用等价类划分法。从无穷多的数据中,挑选少量代表数据进行测试。
  • 边界值法
    • 适用场合:界面中有数据输入的地方,一般可以使用,边界值法往往和等价类划分法一起使用,形成一套更为完善的测试方案。
    • 边界值:有效数据和无效数据之间的分界点
  • 因果图及判定表法
    • 适用场合:在一个界面中有多个控件,如果控件之间有组合关系或者限制关系,不同的控件组合会产生不同的输出结果。为了弄清不同的输入组合会产生怎样的输出结果,可以使用因果图或判定表法。
  • 错误推断法
    • 基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。
  • 随机测试
    • 适用场合:不考虑任何用例和需求,完全站在一个用户或者的角度对产品进行使用。
  • 需求文档转化法
  • 正交表
    • 适用场合:在一个界面中有多个控件,每个控件有多个取值,测试时考虑不同的控件不同取值之间的多种组合,但组合数量巨大(>20种,20种以下一般考虑判定表因果图),没有必要全部测试,如何从所有的组合中挑选最少、最优的组合进行测试,可以使用正交排列法。
  • 测试大纲法
    • 适用场合:程序包含多个窗口,每个窗口中又有多个功能,这些功能之间又有一定的联系。为了梳理清楚窗口之间以及窗口不同功能之间的联系,使用测试大纲法。
  • 场景法
    • 适用场合:大多数的业务比较复杂的软件系统都适合使用场景法(便于将各个功能点串起来,便于形成完整的业务感觉)是一种基于软件业务的测试方法,把自己当成最终用户,尽可能的模拟用户在使用此软件的操作。

语句覆盖、分支覆盖、条件覆盖、路径覆盖

  • 语句覆盖:被测程序的每一个语句至少执行一次,其覆盖标准无法发现判定中逻辑运算的错误。
  • 分支覆盖每个判定的所有可能结果至少出现一次,但若程序中的判定是有几个条件联合构成时,它未必能发现每个条件的错误。
  • 条件覆盖:判定中每个条件的所有可能结果至少出现一次,但未必能覆盖全部分支。
  • 路径覆盖:每条可能执行到的路径至少执行一次。

其中语句覆盖是一种最弱的覆盖,判定覆盖和条件覆盖比语句覆盖强,满足分支/条件覆盖标准的测试用例一定也满足判定覆盖、条件覆盖和语句覆盖,条件组合覆盖是除路径覆盖外最强的,路径覆盖也是一种比较强的覆盖,但未必考虑判定条件结果的组合,并不能代替条件覆盖和条件组合覆盖。 

举个例子吧 
if A and B then Action1 
if C or D then Action2 

语句覆盖最弱,只需要让程序中的语句都执行一遍即可 。上例中只需设计测试用例使得A=true B=true C=true 即可。 

分支覆盖又称判定覆盖:使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假均曾被满足。上例需要设计测试用例使其分别满足下列条件即可(1)A=true,B=true,C=true,D=false(2)A=true,B=false,C=false,D=false。 

条件覆盖:要使得每个判断中的每个条件的可能取值至少满足一次。上例中第一个判断应考虑到A=true,A=false,B=true,B=false第二个判断应考虑到C=true,C=false,D=true,D=false,所以上例中可以设计测试用例满足下列条件(1)A=true,B=true,C=true,D=true(2)A=false,B=false,C=false,D=false。 

路径覆盖:要求覆盖程序中所有可能的路径。所以可以设计测试用例满足下列条件(1)A=true,B=true,C=true,D=true(2)A=false,B=false,C=false,D=false(3)A=true,B=true,C=false,D=false(4)A=false,B=false,C=true,D=true。 

沟通渠道

沟通渠道=N(N-1)/2,N是指参与沟通者的人数。

例:在进行软件开发时,采用无主程序员的开发小组,成员之间相互平等;而主程序员负责制的开发小组,由一个主程序员和若干成员组成,成员之间没有沟通。在一个由 8 名开发人员构成的小组中,无主程序员组和主程序员组的沟通路径分别是(19)。

A.32 和 8   B.32 和 7   C.28 和 8   D.28 和 7

解析:沟通渠道=N(N-1)/2,N是指参与沟通者的人数。所以8*7/2=28

成员之间没有沟通,只与主程序员沟通,所以沟通路径为7

栈的出入方式

栈的出入方式是先进后出。

例:已知栈 S 初始为空,用 I 表示入栈、O 表示出栈,若入栈序列为 a1a2a3a4a5,则通过栈 S 得到出栈序列 a2a4a5a3a1的合法操作序列(58)。

A.IIOIIOIOOO   B.IOIOIOIOIO    C.IOOIIOIOIO   D.IIOOIOIOOO

先看a1,因为入栈a1在第一个,出栈a1在最后一个。所以a1是第一个进去,最后一个出来。所以第一个为I,最后一个为O。

在看a2,因为a2是第二个入栈,第一个出栈的。所以a2入栈之后,就马上出栈了,所以开始三个为IIO。

后面就是入a3,所以IIO后面为I。所以选A。

敏捷开发方法

  • 极限编程(XP):核心是沟通、简明、反馈和勇气。XP无需开发人员在软件开始初期做出很多的文档。XP提倡测试先行,为了将以后出现bug的几率降到最低。
  • Scrum:一种迭代的增量化过程,用于产品开发或工作管理。其中发布产品的重要性高于一切。
  • 水晶方法:不同类型的项目需要不同的方法。
  • 特性驱动开发(FDD):一套针对中小型软件开发项目的开发模式。此外,FDD是一个模型驱动的快速迭代开发过程,它强调的是简化、实用、 易于被开发团队接受,适用于需求经常变动的项目。
  • 自适应软件开发(ASD):强调开发方法的适应性(Adaptive)
  • 动态系统开发方法(DSDM):倡导以业务为核心,快速而有效地进行系统开发。实践证明DSDM是成功的敏捷开发方法之一。
  • 轻量型RUP:RUP其实是个过程的框架,它可以包容许多不同类型的过程。

软件开发模型

  • 瀑布模型:划分软件生命周期,且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
    • 软件开发的各项活动严格按照线性方式进行
    • 瀑布模型强调文档的作用,并要求每个阶段都要仔细验证
    • 瀑布模型需要确定需求
  • 增量模型:整个产品被分解成若干个构件,开发人员逐个构件地交付产品
    • 软件需要具备开放式的体系结构
    • 适应需求的变化能力较强
  • 螺旋模型:将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。
    • 风险驱动,有助于将软件质量作为特殊目标融入产品开发之中。
  • 喷泉模型:软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性。
    • 主要用于采用对象技术的软件开发项目
    • 软件的某个部分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分。

内聚类型

  • 过程内聚:如果一个模块内的处理元素是相关的,而且必须以特定的次序执行,称为过程内聚。
  • 时间内聚:如果一个模块包含的任务必须在同一段时间内执行,称为时间内聚,也称为瞬时内聚。
  • 逻辑内聚:如果模块完成的任务在逻辑上属于相同或相似的一类,称为逻辑内聚。
  • 通信内聚:一个模块中所有处理元素都使用同一个输入数据和(或)产生同一个输出数据,称为通信内聚。
  • 功能内聚:如果一个模块内所有处理元素完成一个,而且仅完成一个功能,则称为功能内聚。

文法

描述语言语法结构的规则称为文法。

文法分类:

  • 0型文法(也称短语文法
  • 1型文法(也称上下文有关文法,对非终结符的替换要考虑上下文)
  • 2型文法(也称上下文无关文法,非终结符的替换不需要考虑上下文)
  • 3型文法(正规文法或线性文法

拓扑排序

URL的组成

一个完整的URL包括以下几部分:

  • 协议部分:该URL的协议部分为“http:”,这代表网页使用的是HTTP协议。在Internet中可以使用多种协议,如HTTP,FTP等等本例中使用的是HTTP协议。在"HTTP"后面的“//”为分隔符;
  • 域名部分:该URL的域名部分为“www.aspxfans.com”。一个URL中,也可以使用IP地址作为域名使用;
  • 端口部分:跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口80
  • 虚拟目录部分:从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。虚拟目录也不是一个URL必须的部分。本例中的虚拟目录是“/news/”;
  • 文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是“index.asp”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名
  • 参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。
  • 锚部分:从“#”开始到最后,都是锚部分。本例中的锚部分是“name”。锚部分也不是一个URL必须的部分

三级模式-两级映像

三级模式:

  • 内模式:如何存储物理数据,对应物理存储文件
  • 模式:又称概念模式,对应我们使用的基本表
  • 外模式对应数据库中的视图

两级映像:

  • 外模式-模式映像:表和视图之间的映射
  • 模式-内模式映像:表和数据的物理存储之间的映射

数据库设计的四个阶段

  • 需求分析:分析数据存储的要求。产物有数据流图、数据字典、需求说明书
  • 概念结构设计:设计E-R图,实体-属性图,说明有哪些实体,实体有哪些属性
  • 逻辑结构设计:将E-R图转换为关系模式,即转换成实际的表和表的列属性
  • 物理设计:生成表,生成物理数据库

E-R模型

实体-联系模型。

椭圆表示属性;长方形表示实体;菱形表示联系,联系两端要标注联系类型。

联系类型:一对一1:1、一对多1:N、多对多M:N

属性分类:

  • 简单属性和复合属性(属性是否可分)
  • 单值属性和多值属性(属性有多个取值)
  • NULL属性
  • 派生属性(可由其他属性生成)

E-R图的冲突有三种:

  • 属性冲突。同一属性可能会存在于不同的分E-R图,由于设计人员不同或是出发点不同,对属性的类型、取值范围和数据单位等可能会不一致。
  • 命名冲突。相同意义的属性在不同的分E-R图中有着不同的命名,或是名词相同的属性在不同的分E-R图中代表着不同的意义。
  • 结构冲突。同一实体在不同的分E-R图中有不同的属性,同一对象在某一分E-R图中被抽象为实体,而在另一分E-R图中又被抽象为属性,需要统一。

关系模型

关系代数的运算

键与约束

超键:能唯一标识此表的属性的组合(可以有冗余属性)。

候选键:超键去掉冗余的属性,剩余的属性就是候选键,可以有多个。

主键:任选一个候选键,可作为主键。

主属性:包含在任一候选码中的属性称主属性。

函数依赖

某个属性集决定另一个属性集时,称另一属性集依赖于该属性集。

完全函数依赖:通过{学生学号, 选修课程名}可以得到{该生本门选修课程的成绩},而通过单独的{学生学号}或者单独的{选修课程名}都无法得到该成绩,则说明{该生本门选修课程的成绩}完全依赖于{学生学号,选修课程名}

部分函数依赖:通过{学生学号,课程号}可以得到{该生姓名},而通过单独的{学生学号}已经能够得到{该生姓名},则说明{该生姓名}部分依赖于{学生学号,课程号}; 又比如, 通过{学生学号,课程号}可以得到{课程名称},而通过单独的{课程号}已经能够得到{课程名称},则说明{课程名称}部分依赖于{学生学号,课程号}。(部分依赖会造成数据冗余及各种异常。)

传递函数依赖:在关系R(学号,宿舍,费用)中,通过{学号}可以得到{宿舍},通过{宿舍}可以得到{费用},而反之都不成立,则存在传递依赖{学号}->{费用}。(传递依赖也会造成数据冗余及各种异常。)

在关系中,包括在任何候选码中的属性称为主属性;不包括在任何候选码中的属性称为非主属性。

函数依赖只分析关系中的非主属性对主属性之间的依赖关系,并不分析主属性对主键(码)的依赖关系。

关系模式和函数依赖集找候选键

设关系模式R中U=ABC.......等N个属性,U中的属性在FD中有四种范围:

  • (1) 左右出现
  • (2) 只在左部出现
  • (3) 只在右部出现
  • (4) 不在左右出现

按以下步骤求候选键:

  • 只在FD右部出现的属性,不属于候选码;
  • 只在FD左部出现的属性,一定存在于某候选码当中;
  • 外部属性一定存在于任何候选码当中;
  • 其他属性逐个与2,3的属性组合,求属性闭包,直至X的闭包等于U,若等于U,则X为候选码。

例1:R<U,F>,U=(A,B,C,D,E,G),F={AB-->C,CD-->E,E-->A.A-->G},求候选码。

因G只在右边出现,所以G一定不属于候选码;而B,D只在左边出现,所以B,D一定属于候选码;BD的闭包还是BD,则对BD进行组合,除了G以外,BD可以跟A,C,E进行组合.

  • 先看ABD:ABD本身自包ABD,而AB-->C,CD-->E,A-->G,所以ABD的闭包为ABDCEG=U
  • 再看BDC:CD-->E,E-->A,A-->G,BDC本身自包,所以BDC的闭包为BDCEAG=U
  • 最后看BDE:E-->A,A-->G,AB-->C,BDE本身自包,所以BDE的闭包为BDEAGC=U

因为(ABD)、(BCD)、(BDE)的闭包都是ABCDEG所以本问题的候选码有3个分别是ABD、BCD和BDE

例2:R<U,F>,U=(A,B,C),F={AB-->C,C-->B},求候选码。

因为A只出现在左边,所以A一定是候选键。A的闭包还是A,则对A进行组合,可以和B,C进行组合。

  • 首先看AB,AB本身自包AB,而AB-->C,所以AB的闭包是ABC=U。
  • 再看AC,AC本身自包AC,而C-->B,所以AC的闭包是ABC=U。

因为AB,AC的闭包都是ABC,也就是U,所以候选键是AB,AC。

范式

关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。

1NF:强调的是列的原子性,即列不能够再分成其他几列。

2NF:满足1NF,另外包含两部分内容,一是表必须有一个主键;二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分(即不能有部分函数依赖)

3NF:满足2NF,另外非主键列必须直接依赖于主键,不能存在传递依赖。即不能存在:非主键列 A 依赖于非主键列 B,非主键列 B 依赖于主键的情况。

BCNF:满足3NF,每个非主属性既不部分依赖于码也不传递依赖于码。

第二范式(2NF)和第三范式(3NF)的概念很容易混淆,区分它们的关键点在于,2NF:非主键列是否完全依赖于主键,还是依赖于主键的一部分;3NF:非主键列是直接依赖于主键,还是直接依赖于非主键列。

事务的四个特性

  • (操作)原子性
  • (数据)一致性
  • (执行)隔离性
  • (改变)持续性

并控制引发的三个问题

  • 丢失更新
  • 不可重复读
  • 读脏数据

三级封锁协议

X锁是排它锁,S是共享锁。

  • 一级封锁协议:事务T修改数据之前加X锁,解决丢失更新问题
  • 二级封锁协议:一级封锁协议的基础上,在事务T1读数据的时候加上S锁,读完后释放S锁,可以解决丢失更新、读脏数据问题。
  • 三级封锁协议:一级封锁协议的基础上,在事务T1读数据的时候加上S锁,直到事务结束后才释放,可以解决丢失更新、读脏数据、数据重复读问题。

数据库产生的故障

  • 事务内部故障:本身逻辑、运算溢出。
  • 系统故障:操作系统故障、停电等。
  • 介质故障:物理介质损坏,几率小破坏大
  • 计算机病毒:认为的故障和破坏,在计算机程序中插入的破坏

数据库备份

静态转储:冷备份,转储期间不允许对数据库进行任何的存取、修改操作。

动态转储:热备份,转储期间允许对数据库进行任何的存取、修改操作。缺点是不能出错。

备份的种类:

  • 完全备份
  • 差量备份
  • 增量备份

分布式数据库

分片模式:

  • 水平分片:将表中的记录分别存放到不同的地方
  • 垂直分片:将表中的列值分别存放到不同的地方

分片透明性:

  • 分片透明性:用户或应用程序不需要知道逻辑上访问表是如何分块存储的
  • 位置透明性:应用程序不关心数据存储物理位置上的改变
  • 逻辑透明性:用户或应用程序不需要知道局部使用的是哪种数据模型
  • 复制透明性:用户或应用程序不需要知道复制的数据从哪里来

数据仓库

数据仓库的目的不是为了应用,是面向主题,用来做数据分析的,集成不同表,而且是相对稳定的。在特定的时间点会做大量的插入,反映历史的变化。

数据仓库的作用:

  • 用来做数据的查询、分析,生成报表
  • 使用数据挖掘工具对这些历史数据进行挖掘,查找数据间的关系,发生剩余价值

数据挖掘的分析方法

  • 关联分析:发现不同事件间的关联性
  • 序列分析:发现一定时间间隔内接连发生的事件,这些事件构成一个序列,发现的序列应该具有普遍意义
  • 分类分析:通过分析具有类别的样本特点,得到决定样本属于各种类别的规则或方法
  • 聚类分析:提供"物以类聚"的原理,将本身没有类别的样本聚集成不同的组,并且对每个这样的组进行描述的过程

商业智能

BI系统包括数据预处理、建立数据仓库、数据分析和数据展现四个主要阶段:

  • 数据预处理是整合企业原始数据的第一步,包括数据的抽取、转换和加载三个过程。
  • 建立数据仓库是处理海量数据的基础。
  • 数据分析是体现系统智能的关键,一般采用联机分析处理(OLAP)和数据挖掘两大技术。
  • 数据展现主要保障系统分析结果的可视化

反规范化技术

规范化操作可以防止插入异常、更新删除异常和数据冗余,一般是通过模式分解,将表拆分来达到这个目的。但是表拆分后,每次可能都要关联很多表,不利于查询。

有时候需要反规范技术可以提高查询效率

反规范化技术包括:

  • 增加派生性冗余列
  • 增加冗余列
  • 重新组表
  • 分割表

主要是增加冗余,提高查询效率。

大数据

特点:大量化、多样化、价值密度低、快速化。

大数据和传统数据的比较:

大数据处理系统特征:

  • 高度可扩展性
  • 高性能
  • 高度容错
  • 支持异构环境
  • 较短的分析延迟
  • 易用且开放的接口
  • 较低成本
  • 向下兼容性

SQL结构化查询语言

SQL语言的语法关键字不区分大小。

Distinct:过滤重复的选项,只保留一条记录

Intersect:对两个SQL语句的查询结果做与运算,即同时存在才被选出。

union all:合并所有结果集,不会过滤重复行。union会过滤。

二叉树

节点的度:节点具有子树的数量。

树的度:树中各结点最大的度。

叶子结点:度数为0的结点。

分支结点:度数不为0的结点。

内部结点:度数部位0的结点。

层次:根的层次为0,根的直接左右孩子层次为1,以此类推层次逐渐递增。

树的遍历(前序(根左右),中序(左根右),后序(左右根))

霍夫曼编码(求哈夫曼树)

分治法

【大题】数据流图(DFD)

结构化语言的三种基本结构:

  • 顺序结构
  • 选择结构:
  • 重复结构:

数据流图的组成元素有:外部实体E,加工P,数据存储D,数据流

(1)外部实体:当前系统之外的人、物、外部系统

(2)加工:将输入数据处理得到输出数据一个加工至少有一个输入数据流和一个输出数据流

三种错误的加工:

  • 黑洞:只有输入数据流没有输出数据流;
  • 白洞:没有输入数据流只有输出数据流;
  • 灰洞:输入数据流不足以产生输出数据流。

(3)数据存储:功能是存储加工的输出数据,提供加工的输入数据

(4)数据流:由一组固定成分的数据组成,表示数据的流向

数据流的流向:

  • 从一个加工流向另一个加工;
  • 从加工流向数据存储(写操作);
  • 从数据存储流向加工(读操作);
  • 从外部实体流向加工(输入);
  • 从加工流向外部实体(输出)。

数据流的起点或终点必须有一个是加工!!!

解题方式

问题1:求解外部实体

通过文字内容和0层数据流图做对比,注意不要看顶层数据流图,看0层数据流图能保证答案的准确性。

问题2:求解数据存储

与问题1的解题方式相同,记得后面加上表或者文件,例:(相关信息)表或文件,在名字后面添加表或文件。

问题3:求解数据流

一般来说,数据流条数等于该题的分值到分值的一半。

具体解题步骤(问题3):

(1)父图子图平衡

根据顶层数据流图看0层数据流图,看顶层图中有的数据流但0层图中没有的数据流,那就是缺失的数据流。

(2)加工既有输入数据流也有输出数据流

看0层图中的加工,每一个加工都应该有指向加工的箭头和从加工指出的箭头,如果没有,就代表有缺失的数据流。

(3)数据守恒

看文字内容和0层图,对应的数据流进行查找,然后将找出来的数据流与前两步缺失的数据流进行组合拼接。

找出来的数据流条数:分值的一半 <= 数据流条数 <= 分值。

答题格式:文字格式

【大题】数据库设计

E-R图中的主要构件

子实体:子实体与实体之间类似于子类与父类之间的关系,需要在子实体的属性中添加父实体的主键。

实体和子实体:

职员中包括飞行师、机械师、管理员。子类和父类之间的关系用子实体和父实体表示。

属性

简单属性:是原子的、不可再分的。

复合属性:可以细分为更小的部分。

单值属性:一个学生只有唯一的学生号,这就是单值属性。

多值属性:一个人的住址由省、市、县、街道等属性组合而成,这就是多值属性。

NULL属性:当实体在某个属性上没有值或属性值未知时,使用NULL值,表示无意义或不知道。

派生属性:派生属性可以从其他属性得来。“工作年限”可以从参加工作时间和当前时间得到,这就是派生属性。

联系

联系分为一对一、一对多、多对多三种方式。

如何看实体在联系中是多方或是一方,看文字说明,如果说“一个部门可以有多个员工”,则部门——员工关系中,员工是多方,如果“一个员工只能在一个部门工作”,则部门是一方

注:题目中,主键用实线表示,外键用虚线表示 。

一对一联系(将联系归并到关联的任何一方)

归并时,将待归并一方的属性集中加入另一方实体的主键 + 联系中的属性即可

可以在观众这个实体中加入座位实体的主键“座位号”,也可以在座位这个实体中加入观众实体的主键“姓名”。

一对多联系(将联系归并到多方实体中)

归并时,将联系归并到多方实体中,在多方实体中加入一方实体的主键和联系的所有属性

下图,将联系归并到员工这个实体中,所以在员工实体中加入部门关系的主键“部门号”,和关系的属性(这个关系中没有属性就不需要加)。因为员工那方是多方(实体员工旁边有*)。

多对多联系(只能将联系转换成独立的关系模式)

【大题】UML建模

用例图

 

包含关系和扩展关系的最主要区别:是否必须

extend关系就是可能会需要用这个这个功能

include就代表必须要先完成这个功能

类图与对象图

泛化是对类来的  实现是对接口来的。

顺序图

活动图

状态图

通信图

试题练手

【大题】C语言算法题

此题主要考察的是关键部分代码填写【可根据题目描述或者给出的方程进行填写】、算法的复杂度【看循环次数】填写以及根据算法填空。

历年考点:
2018年下:动态规划
2019年上:动态规划 背包最优解
2019年下;回溯法 N皇后
2020年下:希尔排序算法
2021年上:动态规划算法(自底向上就是动态规划)
2021年下:动态规划

【大题】Java语言程序设计(填代码)

总结答题技巧如下:

  • 调用父类无参构造方法是super();
  • 小数默认是double类型,所以如果变量是double类型就不需要加d了
  • 抽象类abstract class 里方法没有方法体,要加abstract关键字,有方法体就不用;接口interface里的方法不需要用publc修饰,也不用加abstract 修饰
  • 子类使用父类的属性和方法都不需要加this和super,千万不能加

例:现欲构造一文件/目录树,采用组合(Composite)设计模式来设计,得到的类图如6-28所示:

常用的排序算法

稳定性:若在待排序的一个序列中,Ri和Rj的关键码相同,即Ri=Rj,且在排序前Ri领先于Rj,那么当排序后,如果Ri和Rj的相对次序保持不变,Ri依然领先于Rj,则称此类排序算法是稳定的,否则就是不稳定的。

内部排序:指待排序记录全部存放在内存中进行排序的过程。

外部排序:指待排序记录的数量很大,以至内存不能容纳全部记录,在排序过程中尚需对外存进行访问的排序过程。

直接插入排序

是一种最简单的排序算法,其基本操作是将一条记录插入到已排好序的有序表中,从而得到一个新的、记录数量增1的有序表。当有序表为空时,该记录插入在有序表第一位。

直接插入排序的时间复杂度O(n^{2}) ,空间复杂度O(1)

折半插入排序

折半插入排序是通过折半查找来实现的。

时间复杂度是O(n^{2}),空间复杂度是O(1)

希尔排序

希尔排序实质上是采用分组插入的方法。

先将整个待排序记录序列分割成几组,从而减少参与直接插入排序的数据量,对每组分别进行直接插入排序,然后增加每组的数据量,重新分组。

这样当经过几次分组排序后,整个序列中的记录“基本有序”时,再对全体成员进行一次直接插入排序。

时间复杂度是O(),空间复杂度是O(1)。

冒泡排序

是一种最简单的交换排序方法,它通过两两比较相邻记录的关键字,如果发生逆序,则进行交换,使得小的记录往左移,大的记录往右移

时间复杂度是O(n^{2}),空间复杂度是O(1)

快速排序

快速排序实质上就是每次从待排序记录序列中选出一个基准元素,把比基准元素小的放在基准元素的左边,比基准元素大的放在基准元素的右边。然后对基准元素左右的记录序列继续进行排序

简单选择排序

也称为直接选择排序。每一趟从第一个元素开始,进行比较,每一趟选出待排序记录序列中的最小值,放在已排序好的记录序列的最后面

时间复杂度为O(n^{2}),空间复杂度为O(1)

堆排序

大根堆:根结点的值 >=(大于等于)左右子节点的值

小根堆:根结点的值 <=(小于等于)左右子节点的值

知识点记住,具体运行过程有印象即可。

归并排序

归并排序就是将两个或两个以上的有序表合并成一个有序表的过程

将两个有序表合并成一个有序表的过程称为2—路归并,2—路归并最为简单和常用

其他

在分布式数据库系统中,共享性是指数据存储在不同的结点数据共享;自治性是指每个结点对本地数据都能独立管理;可用性是指当某一场地故障时,系统可以使用其他场地上的副本而不至于使整个系统瘫痪;分布性是指在不同场地上的存储。

顺序存储时,通过元素在存储空间中的相对位置来表示数据元素之间的逻辑关系,元素的逻辑相对位置与物理相对位置是一致的。
链表存储:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
索引存储:分别存放数据元素和元素间关系的存储方式。
哈希存储:哈希存储的基本思想是以关键字Key为自变量,通过一定的函数关系(散列函数或哈希函数),计算出对应的函数值(哈希地址),以这个值作为数据元素的地址,并将数据元素存入到相应地址的存储单元中。

DHCP协议中,无效的IP地址169.254.X.X(windows) 和 0.0.0.0(linux)

在结构化分析中   ,  数据流图描述数据如何被采集、处理、保存和使用的(围绕信息系统的功能)。

软件维护工具主要有:版本控制工具、文档分析工具、开发信息库工具、逆向工程工具、再工程工具。

逆向工程是在软件维护时,由于缺少文档资料,而对软件的一种分析。

需求分析的输出包括:数据字典,数据流图,ER图

验收测试由用户主导,开发方参与。

测试配置管理的基本活动包括配置项标识、配置项控制、配置状态报告以及配置审计。

确认测试包括:内部确认测试以及 Alpha 测试与  Beta  测试。

COCOMO II是一种成本估算模型,估算选择有:对象点、功能点和代码行。

在知道小组成员后,求沟通路径可按公式 n x (n-1) / 2 求解,那么题目告诉我们开发小组有 8 个成员,即存在的沟通路径为 8 x (8-1) / 2=28 条。

软件测试的对象为:程序、数据和文档

软件测试配置管理包括的4个基本活动为:配置项标识、配置项控制(变更控制)、配置状态报告、配置审计

耦合是模块之间的相对独立性(互相连接的紧密程度)的度量。耦合取决于各个模块之间接口的复杂程度、调用模块的方式以及通过接口的信息类型。

软件工程是一种层次化的技术,从底向上分别为质量、过程、方法和工具

软件测试工具本身不具备智能,无法替代手工测试。

软件配置管理的内容不包括质量控制

统一过程UP定义了四个阶段,即起始、精化、构建和移交阶段 。

决策树和决策表适用于表示加工中涉及多个逻辑条件的情况。

并列争球法使用了迭代的方法,其中,把每段时间( 30 天)一次的迭代称为一个“冲刺”,并按需求的优先级别来实现产品,多个自组织和自治的小组并行地递增实现产品。

编译程序中语法分析器接受以单词为单位的输入,并产生有关信息供以后各阶段使用。算符优先法、LR分析法和递归下降法是几种常见的语法分析技术。LR分析法主要有SLR(1)、LR(0)、LR(1)和LALR(1)等4种,其中LR(1)的分析能力最强,LR(0)的分析能力最弱。

当系统正常运行时,按一定的时间间隔,把数据库缓冲区内容写入数据文件。

数据字典就是为数据流图中的每个数据流、文件、加工,以及组成数据流或文件的数据项做出说明。

数据字典有4类条目:数据流、数据项、数据存储和基本加工。

模块结构图由模块、调用、数据、控制信息、转接符号5个基本符号组成。

结构化设计包括:

  • 体系结构设计:定义软件的主要结构元素及其关系;
  • 数据设计:基于实体联系图确定软件涉及的文件系统的结构及数据库的表结构;
  • 接口设计:描述用户界面,软件和其他硬件设备、其他软件系统及使用人员的外部接口,以及各种构件之间的内部接口;
  • 过程设计:确定软件各个组成部分内的算法及内部数据结构,并选定某种过程的表达形式来描述各种算法。

数据流图中加工规格说明,描述把输入数据流变换为输出数据流的加工规则。

人机交互“黄金三原则”包括:置于用户控制之下、减少用户的记忆负担,保持界面的一致性。

模块的作用范围是指模块一个判定的作用范围,原则上一个模块的作用范围应该在其控制范围之内,若没有,则可以将判定所在模块合并到父模块中,使判定处于较高层次。

管道过滤器体系结构不提高性能。

逆向工程从详细的源代码实现中抽取规格说明,一般来说是在原软件交付用户使用之后进行的,即在原软件的维护阶段进行。

归纳法是指从测试所暴露的问题出发,收集所有正确或不正确的数据,分析他们之间的关系,提出假想的错误原因,用这些数据来证明或反驳,从而查出错误所在

“提高系统的运行效率”不是MVC(模型—视图—控制器)体系结构进行软件系统开发的优点。

系统测试阶段的测试来自于需求分析阶段

风险可以进行干预以期减少损失,但是无法避免。

风险的优先级是通过风险暴露来确定的

AIX是IBM的一种商业化的unix操作系统。

采用微内核结构的操作系统提高了系统的灵活性和可扩展性,并增强了系统的可靠性和可移植性,可运行于分布式系统中。

程序运行时的用户内存空间一般划分为代码区、静态数据区、栈区和堆区,其中栈区和堆区也称为动态数据区全局变量的存储空间在静态数据区

常见的命名对象有:变量、函数、数据类型。

使用ping命令进行网络检测,按照由进及远原则,首先执行的是ping命令,其次是ping本地IP,再次是ping默认网关,最后是ping远程主机。

域名查询记录:先HOSTS表,再本地DNS缓存,然后再查找本地DNS服务器,再根域名服务器,顶级域名服务器、权限域名服务器

telnet使用明文传输用户名、密码等信息,不安全。

匿名用户的英语名称就是anonymous,guest是来宾用户,administrator是超级用户。

PGP是安全电子邮件协议。

默认网关和本地IP地址应属同一网段。

ipconfig显示信息;

ipconfig/all显示详细信息;

ipconfig/renew更新所有适配器;

ipconfig/release释放所有匹配的连接。

信息安全的基本属性有机密性、完整性和可用性

代理ARP就是将一个主机作为对另一个主机ARP进行应答。代理ARP是指由一个路由器代替远端目标回答ARP请求

“代理ARP”是指由离源主机最近的路由器假装目标主机回答源主机的ARP请求。

PGP使用RSA公钥证书进行身份认证,使用IDEA(128位密钥)进行数据加密,使用MD5进行数据完整性验证。

扫描器无法发现正在进行的入侵行为,而且它还有可能成为攻击者的工具。

聚簇索引会修改数据的存储方式,使得数据的物理存储顺序与聚簇索引项的顺序一致,因此,改变的是内模式

日志文件是用来记录事物对数据库的更新操作的文件。

日志文件的作用:

  • 进行事务故障恢复;
  • 进行系统故障恢复;
  • 协助后备副本进行介质故障恢复。

簇类使得同类对象与其他类型数据对象分离。

查询是瓶颈——在关系上创建适当的索引来加速查询。

更新是瓶颈——则应删除一些索引以加速更新。

将有利于大多数的查询和更新的索引设为聚簇索引。

数据库中NULL值:表示无意义或不知道。

安全性:指保护数据库免受恶意访问,即防止不合法的使用所造成的数据泄露、更新和破坏。

完整性:指数据库正确性和相容性,是防止合法用户使用数据库时向数据库加入不符合语义的数据。

并发控制是指在多用户共享的系统中,许多用户可能同时对同一数据进行操作。

DBMS的并发控制子系统负责协调并发事务的执行,保证数据库的完整性不受破坏,避免用户得到不正确的数据。

分片透明:用户或应用程序不需要知道逻辑上访问的表具体是怎么分块存储的;

复制透明:采用复制技术的分布方法,用户不需要知道数据是复制到哪些节点,如何复制的;

位置透明:用户无需知道数据存放的物理位置;

逻辑透明:即局部数据模型透明,指用户或应用程序无需知道局部场地使用的是那种数据模型。

最小函数依赖集的定义为:每个函数依赖右部为单属性、左部不含冗余属性;不含多余的函数依赖。传递依赖为多余的函数依赖,部份依赖的左部含有冗余属性。

BCNF是在3NF的基础上,消除主属性对码的部分和传递函数依赖

PV操作可以实现资源的互斥使用,PV操作针对的是互斥资源。

嵌入式操作系统的特点:

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

ISO/IEC 9126软件质量模型,该模型的质量特性和质量子特性如下:

  • 功能性(适合性、准确性、互用性、依从性、安全性);
  • 可靠性(成熟性、容错性、易恢复性);
  • 易使用性(易理解性、易学性、易操作性);
  • 效率(时间特性、资源特性);
  • 可维护性(易分析性、易改变性、稳定性、易测试性);
  • 可移植性(适应性、易安装性、一致性、易替换性)。
  • 安全性是功能特性的子特性。

软件维护

  • 改正性维护。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的错误使用,应当进行的诊断和改正错误的过程就称为改正性维护。
  • 适应性维护。在使用过程中,外部环境(新的硬、软件配置)、数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。为使软件适应这种变化,而去修改软件的过程就称为适应性维护。
  • 改善性维护。在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动称为改善性维护。
  • 预防性维护。这是指预先提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。

聚合对象是指一个对象包含其他对象。

在浏览器中输入URL,并按下回车键:

  • 浏览器向DNS服务器发出域名解析请求并获得结果;
  • 根据目的IP地址和端口号,与服务器建立TCP连接;
  • 浏览器向服务器发送数据请求;
  • 服务器将网页数据发送给浏览器;
  • 通信完成,断开TCP连接;
  • 浏览器解析收到的数据并显示;

一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接。

TCP和UDP均提供了端口寻址功能

SQL中,order by是排序,默认升序(asc升序,desc降序);

SQL中,group by是分组。

数据库管理系统利用日志文件来进行事务故障恢复和系统故障恢复。

在事务处理过程中,DBMS把事务开始、事务结束以及对数据库的插入、删除和修改的每一次操作写入日志文件。

当系统正常运行时,按一定的时间间隔,把数据库缓冲区内容写入数据文件;一旦发生故障,DBMS的恢复子系统利用日志文件撤销事务对数据库的改变,回退到事务的初始状态。

数据流程图DFD,实体联系图ERD。

MD5信息摘要算法:输入以512位为分组,进行处理,产生一个128位的输出

DES是典型的私钥加密体制,属于对称加密,不属于公开秘钥加密。

用户获取网站的数字证书后通过CA的公钥验证CA的签名,从而确认数字证书的有效性,然后验证网站的真伪。

外部实体一般为组织机构、人员、第三方系统

磁盘调度管理中,先进行移臂调度寻找磁道,再进行旋转调度寻找扇区。

CMM(软件能力成熟度模型)中1级成熟度最低,5级成熟度最高

测试过程基本上与开发过程平行进行,在需求分析阶段,就需要对验收测试、系统测试设计相关测试,撰写相关测试设计文档。

软件维护是软件生命周期最长的一段,相对于软件开发任务而言,软件维护工作要更加复杂。

E-R图中的联系转换,多对多联系需要单独转换为一个关系模式,也需要重新建类。

运行时结合是动态绑定,编译时结合是静态绑定。

IPv4用32位二进制表示,能够表示的地址空间是2^{32},IPv6用128位二进制表示,能够表示的地址空间是2^{128}

Boehm提出的十大风险(开发风险)是:开发人员短缺、不能实现的进度和预算、开发了错误的软件功能、开发了错误的用户接口、华而不实的需求、需求不断地变动、外部执行的任务不符合要求、外部提供的组件不符合要求、实时性不符合要求、超出了计算机科学发展的水平。

RUP中每个阶段结束时所产生的里程碑:

  • 初启阶段结束时的里程碑是生命周期目标

  • 精化阶段结束时的里程碑是生命周期架构

  • 构建阶段结束时的里程碑是最初运作能力

  • 移交阶段的里程碑是产品发布

RISC是精简指令集系统计算机简称,使用简单的指令。CISC是复杂指令集系统计算机简称,使用复杂的指令。

RISC多寄存器寻址,所以会在实现过程中增加通用寄存器,CISC不需要采用很多通用寄存器。

RISC适合流水线,CISC不适合。

DMA是直接内存存取,传送数据的时间只与内存相关,与CPU的时间无关。

典型的对称加密算法:DES,3DES,AES等。

典型的非对称加密算法:RSA,ECC等。

典型的摘要算法:SHA,MD5等。

SQL注入攻击,就是通过把SQL命令插入到 Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。其首要目的是获取数据库访问权限。

词法分析阶段处理的错误:非法字符、单词拼写错误等

语法分析阶段处理的错误:标点符号错误、表达式中缺少操作数、括号不匹配等有关语言结构上的错误

静态语义分析阶段(即语义分析阶段)处理的错误:运算符与运算对象类型不合法等错误

目标代码生成(执行阶段)处理的错误:动态语义错误,包括陷入死循环、变量取零时做除数、引用数组元素下标越界等错误等。

JAVA的栈空间只存放基本类型、引用类型变量和方法,而堆中存储实例对象。

软件详细设计阶段的主要任务包括:对模块内的数据结构进行设计;对数据库进行物理设计;对每个模块进行详细的算法设计代码设计、输入/输出设计、用户界面设计等其他设计。

软件概要设计阶段的主要任务包括

  • 软件系统总体结构设计,将系统划分成模块;确定每个模块的功能;确定模块之间的调用关系;确定模块之间的接口,即模块之间传递的信息;评价模块结构的质量。
  • 数据结构及数据库设计。

面向对象分析包含5个活动:认定对象、组织对象、描述对象间的相互作用、定义对象的操作、定义对象的内部信息。

存储矩阵的一般方法是采用二维数组,其优点是可以随机地访问每一个元素,因而能够较容易地实现矩阵的各种运算。

稀疏矩阵的三元组表的顺序存储结构称为三元组顺序表,常用的三元组表的链式存储结构是十字链表。

McCabe环路复杂度:

V(G)=m-n+2;m是边,n是点

V(G)=P+1;P是判定节点数

循环队列长度公式:队列长度=(Q.rear+MaxSize-Q.front)%MaxSize

Q.rear:队尾。指向数列队尾元素的下一个空间。

Q.front:队头。指向数列队头元素。

MaxSize:队列的最大长度。如队列Q.data[10]的表示Q.data[0]~Q.data[9]一共十个元素。

优先队列采用堆实现,时间复杂度是O(lgn)

机器字长为n位的二进制数可以用补码来表示2n个不同的有符号定点小数。

总线宽度为32bit,时钟频率为200MHz,若总线上每5个时钟周期传送一个32bit的字则该总线的带宽为160MB/S

关于指令流水线性能度量的叙述中:

  • 最大吞吐率取决于流水线中最慢段所需的时间
  • 如果流水线出现断流,加速比会明显下降
  • 要使加速比和效率最大化应该对流水线各级采用相同的运行时间
  • 流水线采用异步控制并不会明显提高其性能

漏洞补丁管理属于系统安全,数据库安全属于应用安全

软件工程的基本要素包括方法、工具和过程

在概要设计阶段选择适当的解决方案,将系统分解为若干个子系统,建立整个系统的体系结构。

嵌入式系统初始化过程主要有3个环节,按照自底向上、从硬件到软件的次序依次为片级初始化->板级初始化->系统级初始化系统初始化主要任务是以软件初始化为主,主要进行操作系统的初始化

某公司计划开发一个产品,技术含量很高,与客户相关的风险也很多,则最适于采用螺旋开发过程模型。

正式技术评审的目标是发现软件中的错误

自底向上的集成测试策略的优点包括不需要写桩程序

以下关于软件可维护性的叙述中,不正确的是“可维护性不受软件开发文档的影响”

UML图中,对新开发系统的需求进行建模,规划开发什么功能或测试用例,采用用例图最适合。而展示交付系统的软件组件和硬件之间的关系的图是部署图

某些设计模式会引入总是被用作参数的对象。例如Visitor对象是个多态accept方法的参数

递归下降分析方法是一种自上而下的语法分析方法

设栈S和队列Q的初始状态为空,元素a b c d e f g依次进入栈S,要求每个元素出栈后立即进人队列Q,若7个元素出队的顺序是b d f e c a g,则栈S的容量至少应该是4

某二叉树的先序遍历序列为c a b f e d g,中序遍历序列为a b c d e f g,则该二叉树是平衡二叉树

VLAN的优点的是允许逻辑地划分网段

kerberos系统中可通过在报文中加入时间戳来防止重放攻击。

某电子商务网站向CA申请了数字证书,用户可以通过使用 CA的公钥 验证CA的签名 的真伪来确定该网站的合法性。

李某受非任职单位委托,利用该单位实验室实验材料和技术资料开发了一项软件产品,对该软件的权利归属,表达正确的是若该单位与李某对软件的归属有特别的约定,则遵从约定;无约定的原则上归属于李某

敏捷开发方法scrum的步骤不包括Refactoring(重构)

易用性的自特性包括易理解性、易学性、易操作性

DMA控制方式是在 主存与外设 之间直接建立数据通路进行数据的交换处理。

震网(Stuxnet)病毒是蠕虫病毒

结构化设计方法中使用结构图来描述软件系统的体系结构,指出一个软件系统由哪些模块组成,以及模块之间的调用关系。结构图的基本成分包括模块、调用和数据。模块是指具有一定功能并可以用模块名调用的一组程序语句,如函数、子程序等,它们是组成程序的基本单元。调用表示模块之间的关系,用从一个模块指向另一个模块的箭头来表示,其含义是前者调用了后者。数据是指模块调用过程中来回传递的信息,用带注释的短箭头表示。

 

 

 

软考下午题(一)

 

posted @ 2022-10-27 08:30  残城碎梦  阅读(864)  评论(0编辑  收藏  举报