软件设计师中级复习资料

计算机组成与体系结构

CPU的组成

Central Processing Unit【主要是运算器+控制器】
详细:【运算器、控制器、寄存器组合内部总线等组成】

运算器:负责算术和逻辑运算,如加减乘除、和与或非、比较。主要由下面四个等组成

算术逻辑单元(ALU):数据的算术运算和逻辑运算
累加寄存器(AC):【至少有一个,暂时存放操作数和运算结果】
数据缓冲寄存器(DR):写内存时,暂存指令或数据
状态条件寄存器(PSW):存放状态和控制标志
额外附加:【状态标志和控制标志 C进位、V溢出、Z零标志、N负标志、I中断标志、D方向标志、单标志等 通常一个算术操作产生一个运算结果,而一个逻辑操作产生一个判决】

控制器:决定计算机运行的自动化、程序正确运行和异常处理等,包括了指令控制逻辑【下面几个器】、时序控制逻辑、总线控制逻辑和中断控制逻辑等

指令寄存器(IR):存放正在执行的指令【对用户完全透明】【位数 取决于 指令字长】
程序计数器(PC):存放下一条指令所在单元的地址【程序猿可访问
地址寄存器(AR):存放当前CPU访问的内存单元或I/O设备的地址
指令译码器(ID):对指令中的操作码字段进行分析和解释【指令译码】

寄存器组:存放数据、地址、控制信息、状态信息等等。运算器和控制器中的寄存器是专用寄存器,其作用是固定的。

寄存器和通用寄存器

CPU的功能
  • 程序控制:CPU通过执行指令来控制程序的执行顺序
  • 操作控制:一条指令的实现需要若干操作信号配合来完成,CPU产生每条指令的操作信号并将操作信号送往对应的部件,控制相对应的部件按指令的功能要求进行操作。
  • 时间控制:指令在执行过程中操作信号的出现时间、持续时间以及出现的时间顺序都需要进行严格控制。
  • 数据处理:对数据进行算术运算及逻辑运算等方式进行加工处理。这是根本任务。
原码/反码/补码/移码

特点是采用二进制,数的符号用0和1表示,机器数有无符号数和带符号数之分。

  • 对于无符号数,若约定小数点的位置在机器数的最低位之后,则是纯整数;若约定小数点的位置在机器数的最高位之前,则是纯小数;
  • 对于带符号数,机器数的最高位是表示正、负的符号位,其余位则表示数值。

原码:最高位是正负,0=>正、1=>负

反码:正数的反码和原码一致,负数的反码除符号外其他反转 [ 0的反码有两个±0]

补码:正数的补码和反码和原码一致,负数的补码是在反码的末尾上加 1

附录:纯小数转原码_怪扎扎丶的博客-CSDN博客_小数的原码

-+0的补码和移码一致

补码–>简化计算机运算部件的设计【减法当加法处理】

浮点数的表示

定点表示法

表示数据时,小数点的位置固定不变。小数点的位置通常有两种约定方法,定点整数【纯整数,小数点在最低有效值位之后】和定点小数【纯小数,小数点在最高有效值位之前】,运算容易出现结果超出范围而溢出

浮点表示法

对阶时,小数向大数看齐;对阶是通过较小数的尾数右移实现的。

浮点数能表示的数的范围由阶码的位数决定,精度由尾数的位数决定。

范围

定点表示法 < 浮点表示法

浮点数 = 阶码 + 尾数
阶码在计算机中用移码表示;尾数在计算机中用补码表示

与/或/异或/浮点数规格化?
计算机体系结构分类

宏观:按处理机的数量进行分类

  • 单处理系统(Uni-processing System)
  • 并行处理系统(Parallel Processing)
  • 多处理系统(Multiprocessing System)
  • 分布式处理系统(Distributed Processing System)

微观:并行程度分类

有Flynn分类法、冯泽云分类法、Handler分类法和Kuck分类法。

Flynn分类法:按指令流和数据流的多少进行分类:

单指令流+单数据流(Single Instruction stream Single Data stream,SISD);早起的计算机都是SISD 如冯诺·依曼架构、IBM 的PC机
单指令流+多数据流(Single Instruction stream Multiple Data stream,SIMD);Intel处理器等 如现今的单核计算机
多指令流+单数据流(Multiple Instruction stream Single Data stream,MISD);没投入实际应用中
多指令流+多数据流(Multiple Instruction stream Multiple Data stream,MIMD)Intel和AMD的双核处理器等等

冯泽云分类法:按并行度对各种计算机系统进行结构分类
并行度(Pn):计算机系统在单位时间内能够处理的最大二进制位数

字串行位串行(WSBS)计算机
字并行位串行(WPBS)计算机
字串行位并行(WSBP)计算机
字并行位并行(WPBP)计算机

Handler分类法:基于硬件并行程度计算并行度的方法

将计算机的硬件结构分为3个层次:处理机级、每个处理机中的算逻单元机、每个算逻单元中的逻辑门电路级,分别计算这三级中可以并行或流水处理的程序,即可算出某个系统的并行度。

Kuck分类法:用指令流和执行流(Execution Stream)进行分类

单指令流+单执行流(SISE);
单指令流+多执行流(SIME);
多指令流+单执行流(MISE);
多指令流+多执行流(MIME)

CISC和RISC

CISC(Complex Instruction Set Computer,复杂指令集计算机):其思想是进一步增强原有指令的功能,用更复杂的新指令去代替原先子程序完成的功能,实现软件功能的硬化,导致其指令系统越来越庞大、复杂。目前绝大数计算机都属于CISC。

弊端:

①指令集过于庞杂。
②微程序技术CISC的重要支柱,每条复杂指令都要通过执行一段解释性微程序才能完成,这就需要多个CPU的周期,降低了机器的处理速度。
③指令系统过于庞大,使高级语言编译程序选择的目标指令范围变大,使编译程序变得冗长、复杂,难以优化使其变成高效的目标代码。
④CISC强调完善的中断控制,势必导致动作繁多,设计复杂,研制周期长。
⑤CISC给芯片设计带来众多困难,使芯片种类增多,出错率大,降低效益。

RISC(Reduced Instruction Set Computer,精简指令集计算机):其思想是减少指令总数和简化指令功能降低硬件设计的复杂度,使指令能单周期执行,并通过优化编译提高指令的执行速度,采用硬布线控制逻辑优化编译程序,寻址单一。

关键技术:

①重叠寄存器窗口技术(Overlapping Register Windows):通过重叠的窗口进行传输参数和计算结果。

②优化编译技术:提高寄存器的使用效率及减少访问次数。

③超流水及超标量技术。提高流水线速度的技术。

④硬布线逻辑与微程序相结合在微程序技术中。

流水线

采用异步控制方式在给流水线提速的同时,会明显增加流水线阻塞的概率,所以不会明显提高整体性能。

流水线相关计算

流水线计算【n:指令数、△t:周期、k:阶段】
流水周期是几个阶段中最长的
xx条指令全部执行时间:

  • 理论公式:(t1+t2+k)+(n-1)*△t
  • 实际公式:(k+n-1)*△t
  • 流水线的吞吐率TP=指令数/执行时间
  • 最大吞吐率:TPmax= lim ⁡ n → ∞ \lim\limits_{n\rightarrow\infty} nlim*n/(k+n-1)△t=1/△t
  • 加速比:S = 不用流水线的时间/使用流水线的时间
  • 效率:n个任务占用的时空区/k个流水段的总时空区=T0/kTk
校验码【疑似不考】

分为合法编码和错误编码,3种常用的校验码有:奇偶校验码、海明码、循环冗余码。

奇偶校验码

秒懂 奇偶校验码 - 知乎 (zhihu.com)
奇偶校验只能查错不能纠错。

海明码

【通俗易懂的通信】信道编码之——汉明码_Norstc的博客-CSDN博客_汉明码
分组后算 1 的个数是不包括本身的!
海明码利用奇偶性进行检错和纠错

海明码纠错(最少校验位):
数据位是n,校验位是k,则满足2k-1 >=n+k

循环冗余码

两幅图学会CRC - 知乎 (zhihu.com)
生成多项式是由x4+x+1(10011)生成的。补的0是由码位-1(5-1),进行异或运算。

进行模2计算

所处位置=>存储器

内存:也称为主存,设在主机内或主机板上,用来存放机器当前运行所需要的程序和数据,以便向CPU提供信息。相对于外存,其特点是容量小、速度快。[内存条]

外存:也称为辅存,如硬盘、光盘等,需要时调入内存。

工作方式=>存储器

读/写存储器和只读存储器。

  1. 读/写存储器(Random Access Memory,RAM):既能读取数据也能存入数据的存储器。
  2. 只读存储器:工作过程中仅能读取的存储器。根据数据的写入方式还能再进行细分。
    • 固定只读存储器(Read Only Memory,ROM):只能读内容出来,不能修改。如BIOS
    • 可编程的只读存储器(Programmable Read Only Memory,PROM):其中的内容由用户一次性写入,写入后不能再修改。
    • 可擦除可编程的只读存储器(Erasable Programmable Read Only Memory,EPROM):其中内容即可读出,也可以用户写入。
    • 电擦除可编程的只读存储器(Electrically Erasable Programmable Read Only Memory,EEPROM):其中内容即可读出,也可以用户写入,与EPROM类似,不同的擦除方式,一个是光,一个是电。
    • 闪速存储器(Flash Memory):特性在EPROM和EEPROM之间,可以用电信号进行擦除,可在几秒内删除,速度远快于EPROM。
寻址方式=>存储器

随机存储器、顺序存储器、直接存储器

  1. 随机存储器(Random Access Memory,RAM):可以对任何存储单元存入或读取数据,访问任何一个存储单元所需的时间是相同的。
  2. 顺序存储器(Sequentially Addressed Memory,SAM):访问数据所需要的时间与数据所在的存储位置相关,磁带是典型的顺序存储器。
  3. 直接存储器(Direct Addressed Memory,DAM):介于随机存取和顺序存取之间的一种寻址方式。磁盘是一种直接存取存储器,它对磁道的寻址是随机的,而在一个磁道内则是顺序寻址。
存储器=>其他

DRAM动态随机存取存储器,最为常见的系统内存:是一种需要通过周期性刷新来保持数据的存储器件

相联存储器是一种按内容访问的存储器

虚拟存储器是由主存+辅存两级存储器组成

主存主要是由DRAM构成的,而SRAM构成Cache

分级存储体系=>存储容量、成本和速度之间的矛盾。

Cache

存放当前最活跃的程序和数据,其特点是位于CPU与主存之间,容量小【一般在几千字节到几兆字节之间】;速度一般比主存快5~ 10倍,是由快速半导体存储器构成,其内容是主存局部域的副本。对程序员来说是透明的。

全相联地址映射

主存的任意一块可以映象到Cache中的任意一块

直接相联映射

主存中一块只能映象到Cache的一个特定的块中

组相联的映射

各区中的某一块只能存入缓存的同组号的空间内,但组内各块地址之间则可以随意存放。

其他

总主存的组到Cache的组之间采用直接映象方式,在两个对应的组内部采用全相联映象方式

在程序的执行过程中,Cache与主存的地址映射是由硬件自动完成的。

全相联映像块冲突最小,其次为组相联映像,直接映像块冲突最大。

中断向量表

中断向量表(interrupt vector table,IVT)是中断源的识别标志,可用来形成相应的中断服务程序的入口地址或存放中断服务程序的首地址称为中断向量。

输入输出技术

程序控制方式

主机I/O时先询问,然后得到是传输还是等待,若此时CPU启动I/O,那就会停下现程序

由CPU执行程序控制数据的输入输出过程【无需干预数据传送过程】

CPU与I/O 串行工作

中断方式

外设准备好输入数据或接收数据时,向CPU发出中断信号,若CPU决定响应请求,则会暂停当前执行的任务,进行响应,最后再回去执行被中断的任务

CPU与I/O并行工作

直接内存存取(Direct Memory Access,DMA)

CPU只需向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传输完再将信息反馈给CPU【无需CPU干预 】【在主存与外设【I/O设备】之间直接建立数据通路进行数据的交换处理】

CPU与I/O并行工作

中断向量提供中断服务程序入口地址

程序查询方式是一种程序直接控制方式

中断响应时间指的是从发出中断请求开始进入到中断处理程序的时间

CPU是在一个总线周期结束时相应DMA请求

寻址方式

立即寻址:操作数直接在指令当中,直接读取【操作数包含在指令中】

寄存器寻址:操作数存放在寄存器中

直接寻址:指令中存放的是操作数的地址,直接解析这个地址

间接寻址:指令中存放的操作数地址的地址

速度:快>慢

立即寻址 > 寄存器寻找 > 直接寻址 > 间接寻址

寻址范围计算

例:字节32,内存2GB寻址范围是多少?

2GB=2×1024×1024×1024×8---->比特bit

字编址时:2×1024×1024×1024×8/32—>512MB

Windows系统权限

administrator > power users > users >everyone

可靠性与可用性

可用性:MTTF / (1+MTTF) (Mean Time To Failure,平均失效前时间)

可靠性:MTBF / (1+MTBF) (Mean Time Between Failure,平均无故障时间)

可靠度计算

怎样计算计算机系统的可靠度?_百度知道 (baidu.com)

总线系统

数据总线(Data Bus)、地址总线(Address Bus)、控制总线(Control Bus)

常见的有:ISA、PCI、EISA、SCSI、USB、SATA

PCI:并行内总线

SCSI:并行外总线

SATA、USB都是串行

总线结构设计=>

减少信息传输线的数量、便于布线、减小体积、提高可靠性;
便于接口设计、便于系统的扩充、易于系统的模块化等等

并行总线=>适合近距离高速数据传输

串行总线=>适合长距离数据传输

单总线结构=>性能低

总线计算

软件设计师中级复习资料_第1张图片

程序的局限性

时间局限性

若程序中的 某条指令一旦被执行,则不久的将来该指令可能再次被执行

空间局限性

一旦程序访问了某个存储单元,则在不久的将来,其附近的存储单元也最有可能被访问

指令

时钟周期

时钟周期由主频决定,是最小的时间单位也叫节拍、T周期、cpu时钟周期

机器周期

cpu完成一项基本操作所需最短时间,用了多个时钟周期又叫cpu周期
例:取指周期(含取指令和分析指令)、间址周期、执行周期均是一个机器周期

总线周期

一次访问存储器或I/O端口所需时间

指令周期

取出并执行一条指令花费的时间

时钟周期、机器周期、总线周期、指令周期的关系_ammmme的博客-CSDN博客_时钟周期,机器周期,指令周期关系

时钟周期⊆总线周期⊆机器周期⊆指令周期

VLIW(Very Long Instruction Word,超长指令字)

一种非常长的指令组合,它把许多条指令连在一起,增加了运算的速度

冗余技术

结构冗余

按其工作方法可分为静态、动态和混合冗余

信息冗余

为了检测或纠正信息在运算或传输中的错误另外加的一部分信息

时间冗余

指以重复执行指令或程序来消除瞬时错误带来的影响

冗余附加技术

指为实现以上冗余技术所需的资源和技术

屏蔽硬件错误的容错技术

关键程序和数据的冗余存储以及调用

屏蔽软件错误的容错技术

冗余附加技术【备份存储调用、错误检测和恢复、实现容错的固化程序】

磁盘计算

软件设计师-计算机基础复习6-磁盘相关计算_Joy_joye的博客-CSDN博客

最长

  • 系统读取的时间 = 旋转周期/物理块的数量
  • 旋转的圈数【正常是块数-1】
  • (读取时间+旋转周期)* 旋转的圈数 +(读+写的时间)【最后一块的时间】

最短

  • 物理块数 *(读+写的时间)
索引计算
  • 物理块数 = 磁盘大小 / 每个地址大小

  • 直接索引:索引直接指向物理块(地址直接对应物理盘块存索引的内容)

    磁盘大小 * 地址块数

  • 一级间接地址索引:索引节点指向的物理块用来存放地址项。
    磁盘大小 * 对应的物理块数 * 地址块数

  • 二级间接地址索引:索引节点指向的物理块,存放的是一级索引。
    一级的 * 对应物理块数 * 地址块数

软考-索引结构(直接索引和间接索引),求最大文件长度_李墨策的博客-CSDN博客_直接索引

逻辑地址块号计算

逻辑地址与物理地址的计算涉及页号和物理块号和页内偏移 - 老乌龟 - 博客园 (cnblogs.com)

磁盘格式化

非格式化容量和格式化容量的计算_lizhenyuan的博客-CSDN博客

磁盘格式化容量_这个名字还中的博客-CSDN博客_硬盘格式化容量

计算机性能指标计算

软件设计师中级复习资料_第2张图片

软件设计师中级复习资料_第3张图片

段页式存储计算

软件设计师中级复习资料_第4张图片

位示图计算

建议计算方式:2048*210/8/128 =2048

软件设计师中级复习资料_第5张图片

缓冲时间计算

单缓冲区

双缓冲区

进程资源图

进程资源图理解与化简_cwxblog的博客-CSDN博客_进程资源图

其他
  • CPU根据指令周期的不同阶段来区别在内存中以二进制编码形式存放的指令和数据
  • I/O软件隐藏了I/O操作的实现细节,方便用户使用I/O设备
  • CMM是软件过程能力成熟模型:1-5级,不断提高
    CMMI是多个CMM进行集成
  • 具体层次从上往下分别为用户级I/O层、设备无关I/O层、设备驱动程序、中断处理程序、硬件
    硬件:完成具体的I/O操作。
    中断处理程序:I/O完成后唤醒设备驱动程序。
    设备驱动程序:设置寄存器,检查设备状态。
    设备无关I/O层:设备名解析、阻塞进程、分配缓冲区。
    用户级I/O层:发出I/O调用。
  • 计算机加减乘除用补码

信息安全

网络安全协议

SSH为Secure Shell的缩写,由IETF 的网络小组(Network Working Group))所制定;SSH为建立在应用层基础上的安全协议。
SSH是目前较可靠,专为远程登录会话其他网络服务提供安全性的协议。
利用SSH协议可以有效防止远程管理过程中的信息泄露问题。

  1. HTTPS是基于SSL(Secure Sockets Layer安全套接层)的。
  2. http的端口号为80,而HTTPS的默认端口是443,注意区分。
计算机病毒特征

隐蔽性、传染性、潜伏性、触发性、破坏性等。

防火墙的包过滤依据

源IP地址、源端口号、目标IP地址和目标端口号(没有MAC地址

数字签名以及数字证书

数字签名

数字签名用于通信的A、B双方,使得A向B发送签名的消息P,提供以下的服务

  1. B可以验证消息P确实是来源A
  2. A不能否认发送过消息P
  3. B不能编造或改变消息P

数字签名首先需要生成消息摘要,使用非对称加密算法以及私钥对摘要进行加密。接收方使用发送方公钥对消息摘要进行验证

【数字签名 发送者私钥加密 接收者公钥解密】

数字证书

验证 数字证书的有效性==>公钥

加密算法

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

RSA==>数字签名(消息摘要)

DSA

对称/分组加密(私有)

DES、三重DES、RC-5、IDEA、AES

摘要算法

MD5

散列算法

SHA-1

安全需求类型

物理安全【机房安全】、网络安全【入侵检测】、系统安全【漏洞补丁管理】、应用安全【数据库】

漏洞扫描系统

通过扫描等手段对指定的远程或者本地计算机系统的安全脆弱性进行检测的一种安全技术,与目标主机的TCP/IP端口建立连接并请求某些服务(如TELNET、FTP等)【会被不法利用,以此获取目标主机的某些内在的安全弱点】

入侵检测系统
防火墙

软件防火墙、硬件防火墙、嵌入式防火墙【位于IP层,无法保护网络免受病毒】

防范的方式和侧重点

包过滤防火墙 => 通用、廉价、有效;一般位于网络层和传输层,根据数据包的源地址、目的地址、端口号、协议类型来过滤数据包

应用层网关防火墙 => 位于应用层,针对特点的网络应用协议

代理服务器防火墙 => 通信链路分为两段,间接会有性能瓶颈

内网(LAN Area)、DMZ、外网(Internet区域)

防火墙区域受保护程度

内网 > DMZ > 外网

特点

  1. 内网可以访问外网
  2. 内网可以访问DMZ
  3. 外网不能访问内网(防火墙基本策略,若硬要–>VPN)
  4. 外网可以访问DMZ
  5. DMZ不能访问内网
  6. DMZ不能访问外网
网络攻击

包括四张攻击方式:

① 截获 : 窃听 其它的 通信内容 , 不影响网络通信 ;

② 中断 : 中断 他人 的网络通信 ;

③ 篡改 : 篡改 网络上传输的 报文 , 分组 信息 ;

④ 伪造 : 伪造 虚假 报文 信息 , 在网络中传递 ;

被动攻击

截获 (流量分析)

主动攻击

中断、篡改、伪造

如:病毒、蠕虫、木马、拒绝服务攻击

网络攻击具体类型

口令入侵

使用某些合法用户的账号和口令登录到目的主机,进行攻击活动

特洛伊木马(Trojans)

伪装成游戏或是程序,当程序被运行,程序就会向黑客通知用户的IP地址、预设的端口等信息

拒绝服务(DoS)

  1. 极大的通信量(带宽攻击)
  2. 极大的请求量(连通性攻击)

攻击目的:使计算机或网络无法提供正常的服务

端口扫描

利用Socket(套字节)编程与目标主机的某些端口建立TCP连接、进行传输协议的验证等,从而侦测目标主机的扫描端口哪些是激活,主机提供了哪些服务、服务中是否存在某些缺陷

网络监听

这是主机的一种工作模式;在此模式下,主机可以接收到本网段在同一条物理通道上传输的所有信息。使用网络监听工具可轻而易举地截取包括口令和账号在内的信息资料

欺骗攻击

攻击者创造一个易于误解的上下文环境,以引诱受攻击者进入并做出缺乏安全考虑的决策。

  • IP欺骗:

使被信任的主机丧失工作能力,通过获取目标主机TCP序列号,猜测其数据序列号,伪装成被信任主机,建立与目标主机基于地址验证的应用连接,若成功,黑客会对此放置系统后门,以进行非授权操作==>【对被信任主机,进行替代】

  • ARP欺骗

伪造IP地址和MAC地址,能够使得在网关中产生大量的ARP通信量使网络阻塞,伪造网关ARP报文使得数据包无法发送到网关会造成无法跨网段通信

入侵检测技术

专家系统、模型检测、简单匹配

病毒防护

蠕虫病毒

蠕虫(Worm)是一个程序或程序序列。利用网络进行复制和传播,传染途径是通过网络、移动存储设备和电子邮件。

如:

  • 红色代码、爱虫病毒、熊猫烧香、Nimda病毒、艾莉兹病毒、震网等

木马病毒

是指通过特定的程序来控制另一台计算机,主要用于远程监控

如:

  • 冰河

宏病毒

破坏的是office文件相关,如doc等

  • 前缀:Macro

引导区病毒

破坏引导盘、文件目录等

数据库系统

数据库设计过程

需求分析:分析用户的需求,包括数据、功能和性能需求==>得到数据流图、数据字典和需求说明书。

概念设计:用数据模型明确地表示用户的数据需求。其反映了用户的现实工作环境,与数据库的具体实现技术无关。(E-R模型)。

逻辑设计:根据概念数据模型及软件的数据模型特性,按照一定的转换规则和规范化理论,把概念模型转换为逻辑数据模型,如层次模型、网状模型、关系模型等。关系规范化是在逻辑设计阶段进行。

物理设计:为一个确定的逻辑数据模型选择一个最适合应用要求的物理结构的过程。

数据库ACID

数据库的ACID(原子性、一致性、隔离性与持久性)_Y1ran_的博客-CSDN博客_数据库原子性

原子:要么做,要么不做

一致:其逻辑不变,AB转账事务前后,总额不变

隔离:事务互不影响

持久:若事务完成后,若发生意外,不会被回滚

数据库系统中的对应关系

视图=>外模式;基本表=>模式;存储文件=>内模式

数据的物理独立性:模式与内模式之间的映像;
数据的逻辑独立性:外模式与模式之间的映像

等级映像

①模式/内模式映像存在于概念级和内部级之间,用于定义概念模式和内模式之间的对应性

②外模式/模式映像存在于外部级和概念级之间,用于定义外模式和概念模式之间的对应性

DDBS(分布式数据库)

分片透明:是指用户不必关心数据是如何分片的,它们对数据的操作在全局关系上进行,即关系如何分片对用户是透明的,因此,当分片改变时应用程序可以不变。分片透明性是最高层次的透明性,如果用户能在全局关系一级操作,则数据如何分布,如何存储等细节自不必关系,其应用程序的编写与集中式数据库相同。

复制透明:用户不用关心数据库在网络中各个节点的复制情况,被复制的数据的更新都由系统自动完成。在分布式数据库系统中,可以把一个场地的数据复制到其他场地存放,应用程序可以使用复制到本地的数据在本地完成分布式操作,避免通过网络传输数据,提高了系统的运行和查询效率。但是对于复制数据的更新操作,就要涉及到对所有复制数据的更新。

位置透明:是指用户不必知道所操作的数据放在何处,即数据分配到哪个或哪些站点存储对用户是透明的。

局部映像透明性(逻辑透明):是最低层次的透明性,该透明性提供数据到局部数据库的映像,即用户不必关系局部DBMS支持哪种数据模型、使用哪种数据操纵语言,数据模型和操纵语言的转换是由系统完成的。因此,局部映像透明性对异构型和同构异质的分布式数据库系统是非常重要的。

DDBS(分布式数据库)的特点

物理分布性【存储在计算机网络的多个场地上】
逻辑整体性【虽然物理是分布性的,但逻辑上是一个整体,被全局用户共享,进行统一管理】
场地自治性【各场地的数据又本地的DBMS管理,有一定的自治处理能力】
场地之间协作性【高度自治但又相互协作构成一个整体】

数据库安全

为了保证数据库中数据的安全可靠和正确有效,系统在进行事务处理时,对数据的插入、删除或修改的全部有关内容先写入(日志文件),当系统正常运行时,按一定的时间间隔,把数据库缓冲区内容写入(数据文件);当发生故障时,根据现场数据内容及相关文件来恢复系统的状态。

范式

1NF:

字段不可再分

2NF:

主键才能确定唯一值

初始条件 若主键是【AB】

存在 AB 能推 C【AB】==>【C】

若存在 B 能推 C【B】==>【C】

则不是2NF

3NF:

不存在传递依赖

解析范式(1NF-4NF) - 一直是小学生 - 博客园 (cnblogs.com)

https://blog.csdn.net/wyh7280/article/details/83350722

(2条消息) 数据库的三大范式_不断前进的皮卡丘的博客-CSDN博客_数据库三大范式是什么

无损连接分解+依赖

无损分解/链接

情况① 若是两个关系R1和R2 对其进∩运算,将其结果进行闭包计算
若闭包计算推导所有的元素 => 保持无损分解/链接
否则 => 不保持

情况② 若是两个以上的关系,对其进行建表,用其依赖关系判断是否存在都是a的一列
若存在 => 保持
都这 => 不保持

建立如下表,关系判断、是否存在a成一行

关系/元素 A B C
AB a11 a12 b13
AC a21 b22 a23

保持依赖

若只用其分解的关系,便可以推出所有的依赖【包括左和右】,便是保持依赖

这个好点

【数据库】-- 无损分解和保持依赖 - 走位,走位 - 博客园 (cnblogs.com)

这俩没啥用

判断是否为无损连接分解_Wonz的博客-CSDN博客_怎么判断无损连接分解

无损分解和保持依赖_WKP9418的博客-CSDN博客_无损分解和保持函数依赖

关系代数

自然连接:类似无限

笛卡尔积:类似 ×

笛卡儿积、自然连接、等值连接的区别_May Hacker的博客-CSDN博客_自然连接和笛卡尔积的区别

关系代数优化:

先筛再联

参考 [第4讲 关系代数.pptx](相关资料\第4讲 关系代数.pptx)

异或关系:

当AB不同时,输出1;当AB相同时,输出0。

Armstrong公理

本体

  • 自反律:若Y是X的一部分(子集),则X→Y
  • 增广律:如果X→Y,则XZ→YZ(X∪Z→Y∪Z)
  • 传递律:如果X→Y,Y→Z,则X→Z

推理

  • 合并规则:若X→Y,X→Z,则X→YZ
  • 伪传递规则:若X→Y,WY→Z,则XW→Z
  • 分解性规则:若X→Y,Z是Y的一部分(子集),则X→Z

参考 【学习数据库】Armstrong公理系统_程序鸡的博客-CSDN博客_armstrong公理系统

E-R图冲突

结构冲突

同一对象在不同应用中具有不同的抽象
例如,职工在某一局部应用中被当作实体,而在另一局部应用中则被当作属性。

属性冲突

属性域冲突,即属性值的类型、取值范围或取值集合不同

如:name 一个是定义varchar一个是定义int

命名冲突

同名异义,即不同意义的对象在不同的局部应用中具有相同的名字
异名同义(一义多名),即同一意义的对象在不同的局部应用中具有不同的名字

如:对科研项目,财务科称为项目,科研处称为课题,生产管理处称为工程

合并分ER图产生的冲突_斜阳雨陌的博客-CSDN博客_er图结构冲突

三级模式

分为外模式,模式和内模式。

其中外模式对应视图级别,是用户与数据库系统的接口,是用户用到那部分数据的描述,比如说:用户视图;

对于模式而言,又叫概念模式,对于表级,是数据库中全部数据的逻辑结构和特质的描述,由若干个概念记录类型组成,只涉及类型的描述,不涉及具体的值;

而对于内模式而言,又叫存储模式,对应文件级,是数据物理结构和存储方式的描述,是数据在数据库内部表示的表示方法,定义所有内部的记录类型,索引和文件的组织方式,以及数据控制方面的细节。例如:B树结构存储,Hash方法存储,聚簇索引等等。

其他

数据文件包含数据和对象,例如表、索引、存储过程和视图。
日志文件包含恢复数据库中的所有事务所需的信息。

软件测试

语句覆盖、条件覆盖(分支覆盖)、判定覆盖、条件-判定覆盖、组合覆盖、路径覆盖 的区别__好吗_好的的博客-CSDN博客_条件覆盖和判定覆盖有什么区别

白盒测试的中逻辑覆盖的强弱

发现错误的能力呈由弱至强的变化

语句覆盖、判定覆盖、 条件覆盖 、判定/条件覆盖、条件组合覆盖和路径覆盖

白盒测试的中逻辑覆盖的强弱_vacabiary的博客-CSDN博客_覆盖率强度排序

白盒测试用例设计方法

语句覆盖:每条语句最少执行一遍
判定覆盖:每个判定表达式最少获得一次“真”值和“假”值
条件覆盖:每个判定语句中每个逻辑条件的各种可能值至少满足一次(子条件,若有x和y两个判定)
路径覆盖:所有可能的路径

采用McCabe度量法计算环路复杂度:V(G)=m-n+2 m:边的数量;n:结点数量

集成测试方法2222

集成测试之自顶向下、自底向上、三明治集成_fbvukn的博客-CSDN博客_自顶向下和自底向上

其他
  • 系统测试阶段的测试目标来自需求分析阶段

软件工程

需求分析相关概念

结构化方法的分析结果由以下几部分组成:一套分层的数据流图、一本数据词典、一组小说明(也称加工逻辑说明)、补充材料。

生命周期

即需求分析、计划、设计、编码、测试、运行维护。

①软件定义

问题定义 => 必须回答的关键问题 “要解决的问题是什么”

可行性研究 => 必须回答的关键问题是 “上阶段决定的问题是否有行得通的解决方法”

需求分析 => 准确回答 “目标系统必须做什么”

②软件开发

概要设计 => 概况地回答 “怎样实现目标系统” (别称初步设计、逻辑设计、高层设计或总体设计)
包括【系统架构、模块划分、系统接口、数据设计】

详细设计 => 回答 “应该怎样具体地实现这个系统”

编码单元测试 => 打工人

综合测试 => 测试+调试 使其达到预定的要求

③运行维护

维护

软件生命周期的基本任务_小旺不正经的博客-CSDN博客_软件定义阶段的任务

开发模型

软件开发模型总结归纳(瀑布模型、螺旋模型、迭代模型、增量模型、敏捷模型)_meng_lemon的博客-CSDN博客_迭代模型和螺旋模型的区别

软件设计师中级复习资料_第6张图片

瀑布模型

需求明确、二次开发

螺旋模型

有多个模型的组合,具有多个模型的特征。最显著的特征是:有风险分析

迭代模型

V模型

在需求分析阶段用测试的眼光去看待问题,是一个强调测试的模型,强调及早进行测试,测试要贯穿于开发的始终。

软件设计师中级复习资料_第7张图片

增量模型

一种“递增式”的模型,可以将优先级最高的服务先交付,接收最多的测试,但不利于模块划分

原型模型

主要用于获取用户需求,用户需求不明确,常用于需求分析阶段,给用户看完就扔

原型模型不适合大规模的软件开发

喷泉模型

是面向对象模型,迭代,无间隙,快速构建应用性,以用户需求为动力

敏捷模型

软件设计师中级复习资料_第8张图片

  1. 极限编程(XP)

    4大价值观、5大原则、12个最佳实践

    XP的最佳实践不包括 编完程序之后编写测试代码

  2. 水晶法(Crystal)

    强调经常交付,认为每一种不同的项目都需要一套不同的策略、约定和方法论

  3. 并列争球法(Scrum)

    其核心是迭代、增量交付,按照30天进行迭代开发交付可实际运行的软件

    Product Backlog 产品待办事情单
    Sprint Backlog 待办事项清单
    Sprint 冲刺迭代

  4. 自适应开发(ASD)

    其核心是三个非线性的,重迭的开发阶段:猜测、合作、学习

统一过程

软件设计师中级复习资料_第9张图片

UP是以用例和风险为驱动,以架构为中心,迭代并且增量的开发过程

每次迭代都包括 计划、分析、设计、构造、集成、测试以及内部和外部发布

每次迭代都有五个核心工作流【需求、精化分析、结构化分析、设计、测试】

初启阶段 —> 生命周期目标
精化阶段 —> 生命周期架构
构件阶段 —> 初始运作
移交阶段 —> 产品发布
产生阶段 —>

角色 —> 谁做
活动 —> 怎么做
制品 —> 做什么
工作流 —> 什么时候做

敏捷统一过程AUP

结合了敏捷+统一

软件质量特性

在这里插入图片描述

数据仓库

联机分析处理OLAP是一种软件技术,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。

数据流图和数据字典

数据流图中的基本图形元素包括数据流、加工、数据存储和外部实体。
其中,数据流、加工和数据存储用于构建软件系统内部的数据处理模型,而外部实体表示存在于系统之外的对象,用来帮助用户理解系统数据的来源和去向。
外部实体包括:人/物、外部系统、组织机构等。

数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素作出详细的说明,使用数据字典为简单的建模项目。其条目有数据流、数据项、数据存储、基本加工等。

数据流图的起点或终点必须是加工(至少有一端是加工)

DFD:
加工有输入但是没有输出
加工有输出但是没有输入
加工的输入不足以产生输出

数据流图

耦合性

非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。

数据耦合:一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的。

标记耦合∶一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。其实传递的是这个数据结构的地址;

控制耦合:如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。

外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。

公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。

内容耦合:如果发生下列情形,两个模块之间就发生了内容耦合
(1)一个模块直接访问另一个模块的内部数据;
(2)一个模块不通过正常入口转到另—模块内部;
(3)两个模块有一部分程序代码重叠(只可能出现在汇编语言中);
(4)一个模块有多个入口

耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。

模块之间联系越紧密,其耦合性就越强,模块之间越独立则越差,

模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lWCglNeB-1687625716061)(C:\Users\Glacialerisa\AppData\Roaming\Typora\typora-user-images\image-20221031232855350.png)]

内聚性

功能内聚是最强的内聚

在这里插入图片描述

软件维护相关概念及工具

辅助软件维护过程中的活动的软件称为"软件维护工具",它辅助维护人员对软件代码及其文档进行各种维护活动。

软件维护工具主要有:

  1. 版本控制工具;
  2. 文档分析工具;
  3. 开发信息库工具;
  4. 逆向工程工具;
  5. 再工程工具;
  6. 配置管理支持工具。

逆向工程产品设计可以认为是一个从产品到设计的过程。
简单地说,逆向工程产品设计就是根据已经存在的产品,反向推出产品设计数据(包括各类设计图或数据模型)的过程。
这个过程一般是在软件交付使用之后进行,所以是在原软件生命周期的软件维护阶段进行

结构化设计

体系结构设计:定义软件的主要结构元素及其关系。

数据设计:基于E-R图确定软件涉及的文件系统的结构及数据库的表结构。

接口设计((人机界面设计):描述用户界面,软件和其他硬件设备、其他软件系统及使用人员的外部接口,以及各种构件之间的内部接口【…之间如何通信】。

过程设计:确定软件各个组成部分内的算法及内部数据结构,并选定某种过程的表达形式来描述各种算法。

仓库风格

一种软件体系结构,其中包括一个数据仓库和若干个其他构件。数据仓库位于该体系结构的中心,其他构件访问该数据仓库并对其中的数据进行增、删、改等操作。

仓库风格包括:数据库系统、黑板系统、超文本系统。编译器可用多种架构风格实现。

仓库风格优点包括:

  1. 解决问题的多方法性;
  2. 具有可更改性和可维护性;
  3. 有可重用的知识源;
  4. 支持容错性和健壮性。

缺点:

  1. 测试困难【由于黑板模式的系统有中央数据构件来描述系统的体现系统的状态,所以系统的执行没有确定的顺序,其结果的可再现性比较差,难于测试】
  2. 不能保证有好的求解方案;
  3. 难以建立控制策略;
  4. 效率低;
  5. 开发成本高;
  6. 缺少对并行机的支持。
UML

软件设计师中级复习资料_第10张图片

推荐下面的第一个:

[UML (yuque.com)](https://www.yuque.com/saodai/ss8tp9/tbnoe0#Xo8LJ)

一文掌握14种UML图 - 腾讯云开发者社区-腾讯云 (tencent.com)

20分钟学会UML(统一建模语言)轻松搞定软件项目系统性需求 - 知乎 (zhihu.com)

对象图

展示了某一时刻一组对象以及它们之间的关系

类图

展示了一组对象、接口、协作和它们之间的关系

  • 关联关系:描述了一组链,链是对象之间的连接。
  • 依赖关系:一件事物发生改变影响到另一个事务。
  • 聚合关系:整体与部分生命周期不同的关系。
  • 组合关系:整体与部分生命周期相同的关系。

使用场景:简单的协作、系统词汇、逻辑数据库模式建模

软件设计师中级复习资料_第11张图片

软件设计师中级复习资料_第12张图片

关于类之间的关系 · 语雀 (yuque.com)

用例图

展示了一组用例、参与者以及它们之间的关系,include是必须的;extend不是必须的;泛化可以是在参与者和参与者,也可以是在用例和用例

软件设计师中级复习资料_第13张图片

序列图/顺序图/时序图

是场景的图形化表示,描述了以时间顺序组织的对象之间的交互活动
一个用例进行详细的分解过程 => 一个用例多个对象

特征是:有生命线(虚线)、控制焦点(长方形)、某个类的实现方法【箭头指向的,如下方的Account】

软件设计师中级复习资料_第14张图片

通信图/协作图

对象和对象之间的关系,即一个类操作的实现。简而言之是,对象和对象之间的关系,体现一种组织的关系。

特点:有路径、顺序号分 “1‘、“2 ”和1.1、1.2、消息是带箭头【每个消息有唯一的顺序号】、链是线

状态图
  • 一个对象的,所以是一个对象多个用例

  • 一定要有开始,但不一定要结束【可能没有、可能一个或多个】

  • 多个组合的状态 => 组合态 = 超态

  • 可能有并发的标志和活动图那个类似

  • 事件触发后才会对监护条件进行检查

  • 反应型对象建模

  • 转换/迁移 由 事件触发

  • 软件设计师中级复习资料_第15张图片

活动图

工作流建模、对操作建模

有分支、合并、活动图有◇的选择判断,状态图没有

组件/构件图

半圆是需要接口的;圆是提供接口的

部署图

《artifact》表示制品、在实现这阶段使用、静态部署图中建模

软件设计师中级复习资料_第16张图片

CMM

软件过程能力成熟度模型

初始级 无规章制度
可重复级 建立基本的项目管理过程
已定义级 已经文档化、标准化
已管理级 制定了详细的度量标准
优化级 能够不断更新改进

CMMI

有阶段式模型和连续式模型

未完成的 CL0 :未执行过程

已执行的 CL1 :将可标识的输入工作产品转换成可标识的输出工作产品

已管理的 CL2 :作为已管理的过程制度化,关注于针对单个过程实例的能力

已定义的 CL3 :作为已定义的过程制度化,关注过程的组织级标准化和部署

已定量管理的 CL4 :作为定量管理的过程制度化

优化的 CL5 :过程很好地执行,并得到持续的改进

COCOMO

构造性成本模型

基本模型:静态单变量模型,估算源代码行数

中级模型:在上一个的基础上,涉及产品、硬件、人员等方面

详细模型:在上一个的基础上,要考虑其过程的分析、设计步骤的影响

COCOMO II 还考虑了软件开发的不同阶段,包括应用组装模型、早期设计阶段模型、体系结构阶段模型
估算选择包括:对象、功能点、代码行

SCM

软件配置管理

标识、版本控制、变更控制、位置审计、配置报告

McCall

软件质量模型

软件产品的运行、修正、转移 ===> 3方面11个特性

运行:正确、可靠、效率、完整、使用性

修正:维护、测试、灵活性

转移:维护性移植、复用、共运行性

风险类型

风险的优先级:风险的优先级是由风险暴露决定的

风险控制:辅助建立对策

风险识别:试图系统化确定对项目的威胁

风险预测/估算:从风险发生的可能性或概率和发生后产生的后果

风险评估:其风险发生的概率和产生的影响 是否 影响 参考水平值

风险处理

风险避免:放弃可能会带来风险的活动,如:把地基打高,避开洪水

风险监控:在决策主体运行中,对风险的发展和变化进行监督,并进行策略调整

风险管理:在一个必定有风险的环境把风险降到最低的过程

ISO/IEC 9126 质量管理

软件设计师中级复习资料_第17张图片

操作系统

在现代操作系统中资源分配的基本单位是进程,处理机调度的基本单位是线程。

存储管理方案

固定分区

静态分区方式,将主存划分为若干个分区,操作系统通过主存分配情况进行管理主存

可变分区

动态分区、作业装入时进行,但不断分配回收,会出现不连续的小碎片

可重定位分区

移动所以已分配好的分区,使其连续,不会产生碎片

可变分区内存分配算法

首次适应算法(First Fit)

每次都从低地址进行选择能装进去的,如此反复

特点:保留了许多高地址的空闲区

缺点:低地址部分被不断划分,留下许多难以利用、很小的空闲区,每次都从低地址部分开始,查找增加开销

循环首次适应算法(Next Fit)

每次都从刚分配的空闲区开始找,与首次适应类似

特点:使内存中的空闲分区分布的更为均匀,减少了查找时的系统开销。

缺点:缺乏大的空闲分区,从而导致不能装入大型作业。

最佳适应算法(Best Fit)【寻找最小】

每次都找能分配到最近接近用户需求的分区

特点:每次分配给文件的都是最合适该文件大小的分区。

缺点:内存中留下许多难以利用的小的空闲区

最坏适应算法(Worst Fit)【寻找最大】

每次都分配在最大的空闲区里,如此反复

特点:给文件分配分区后剩下的空闲区不至于太小,产生碎片的几率最小,对中小型文件分配分区操作有利。

缺点:使存储器中缺乏大的空闲区,对大型文件的分区分配不利。

常见内存分配算法:首次适应算法(FirstFit)循环首次适应算法(NextFit)最佳适应算法(BestFit)最坏适应算法(WorstFit)_Belieber_ly的博客-CSDN博客_first fit算法

页式存储系计算

物理地址 = 块号*页面大小+页面位移

块号 => 逻辑地址/页面大小 => 找对应的块号

页面位移 => 逻辑地址%页面大小 => 取余/模运算

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qw1KsywC-1687625716064)(C:\Users\Glacialerisa\AppData\Roaming\Typora\typora-user-images\image-20221028130738994.png)]

进程调度算法

先来先服务调度算法(FCFS,First Come First Serve)

短作业优先调度算法(SJF)

进程调度算法-短作业优先调度算法(SJF)_777_yL的博客-CSDN博客_短作业优先调度

优先级调度算法

数字大的优先级大

调度算法-优先级调度算法+例题详解_Devour123的博客-CSDN博客_优先级调度算法

时间轮转片调度算法(RR)

时间片轮转(RR)调度算法(详解版) (biancheng.net)

平均周转时间和平均带权周转时间怎么算?

平均周转时间和平均带权周转时间怎么算?_柒白的博客-CSDN博客_平均周转时间和平均带权周转时间

页面置换算法【缺页】

先进先出(FIFO)页面置换算法

总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰

最近最久未使用(LRU)算法

满了后,会淘汰最久没用过的

【操作系统】页面置换算法_niliushall.的博客-CSDN博客_常用的页面置换算法是

并发与并行

[并发是并行的不同表述,其原理相同。__牛客网 (nowcoder.com)](https://www.nowcoder.com/questionTerminal/7160cf5ed972454ebf18394795282886#:~:text=并发是并行的不同表述,其原理相同。 并发是同时执行不过微观上是串行的,并行是同时执行,但是是不同的处理器执行,网上有个例子是说并发是一个馒头喂两个人,并行是两个馒头喂两个人。 一定要注意区分这些细微的概念! 并行(Parallel):指两个或者多个事件在 同一时间间隔内 发生。 并行(Parallel):指两个或者多个事件在,同一时间间隔内 发生。 并发的意思是宏观上两个事情是同时“发生的”,而实际不是。 例如在单cpu的机器上,可以两个进程可以“并发”执行。 实际上,这两个进程是轮流被分配了cpu,轮流被执行,只是这个过程太过短暂,人未察觉到,感觉上好像是“一齐”在运行。 并行是真正意义的“一齐”或者说“同时”运行。 一定要注意区分这些细微的概念!)

关于PV操作

软件设计师中级复习资料_第18张图片

PV操作可以实现资源的互斥使用

嵌入式操作系统

其特点主要包括微型化、可定制、实时性、可靠性和可移植性

线程

在同一进程中的各个线程都可以共享该进程所拥有的资源,如访问进程地址空间中的每一个虚地址;
访问进程拥有已打开文件、定时器、信号量机构等,但是不能共享进程中某线程的栈指针。

程序设计语言基础

编译与解释

编译与解释过程 · 语雀 (yuque.com)

计算机对源程序的处理有两种方式,一种是解释型,一种是编译型。
编译型是指整个代码写完后,按编译运行才可以执行
解释型就是输入一行代码按回车立即分析执行该条语句

编译过程

软件设计师中级复习资料_第19张图片

词法 --> 关键字…
语法 --> if、endif…【输入方式是记号流
语义 --> 除0

软件设计师中级复习资料_第20张图片

解释过程

软件设计师中级复习资料_第21张图片

在用户运行程序时,解释程序直接执行源程序或源程序的内部形式(中间代码),所以解释过程不产生源程序的目标程序

编译
翻译程序和目标程序运行是独立
解释
翻译程序和程序运行是一起的

符号表

记录源程序中各个符号的必要信息,以辅助语义的正确性检查和代码生成。在编译过程中需要对符号表进行快速有效地查找、插入、修改和删除等操作,符号表的建立可以始于词法、语法、语义分析,有时候也会延续到目标代码的运行阶段。

文法

推导树

递归下降分析法和预测分析法是常用的自顶向下分析法。
算符优先分析法和LR分析法属于自底向上的语法分析方法。

有限自动机

确定有限状态自动机 —> 对每一个可能的输入,其结果都是只有一个,如输入1/0 其结果都只有一个
非确定有限状态自动机 —> 与确定的相反

表达式

前缀 --> 根左右

中缀 --> 左根右

后缀 --> 左右根

函数调用

传值与传址

int function(int a,int b){

}

这里的a和b是形参

function(a,b)

调用时,这里的a和b是实参

传值调用:形参取的是实参的值,形参的改变不会导致调用点所传的实参的值发生改变,实参可以是常量、变量、表达式【其结果类型要一致】、函数

引用(传址)调用:形参取的是实参的地址,即相当于实参存储单元的地址引用因此其值的改变同时就改变了实参的值,其实参要传地址

各种程序语言特点
  1. Fortran语言(科学计算、执行效率高
  2. Pascal语言(为教学而开发的,表达能力强,Delphi
  3. C语言(指针操作能力强,高效
  4. Lisp语言(函数式程序语言,符号处理,人工智能
  5. C++语言(面向对象,高效
  6. Java语言(面向对象,中间代码,跨平台
  7. C#语言(面向对象,中间代码,.net
  8. Prolog语言(逻辑推理,简洁性,表达能力,数据库和专家系统
六大设计原则

首要:单一职责原则:设计目的单一的类,让一个类负责一种类型责任

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

里氏替换原则:子类可以替换父类

依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程,高层模块定义所需服务接口,由低层模块来实现该接口

接口隔离原则:使用多个专门的接口比使用单一的总接口要好,不应该强迫用户依赖他们不需要的方法

组合重用原则:要尽量使用组合,而不是继承关系达到重用目的

迪米特原则:一个对象应当对其他对象有尽可能少的了解

GoF设计模式

软件设计师中级复习资料_第22张图片

软件设计师中级复习资料_第23张图片

结构式模式

工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式

创建型模式

适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式

行为模式

策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式

  • 观察者模式(Observer Pattern)

    观察者模式定义对象间的一种一对多依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新

  • 访问者模式(Visitor Pattern)

    表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用与这些元素的新操作。即对某个对象或者一组对象,不同的访问者,产生的结构不同,执行从中也不同

  • 备忘录模式(Memento Pattern)

    在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态。

  • 策略模式(Strategy Pattern)

    策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化

  • 命令模式(Command Pattern)

    将一个请求封装成一个对象,从而使得用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作

  • demo

23 种设计模式详解(全23种,附加代码)_鬼灭之刃的博客-CSDN博客_设计模式

快速记忆23种设计模式 - 知乎 (zhihu.com)

Python

基础数据结构

列表(list), 元祖(tuple), 字典(dict), 字符串(string), 集合(set), 数字(num)

列表(list)有序重复可变
字典(dict)有序不重复可变
元祖(tuple)有序重复不可变
集合(set)无序无重复可变(还有个不可变集合frozenset)
字符串(str)有序重复不可变
数字(num)有序重复不可变

C

存储空间—>代码区+(栈区、堆区)动态数据区+静态数据区

全局变量—>静态数据区

Java
其他
  • 脚本语言都是动态语言,而动态语言都是解释性语言,不管他们是否是面对对象的语言
  • 语法制导翻译是一种静态语义分析

面向对象技术

面向对象的开发阶段
  • 面向对象分析阶段:认定对象,组织对象,对象间的相互作用,基于对象的操作。
  • 面向对象设计阶段:识别类及对象、定义属性、定义服务、识别关系、识别包。
  • 面向对象程序设计:程序设计范型、选择一种OOPL。
  • 面向对象测试:算法层、类层、模板层、系统层。

软件设计师考试 | 第七章 面向对象技术 | 面向对象基础_Levi_moon的博客-CSDN博客

数据结构与算法

特点

有穷性、确定性、输入输出、有效性

常见的时间复杂度

O(1)< O(log2n)< O(n)< O(nlog2n)< O(n2)< O(n3)< O(2nn)

常用算法时间复杂度 超细

顺序表

树 · 语雀 (yuque.com)

图 · 语雀 (yuque.com)

查找

查找 · 语雀 (yuque.com)

排序

排序 · 语雀 (yuque.com)

多媒体技术

媒体

感觉媒体

指直接作用于人的感觉器官,如引起听觉反应的声音、引起视觉反应的图像等

表示媒体【加工处理=>编码】

指传输感觉媒体的中介媒体,即用于数据交换的编码,如图像编码、文本编码和声音编码

表现媒体

指进行信息输入和输出的媒体,如键盘、鼠标、话筒以及显示器、打印机、喇叭

存储媒体

指用于存储表示媒体的物理介质、如硬盘、光盘

传输媒体

指表示媒体的物理介质,如电缆、光缆、电磁波

常见的格式

WAV

微软开发的一种声音格式,它符合RIFF文件规范

BMP

window操作系统中标准图像文件格式,采用位映射存储格式,除了图片深度可以选外,不采用其他任何压缩,比较占存储空间。

MP3

一种音频压缩技术,它被设计用来大幅度降低音频数据量

MOV

由apple开发的一种音频、视频文件格式,用于存储常用数字媒体类型

JPEG/JPG

静态和数字图像压缩编码标准,压缩比例可以选择,支持灰度图像、RGB真彩图像和CMYK真彩图像,压缩比例高。

JPEG累进==>可以实现图像内容的方式传输,较快看到模糊影像,减少用户的等待时间。

AVI

Microsoft开发的一种符合RIFF文件规范的数字音频和视频文件格式。

AVS

我国具备自主知识产权的第二代信源编码标准,包括系统、视频、音频、数字版权管理等四个主要技术标准和符合性测试等支撑标准。

CIF

CIF是 Common Intermediate Format 的缩写,即通用影像传输视频会议(video conference)中常使用的影像传输格式,分辨率有**352 x 288 **画素,影像传输可达每秒30 frame,符合ITU H.261视频会议资料传输协定。

MPEG/MPG

运动图像压缩算法

mp3、VCD—>MPEG-1

DVD—>MPEG-2

无线通信、增强交互性—>MPEG-4

多媒体应用—>MPEG-7

标准集合—>MPEG-21

GIF

以数据块为单位来存储图像的相关信息,采用了LZW无损压缩算法按扫描行压缩图像数据。

两种存储方式

  • 按行连续存储:存储顺序与显示器的显示顺序一致
  • 按交叉方式存储:由于显示器图像需要较长的时间,使用此方法,用户可以在图像数据全部收到之前看到全貌

TIFF

由电子出版CD-ROM中的一个图像文件格式。无论在视觉上还是其他方面,都能把任何图像编码成二进制形式不丢失任何属性

TIFF格式非常灵活多变,定义了4类不同的格式:

TIFF-B:适用于二值图像
TIFF-G:适用于黑白灰度图像
TIFF-P:适用于带调色板的彩色图像
TIFF-R:适用于RGB真彩图像

H.261

一种视频通信编码标准

FM和Wave Table

主要的计算机数字音乐合成技术
FM【最有效】
Wave Table【音质更好】

相关的计算

软件设计师中级复习资料_第24张图片

压缩

熵(shang)编码、冗余压缩法,也称无损压缩法、无失真压缩法。如:PE、FLAC、TAK、WavPa、哈夫曼树

熵压缩法,也称有损压缩法、有失真压缩法。如:mp3 、divX 、Xvid 、jpeg、 rm 、rmvb、 wma 、wmv

矢量图

基本单位是图元,放大后图像不会失真,和分辨率无关

位图

基本单位是像素,保存时需要记录每一个像素的位置和颜色值,占用较大的存储空间

其他
  • 人耳的音频信号:20Hz ~ 20kHz
  • 显示器像素点距的规格中,越小越好
  • 数字语音的采样频率定义为8kHz,是因为语音信号定义的频率最高值为4kHz
  • MPC比PC增加了视频和音频信息的处理能力
  • 位图相对于矢量图,占用空间大,处理侧重于获取和复制,显示速度快
  • 频率高–>音调高;振幅高–>响度高
  • 饱和度–>颜色的纯度
  • dpi:每英寸像素点
  • 计算机通过MIC(话筒接口)受到的信号是音频模拟信号

计算机网络

OSI/RM七层模型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vbOSC4pe-1687625716066)(C:\Users\Glacialerisa\Desktop\116\OSI、RM七层模型.png)]

传输单位

报文、报文段、分组、包、数据报、帧、数据流的概念区别_啊大1号的博客-CSDN博客_报文

常见协议

软件设计师中级复习资料_第25张图片

  • 垂直往上的需要下面的协议 如POP3依赖TCP,中间是都可

  • MIME是一个互联网标准,扩展了电子邮件标准,与安全无关。

  • PGP(Pretty Good Privacy,优良保密协议)用于加密电子邮件内容

  • TLS是安全传输层协议的简称,用于在两个通信应用程序之间提供保密性和数据完整性

  • SSL是安全套接层协议的简称,它也是一种为网路通信提供安全和数据完整性的协议,和TLS相近,都是在传输层对网络连接进行加密。

  • HTTPS即安全版的HTTP(超文本传输协议),它是在HTTP下加入SSL层,HTTPS的安全基础就是SSL

  • IPSec是网络层的安全协议,它通过使用加密的安全服务来确保网络上进行保密而安全的通讯。

  • DHCP是动态IP地址分配

  • TFTP是小文件传输协议,与FTP区别

  • FTP是文件传输协议是可靠的

  • SNMP是简单网络管理协议

  • ICMP是因特网的控制协议如ping命令

  • ARP地址解析协议是IP地址与MAC地址之间的转换

  • RARP反向地址解析协议是MAC转IP

  • Samba文件共享协议是可以跨平台

  • DNS协议是域名解析器分为递归查询【找到才回去;从图上看会往下面走再返回结果】和迭代查询【我找不到,但我有线索;从图上就是直接返回线索,常见】

  • RFB是远程帧缓冲,是一个用于远程访问图形用户界面的简单协议

  • IGMP是因特网协议家族中的一个组播协议。该协议运行在主机和组播路由器之间

  • SSH为Secure Shell的缩写,由IETF 的网络小组(Network Working Group))所制定;SSH为建立在应用层基础上的安全协议。
    SSH是目前较可靠,专为远程登录会话其他网络服务提供安全性的协议。
    利用SSH协议可以有效防止远程管理过程中的信息泄露问题。

    1. HTTPS是基于SSL(Secure Sockets Layer安全套接层)的。
    2. http的端口号为80,而HTTPS的默认端口是443,注意区分。
  • Telnet是Internet远程登录服务的标准协议和主要方式

  • IPV4:232

  • IPV6:2128

TCP和UDP

TCP

TCP是可靠的,通信会建立连接【有验证机制,会有三次握手】

提供了端口寻址、连接管理、差错校验、重传、流量控制

UDP

UDP是不可靠的、不建立连接的

提供了端口寻址

网络的分类

软件设计师中级复习资料_第26张图片

拓扑结构

网络规划与设计

软件设计师中级复习资料_第27张图片

分层设计

软件设计师中级复习资料_第28张图片

子网划分

4个字节(byte,B),32位(bit,b)

主机数要减去对应的全0的网络地址如:【A:0.0.0.0;B:128.0.0.0】和全1的广播地址如:【A:127.255.255.255;B:191.255.255.255】

地址类型 最小地址 最大地址 网络号/地址 主机号/主机地址 主机数量
A类 0.0.0.0 127.255.255.255 最前一个字节 后三个字节 224-2
B类 128.0.0.0 191.255.255.255 前两个字节 后两个字节 216-2
C类 192.0.0.0 223.255.255.255 前三个字节 最后一个字节 28-2
其他

例题

类型 1 如:
210.115.192.0/20 ----> 可划分为几个C类子网?

转二进制 11010010.0111001.11000000.00000000
==>
C类本来有24位的网络号,只用了20位,剩下四位是做主机号
==> 24=16

类型 2 如:
168.195.0.0划分为27个子网,子网掩码是?

转二进制 10101000.11000011.00000000.00000000
==>25>27 需要5个充当网络号
==> 将主机号的5个顶为1变成 11111111.11111111.11111000.00000000

特殊地址

XXX.XX.XX/20,其中20是网络号的数量

URL的组成

URL的组成 · 语雀 (yuque.com)

协议 / 主机.域名.域名后缀 : 端口 / 虚拟目录 / 文件名 ? 参数
端口号可以省,若省略则以浏览器的默认端口80
文件名也可以省,若省略则以文件的默认路径

常见的端口号

25:SMTP,简单邮件传输协议

110:POP3,邮件协议3【POP2和POP3主要用来接收邮件】

网络与信息安全基础知识

其他

在IE浏览器中,安全级别最高的区域设置是受限站点

标准化和软件知识产权基础知识

基本法律

《中华人民共和国著作权法》和《计算机软件保护条例》是构成我国保护计算机软件著作权的两个基本法律文件

著作权归属

软件设计师中级复习资料_第29张图片

著作权中发表权的保护期有时间限制

有可能无限期拥有的知识产权是商标权【可以一直申请】

软件设计师中级复习资料_第30张图片

杂乱知识点:

  • 一条指令通常由两个部分组成: 操作码 + 地址码

  • 软件+硬件【运算器+控制器+存储器+输入输出设备 5个】=>计算机

  • 人机交互“黄金三原则”:

    1. 置于用户控制之下
    2. 减少用户记忆负担
    3. 保持界面的一致性
  • 白盒测试又称 结构测试

  • 数值转换

    Byte 字节 B

    Bit 比特 b

    一个字节八位

    1 Byte = 8 bit

    1KB = 210B

    1MB = 220B

    8K ==>8 * 210

  • IDEA和RC4适宜于进行数据传输加密

  • 利用报文摘要算法生成报文的主要目的–>防止发送的报文被篡改

  • 公钥体系中,私钥用于解密和签名,公钥用于加密和认证

  • 组合体现的是has-a;继承是is-a
    继承和组合的区别_Howard_14的博客-CSDN博客_继承和组合

  • 逆波兰表达式又叫做后缀表达式。

  • 高内聚:highly cohesion 低耦合:loosely coupled

  • 逆向工程是软件维护的工具

  • 分配寄存器的工作在目标代码生成

  • 常用的中间代码有后缀式、三元式、四元式、树等

  • 确定的有限自动机dfa和不确定的有限自动机nfa是词法分析的适当工具

  • 大多程序设计语言的语法规则常用上下文无关文法

  • <tr>标记用于定义表格中的一行。
    <col>标记用于定义表格中一个或多个列的属性值。
    <td>标记用于定义表格中的一个单元格。

  • 配置数据库一般包括开发库、受控库、产品库

  • 软件产品的复杂度【规模:指令,代码行、难度:操作数的量、结构:程序结构相关度量、智能度:算法的难度】不包括 开发小组的规模

相关专业的单词

摆烂

英文 中文 英文 中文
integrate 融入 couple 联系【耦合】
coordinate 协调 cohesion 团结【内聚】
cooperate 合作 parts 阶段
process 过程
tailored 定制的
progress 进展
refactoring 重构

附录

2022年软件设计师考试大纲_软件设计师_希赛网 (educity.cn)

备注

带0000的是没

带2222的是没完或是看不懂

你可能感兴趣的:(中级软件设计师,uml,学习方法,笔记)