软件设计师备考文档(更新完毕)

cpu

计算机的基本硬件系统:运算器、控制器、存储器、输入设备、输出设备

cpu负责获取程序指令,对指令进行译码并加以执行 (原题)

cpu的功能

控制器(保证程序正常执行,处理异常事件)

程序控制
操作控制
运算器(只能运算) 时间控制
数据处理

运算器

  • 算数逻辑单元(ALC)
  • 累加寄存器(AC)(为ALC执行算术逻辑提供数据并暂存运算结果)(原题)
  • 数据缓冲器(DR)
  • 状态条件寄存器(PSW)

控制器(决定计算机执行自动化)

  • 指令计算器(IR)(存操作码和地址码)
  • 程序计数器(PC)(将要指向的下一条指定的地址)(原题)
  • 地址计算器(AR)
  • 指令译码器(ID)(对指令进行译码)

指令包括操作码和地址码

指令寄存器对用户是完全透明的(原题)

计算机基本单位

名称 单位 简写 换算
位(比特) bit

b

字节 byte B 1字节=8bit
千字节 KB K 1KB=1024b
兆字节 MB M 1MB=1024KB
吉字节 GB G 1GB=1024MB
太字节 TB T 1TB=1024GB

最小的数据单位:位(bit)

最小的存储单位:字节(btye)

进制转换

十进制(D)二进制(B)、八进制(O)、十六进制(H)

_(H) = _ _ _ _(B)= _(O)= _ _ _(D)

FF(H) = 1111 1111(B)= 128+64+32+16+8+4+2+1 = 255

15*16¹+15*16⁰ = 255

756(O) = 1 1110 1110(B)=256+128+64+32+8+4+2 = 494

7*8²+5*8¹+6*8⁰ = 494

进制加减法

A B C D E F
10 11 12 13 14 15

     
 

(n)进制,超过n减n 写余数 进1

        ABDFE(H)                        205(O)                90E(H)

    +     1024                        -        7                -         F

——————                ——————        —————

         ACE22                             176                      8FF

原码、反码、补码

原码与反码

0表示正号,1表示负号

[+0]原 = 0 0000000

[- 0]原 = 1 0000000

正数的反码与原码相同、负数的反码则是其绝对值按位求反

[+0]反 = 0 0000000

[- 0]反 = 1 1111111

补码和移码

正数的补码与其原码和反码相同

负数的补码等于其反码末位加1

[-3]原 = 1 0000011        [-3]反 = 1 1111100        [-3]补 = 1 1111101        

[+0]补 = [-0]补 = 0 0000000

移码:补码基础上符号位取反

[[x]补]补 = [x]原        补码的补码等于其原码

范围与取值

原码:+127~-127

反码:+127~-127

补码:+127~-128

移码:+127~-128        因为 +0 与 -0 相同,所以补码与移码最小到-128 *

浮点数

N=2ᴱ × F        E为阶码,F为尾数  小数点前数字的个数为阶码,小数点后的数为尾数

例:1011.10101 = 2⁴ * 0.101110101

对齐方式:小阶向大阶对齐,浮点数向右移动。10² —> 10⁴(原题)

规格化浮点数就是将尾数的绝对值限定在[0.5,1] *(原题)

寻址

按时间快慢排序:

  1. 立即寻址        (操作数在指令中)
  2. 寄存器寻址    (操作数在寄存器中)
  3. 直接寻址        (操作数在内存中,地址在指令中
  4. 寄存器间接寻址
  5. 间接寻址

校验码(原题)

奇偶检验码

只能校验奇数个出错,不能纠错,只能校验

码距为2

海明码

利用多组奇偶性进行校验

可以检错、纠错 *

数据位n位,校验位k位,则需要满足 2ᴷ - 1>=n+k

循环冗余校验码

可以检错、不能纠错

k个数据位后r个检验位

模2运算

码距为2

RISC和CISC(原题)

reduce 精简的 complex 复杂的
RISC 精简指令 CISC 复杂指令
长度固定 长度变化
寻址方式少 寻址方式多样化
实现译码硬布线控制 微程序控制技术
大量寄存器 一般
支持流水线 不支持流水线
指令种类少 指令多、丰富

流水线公式

第一条指令执行时间+(n-1)×(最大时间) = 采用流水线时间

加速比 = 不采用流水线 / 流水线时间

操作周期:所有时间段中最长时间段

吞吐率:最长时间段的倒数

n条指令的吞吐率:n/流水线

可以通过提升速率,提高利用率(原题)

存储器

闪存存储器,简称闪存(类似U盘)        以块为单位

对于存储器有2中分类方式:

一、按地址访问的存储器和安内容访问的存储器

二、按寻址方式:随机存储器、顺序存储器、直接存储器

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

虚拟存储器(主存+辅存)

计算机系统的主存主要是由DRAM构成的、(动态随机存储器,通过周期性刷新来保持数据的存储器械)

                    cache主要是由SRAM构成的、(静态随机存储器,静态是指只要保持通电即可实现数据恒常保持)

电可擦除存储器主要是由EEPROM构成的

DRAM周期性属性来保持数据的存储(原题)

高速缓存(cache)用来存放当前最活跃的程序和数据

位于cpu与主存之间,速度比主存快5-10倍

对程序员透明

用来存放部分拷贝信息 cache容量小

cache的命中率与cache容量有关

cache容量越大,命中率越高,cache成本越高,耗时越多

高速缓存中的地址映像

  1. 直接映像:主存的块与cache块的对应关系固定 冲突大
  2. 全相联映像:主存的任一块可以调入cache存储器中任何一个快的空间中 冲突少
  3. 组相联映像:冲突较少

cache与贮存地址的映射是由硬件自动完成

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

中断响应时间:发出中断请求开始,到进入中断服务程序

保存现场的目的:返回去继续执行原程序

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

程序查询方式

  • cpu和I/O只能串行工作,cpu需要一直轮询检查,产期处于忙等状态,cpu利用率低
  • 一次只能读写一个字
  • 由cpu将数放入内存中

中断驱动方式

  • I/O设备通过中断信号主动报告I/O操作已完成
  • cpu和I/O(外设)可并行工作
  • cpu利用率提升,一次只能读写一个字
  • 由cpu将数放入内存中

直接存储器存取方式(DMA)

  • cpu和I/O(外设)可并行工作
  • 仅在传送数据块的开始和结束时才需要cpu干预
  • 由外设直接将数据放入内存(主存)
  • 一次性读写的单位为块

总线的分类

微机中的总线分为数据总线、地址总线和控制总线(原题)

简记:数地控

PCI总线是内总线,采用并行传输方式

SCSI总线是并行外总线

简记:都是并行的,pc一般家里用,所以内总线,另一个scsi在外面,所以是外总线。

总线的复用可以减少总线中信号线的数量(原题)

加密技术(必考)

对称加密:

只有一把密钥,密钥分发有缺点

加密解密速度快,适合加密大量明文

非堆成加密:

有两把密钥,用公钥加密-->私钥解密,私钥加密-->公钥解密

不能通过一把推出另一把,加密解密速度慢

发给谁就用谁的公钥加密

数字签名

防止假冒和否认

摘要

防止篡改

CA:权威机构

用CA的公钥验证数字证书 

私钥用于:解密和签名

公钥用于:加密和认证

口诀:公加验,私解签

对称加密算法

DES、3DES、RC-5、IDEA、AES、RC4

非对称加密算法

RSA、ECC、DSA

摘要算法

MD5

SHA-1安全散列

串联系统

R=R1R2R3...RN

并联系统

R=1-(1-R1)(1-R2)...(1-RN)

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

计算机采用分级存储体系的目的是为了解决存储容量成本和速度之间的矛盾(原题)

计算机中对cpu范文速度最快的是通用寄存器

主动攻击:重放、IP地址欺骗、拒绝服务

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

低级语言与高级语言

解释器:

解释程序和源程序要参与到程序的运行过程中

编译器:

源程序和编译程序都不再参与目标程序从的运行过程

翻译(编译)时将源程序翻译成独立保存的目标程序 

速记:     编译NB一些,生成目标程序不参与运行

                解释垃圾一点,不是生成目标程序,要参与

程序的三种基本控制结构:顺序、选择、循环(重复)

程序中必须有数据类型:

  • 便于为数据合理分配存储单位
  • 便于对参数对象表达式进行检查
  • 便于规定取值范围

程序设计语言的基本成分包括:数据、运算、控制和传输

短路运算:(必考)

  • 真 || ?=》 真
  • 假 && ?=》假

传值调用:(必考)

只传递值,不改变原数值

引用调用:传递地址,会改变原数值,参数不能为常量、表达式(原题)

编译方式:词法分析、语法分析、语义分析、(中间代码生成、代码优化、目标代码生成)

解释方式:词法分析、语法分析、语义分析

符号表:不断搜集、记录和使用源程序的相关符号的类型和特征

语义分析阶段的主要作用是进行类型分析和检查(原题)

语法分析阶段可以发现程序中的所有语法错误 (原题)

语义分析不能发现程序中所有的语义错误(原题)

语义分析可以发现静态语法错误,不能发现动态语义错误,动态语义错误运行时才能发现(原题)

寄存器的分配工作处于目标代码生成阶段(必考)

词法分析:识别字符(查单词)(必考)

语法分析:检查解构(主谓宾)(必考)

语义分析:检查类型是否匹配(表达式类型)as:int a = ‘qqq' (错误)(必考)

常见的中间代码:后缀式、三地址码、三元式、四元式和树

中间代码与具体的机器无关,可以将不同的高级语言翻译成同一种中间代码,中间代码可以跨平台(原题)

因为与具体的机器无关,使用中间代码有利于进行与机器无关的优化处理和提高编译的可移植性。

有限自动机

上下文无关文法:被广泛地用于表示各种程序设计语言的语法规则。

 后缀式优先级

  1.  ()
  2. ×   /
  3. +   -

当优先级相同时,从右向左进行

中缀:a  ?  b

后缀:a  b   ?

当提供语法树需要求其后缀式时,对语法树做后序遍历即可。

时间复杂度:

O(1) < O(log₂n) < O(n) < O(nlog₂n) < O(n²) < O(n³) < O(2ⁿ) < O(n!) < O(nⁿ)

无特列代码 O(1)
while循环 O(log₂n)
for循环 O(n)
for循环 + while循环 O(nlog₂n)
双for循环 O(n²)
三for循环 O(n³)

空间复杂度:

O(1) < O(n) < O(n²)

常数 < 一维数组 < 二维数组

渐进符号(必考+原题)

O记作渐进上界        >=

  • 10n²+4n+2=O(n²)
  • 10n²+4n+2=O(n³)

Ω记作渐进下界           <=

  • 10n²+4n+2=Ω(n²)
  • 10n²+4n+2=Ω(n)

Θ记作渐进紧致界        O = Ω = Θ

  • 10n²+4n+2=Θ(n²)

T(n)= aT\frac{n}{b}+f(n)(必考+原题)

  1. 若 \varepsilon >0,f(n)=O(n^{log_{b}^{a-\varepsilon }}),则T(n)=\circleddash (n^{log_{b}^{a}})
  2. f(n)=\circleddash (n^{log_{b}^{a}}lg^{k}n),则T(n)=\circleddash (n^{log_{b}^{a}}lg^{(k+1)}n)

顺序表 线性表 平均时间复杂度
查寻 O(1) O(n)
插入 O(n) O(n)
删除 O(n) O(n)

入栈和出栈都不需要遍历链表

入队和出队都不需要遍历链表 

循环队列的优点:入队和出队操作都不需要移动队列中的其他元素

n为主串,m为模式串(匹配串)

字符串比较次数:

  • 最好:m次
  • 最坏(n-m+1)* m次
  • 平均 (n+m)/ 2次

KMP模式匹配算法,求next函数值

规则:满足前缀式=后缀式

例:abaabaca 

从左往右!

当前字符 匹配串 1 2 3 4 5 6 此次next值 next
abaabaca 0 0
abaabaca a 0+1=1 01
abaabaca ab 前a!=后b

0+1=1

011
abaabaca aba 前a=后a 前ab !=后ba 1+1=2 0112
abaabaca abaa 前a=后a 前ab !=后aa 前aba!=后baa 1+1=2 01122
abaabaca abaab 前a!=后b 前ab=后ab 前aba!=后aab 前abaa!=后baab 2+1=3 011223
abaabaca abaaba 前a=后a 前ab != 后ba 前aba=后aba 前abaa!=后aaba 前abaab!=后baaba 3+1=4 0112234
abaabaca abaabac 前a!=后c 前ab!=后ac 前aba!=后bac 前abaa!=后abac 前abaab!=后aabac 前abaaba!=后baabac 0+1=1 01122341

二维数组转为一维数组(必考)

二维:N 行 M 列,数组首地址:loc

按行优先:(按行存储)

当二维数组(0,0)开头时:

a_{i,j}=loc+(M\ast i+j )

当二维数组(1,1)开头时:

a_{i,j}=loc+[M\ast (i-1)+(j-1)]

按列优先:(按列存储)

当二维数组(0,0)开头时:

a_{i,j}=loc+(j\ast M)+i

当二维数组(1,1)开头时:

a_{i,j}=loc + [(j-1)\ast N]+(i-1)

对称矩阵转为一维数组

按行存储下标从(A_{0,0})开始

当 i>=j 时,A_{i,j}=\frac{i(i+1)}{2}+j+1

当 i<=j 时,A_{i,j}=\frac{j(j+1)}{2}+i+1

对称矩阵按行存储下标从(A_{1,1})开始

当 i>=j 时,A_{i,j}=\frac{(i-1)i}{2}+j

当 i<=j 时,A_{i,j}=\frac{(j-1)j}{2}+i

三对角矩阵按行存储下标(A_{0,0})开始

A_{i,j}=2i+j+1

三对角矩阵按行存储下标(A_{1,1})开始

A_{i,j}=2i+j-2 

节点的子树个数称为度(度就是直线的个数)

树的度:树里所有度中的最大值

树中的节点总数 = 树中所有结点度数之和 + 1

度为 m 的树中第 i 层上至多有 m^{i-1} 个结点(i>=1)

对于任何一棵二叉树都有:n_{0}=n_{2}+1

高度为 h 的二叉树最多有 2^{h}-1 个结点

二叉树第 i 层上最多有 2^{i-1} 个结点

具有 n 个结点的完全二叉树的高度为  \left \lfloor log_{2}^{n} \right \rfloor+1

满二叉树:每层都是满的

完全二叉树:从上往下,从左到右排序的。

非完全二叉树: 

二叉树的形态有 \frac{C_{2n}^{n}}{n+1} 种,n为结点数。

C_{6}^{3}=\frac{6\times 5\times4}{3\times2\times1}=20

二叉树包含k个结点时,其二叉链表结点中必有k+1个空的孩子指针

构造二叉树必须要中序遍历!

平衡二叉树:二叉树中的任意一个结点的左右子树高度差的绝对值不超过1.

最优二叉树(哈夫曼树):带权路径最短的树

最优二叉树不唯一

构造哈夫曼树

  1. 从前往后找刘昂个权值最小的数
  2. 小左大右:小的放左边大的放右边
  3. 加入末尾:构造出新的结点数再加到队列尾端
  4. 权值相同,从前往后:当遇到权值相同的结点,依照队列中的先后顺序
  5. 用时再调

哈夫曼编码:左0右1

所有顶点的度数为2e,e为边数,不论有向图还是无向图

有向图:i -> j        <v_{i},v_{j}>

无向图:i -> j          (v_{i},v_{j})

完全图:每个顶点之间都有边,共有\frac{n(n-1)}{2}条边,有向完全图为 n(n-1) 条边

连通图:在无向图中,任意两点之间有路径

最少有 n-1 条边,最多有\frac{n(n-1)}{2}条边

强连通图:在有向图中,任意两点之间都有路径

最少有 n 条边 ,最多有:n(n-1) 条边

邻接矩阵表示法 (适合边数多的)

第 i 行中不为 0 的个数表示 i 的出度数

第 j 列中不为 0 的个数表示 j 的入度数

无向图:矩阵中非 0 元素个数为 2e ,e为边数

有向图:矩阵中非 0 元素个数为 e ,e为边数

邻接链表表示法 (适合边数少的)

 

出度数为该点后的结点数

入度数:寻找指向该结点数

遍历方式

深度优先遍历: (类似栈,递归思想)

优先访问邻接顶点且有下个顶点

用邻接矩阵:O(n^{^{2}})

用邻接表:O(n+e)

广度优先遍历:(类似队列)

遍历结果:125634 

一层一层访问

用邻接矩阵:O(n^{^{2}})

用邻接表:O(n+e)

深度优先遍历与广度优先遍历的时间复杂度相同

 顺序查找适用于顺序存储方式和链式存储方式

查找分为静态查找和动态查找

静态查找:

  • 顺序查找
  • 折半查找
  • 分块查找

动态查找

  • 二叉查找树
  • 平衡二叉树
  • 哈希表

折半查找 知识和顺序存储,有序

最多比较\left \lfloor log_{2}^{n} \right \rfloor+1 次

平均比较 \frac{n+1}{2} 次

哈希表:构造哈希函数时,应尽量使关键字的所有组成部分都能起作用

可以删除、可以插入、可以查找

当k1=k2,且H(k1)≠H(k2),称为同义词

小顶堆与大顶堆

小顶堆

满足 k_{i}\leqslant k_{2i} 且 k_{i}\leqslant k_{2i+1}

as:15,25,21,33,73,65,53

大顶堆

满足 k_{i}\geq k_{2i} 且 k_{i}\geq k_{2i+1}

as:73,65,25,33,53,15,21

建立大顶堆,从上往下,把大的选为父节点

排序算法

算法时间空间复杂度
平均时间复杂度 最坏时间复杂度 最好时间复杂度 空间复杂度 稳定性
直接插入 O(n^{2}) O(n^{2}) O(n) O(1)
希尔排序 O(n^{2}) O(n) O(1) ×
简单选择排序 O(n^{2}) O(n^{2}) O(n^{2}) O(1) ×
堆排序 O(nlog_{2}^{n}) O(nlog_{2}^{n}) O(nlog_{2}^{n}) O(1) ×
冒泡排序 O(n^{2}) O(n^{2}) O(n) O(1)
快速排序 O(nlog_{2}^{n}) O(n^{2}) O(nlog_{2}^{n}) O(1) ×
归并排序 O(nlog_{2}^{n}) O(nlog_{2}^{n}) O(nlog_{2}^{n}) O(n)

红色边框则代表经常会考,记住这三个就好了。 

 算法是否稳定:取决于在排序过程中是否存在乱序的情况,整个算法过程中,一直是从小到大或从大到小,则稳定,反之,不稳定!

直接插入:适合基本有序

冒泡排序:每排序一次确定一个位置

快速排序:分治的思想、有序的序列是最坏的情况、每排序一次确定一个位置

数据库

数据库系统同城采用三级模式:外模式(视图)+模式(基本表)+内模式(存储文件)

逻辑独立性:外模式(视图)

物理独立性:内模式(存储文件)

R
A B
a d
b a
c
S
A B
d a
b a
d c
RUS
A B
a d
b a
c c
d a
d c
R-S
A B
a d
c c

R∩S

A B
b a

自然连接时去重的列的等值连接

R
A B C
1 2 3
4 5 6
S
A B E
1 2 6
4 4 4
R×S
R.A R.B R.C S.A S.B S.C
1 2 3 1 2 6
1 2 3 4 4 4
4 5 6 1 2 6
4 5 6 4 4 4

R∞S
R.A R.B R.C S.E
1 2 3 6

R
A B C
S
B C D

\pi _{A,B,C}(R)\Leftrightarrow select A,B,C from R

\pi _{A,B,C}( \sigma_{B\geqslant 5}(R) )\Leftrightarrow select A,B,C from R where B \geqslant '5'

R \Join S \Leftrightarrow selectR.A,R.B,R.C,S.D from R,S where R.B=S.B and R.C=S.C

可以通过主键唯一标识一个元组

数据库权限给某人,且允许该人将权限授予他人,用 with grant option

视图中表示对update,insert, delete 操作时,保证操作满足视图定义用 with check option

视图是一个虚拟表,查询时可以从一个或者多个基本表或视图中导出。(原题)

索引《=》内模式

候选码

包含在候选码中的元素成为主属性,否则成为非主属性

as:  R(U,F)   U={A,B,C,D,E,H}   F={ A->B , A->C , C->D ,AE-> H }

可以推导出 AE -> ABCDEH,所以AE是候选码,所以 A, E是主属性/主键/关键字,B,C,D,H 是非主属性。

as:  R(U,F)   U={A,B,C,D,E,H}   F={ A->B , A->H , C->E ,B-> DH }

所以 有关键字A,C,候选码AC

第一范式、第二范式与第三范式

部分函数依赖:非主属性可以由候选码中的一部分主属性推导出来,则称存在部分函数依赖

as:A->B,A->C,D->E,AD->F,那么AD为候选码,A为主属性、D为主属性,且存在非主属性B、C、E可以由候选码AD的一部分,A或D推出,所以存在部分函数依赖

完全函数依赖:非主属性只能通过候选码中的所有主属性一起推导出来,则称存在完全函数依赖

as:AB->C,那么AB为候选码,AB为主属性,且非主属性C只能由候选码AB推出,所以称为完全函数依赖


1NF 第一范式

每个属性都不可再分,但可能存在数据冗余和更新异常等问题,因为其中可能存在部分函数依赖

1NF特点:R中属性不可再分

2NF 第二范式

R是第一范式并且每个非主属性都完全函数依赖于候选码,但其中可能存在传递依赖

2NF特点:不存在非主属性对候选码的部分函数依赖

1NF——>2NF  消除部分函数依赖,使得所有非主属性都完全依赖于候选码(所有非主属性只能拿通过候选码推出)


例题:F = {学号-> 姓名,学号->学院,学号->院长,学院->院长,课程号->课程名,(学号,课程号)->成绩}

U = {学号,姓名,学院,院长,课程号,课程名,成绩}

可以看出其中存在:

  • 部分函数依赖:学号-> 姓名,学号->学院,学院->院长,学号->院长,课程号->课程名
  • 完全函数依赖:(学号,课程号)->成绩

所以存在:(学号+课程号)为候选码,学号、课程号为主属性。

候选码:(学号,课程号) 主属性:学号、课程号

将学号记作k1,课程号记作k2进行分解。

F1={ 学号-> 姓名,学号->学院,学号->院长,学院->院长}

U1={ 学号,姓名,学院,院长}

完全函数依赖:学号-> 姓名,学号->学院,学号->院长,学院->院长

主属性为:学号

F2={课程号->课程名}

U2={课程号,课程名}

完全函数依赖:课程号->课程名

主属性为:课程号

F3={ 学号,课程号)->成绩}

U3={课程号,课程名,成绩}

完全函数依赖:学号,课程号)->成绩

主属性为:(学号,课程号)


3NF:R是第三范式

且每个非主属性都非传递依赖函数依赖于候选码,(不存在非主属性对候选码的传递依赖、部分函数依赖,可能存在主属性对候选码的部分函数依赖和传递依赖)

F4={学号->姓名,学号->学院}

U3={学号,姓名,学院}

完全函数依赖:学号->姓名,学号->学院

主属性:学号

x->y , y->z =》 x->z,将z属性单独提出,生成一个新的函数关系

学号->学院,学院->院长=>学号->院长

F5={学院->院长}

完全函数依赖:学院->院长

U5={学院,院长}

有损联接/无损联接 与 函数依赖判断

R(A1,A2,A3,A4), F={ A1A3->A2 , A2->A3 }

R分解为ρ={(A1,A2),(A1,A3)},判断是有损联接还是无损联接?

因为 (A1,A2)\bowtie (A1,A3) = (A1,A2,A3)\neq R(A1,A2,A3,A4),所以是有损联接

对于分解后的ρ,其中 (A1,A2)不在F中,(A1,A3)在F: A1A3->A2 中,但(A1,A3)中没有A2,因此A1A3≠>A2,所以不保持函数依赖

as:R(U,F)  U={A,B,C,D,E,G}  F={ A->B ,A->C,C->D,AE->G }

分解为_____两个子模式,分解后的关系仍保持依赖。

  • R1{A,B,C,D}  ( A->B ,A->C,C->D)
  • R2{A,E,G}   (AE->G)

软件工程

排它锁与事务

加了排它锁后,其他事务不能再加锁,该事务可对它读和修改

加了共享锁后,其他事务只能再加共享锁,只能读,不能修改

模块划分

在划分模块时,一个模块的作用范围应该在其控制范围之内。若发现其作用范围不在其控制范围内,则可以通过

  • 将判定所在模块合并到父模块中,使判定处于较高层次
  • 将判定上移到层级较高的位置
  • 将受判定影响的模块下移到控制范围内

内聚模式

内聚类型 描述
功能内聚 完成一个单一功能,各个部分协同工作,缺一不可
顺序内聚 处理元素相关,而且必须顺序执行
通信内聚 所有处理元素集中在一个数据结构的区域上
过程内聚 处理元素相关,而且必须按特定的次序执行
时间内聚 所包含的任务必须在同一时间间隔内执行
逻辑内聚 完成逻辑上相关的一组任务
巧合内聚 完成一组没有关系或松散关系的任务

开发模型

模型名称 适用情况
瀑布模型

适用于需求明确(相关领域经验、替换原有系统、功能有较清晰的定义、)

增量模型 拥有瀑布模型的所有优点,可快速构造可运行产品
原型模型 适用于需求不明确,不适用于大规模系统
螺旋模型 适用于风险较大,规模较大的系统
喷泉模型 适用于面向对象开发的系统,各个开发阶段没有明显的界限

计算机安全

防火墙

 计算机病毒

网络攻击

 其他网络安全

主动攻击:重放、IP地址欺骗、拒绝服务

被动攻击:流量分析

数据库容灾属于:系统安全和应用安全

网络安全体系:物理线路安全、网络安全、系统安全、应用安全

SSL:传输层,用于实现web安全通信,https是基于SSL

SSH:应用层和传输层,用于终端设备与远程站点之间建立链接,安全远程登录

MIME:电子邮件类型扩展,与安全电子邮箱无关

产权保护

著作权:作者对其创作的作品享有人身权和财产权

人身权:发表权、署名权、修改权、保护作品完整权

只有发表权有时间限制是终生和死后50年,其他的永久有效

软件著作权产生时间:自从作品完成创作之日起

软件著作权的客体不包括:软件开发思想

如果是植物软件作品,那开发者只有署名权

只要考著作权归公司还是个人的不用想都是归公司

对于专利权,20年有效期,谁先谁获得,当天的共同协商

商标权可以延长(10年续加)

同时申请商标,进行协商,协商无效抓阄/抽签决定

计算机网络

物理层:中继器、集线器

数据链路层:网桥、交换机

网络层:路由器

应用层:网关

端口表
POP3(110) NFS
FTP(20/21) HTTP(80) DHCP(67) TFTP(69)
Telnet SMTP(25) SNMP(161) DNS(53)
TCP UDP
IP ICMP IGMP ARP RARP

应用层 文件传输协议
FTP
远程登录协议
Telnet
电子邮件
SMTP
网络文件服务
NFS
网络管理
SNMP
表示层
会话层
传输层 TCP UDP
网络层 IP ICMP ARP RARP
数据链路层 IEEE802,FDDI PPP/SLIP
物理层

 MIME:邮件附件

SMTP:发邮件

POP3:收邮件

DNS域名查询顺序:本地host文件 =》本地DNS缓存 =》本地DNS服务器 =》 根域名服务器

主域名查询顺序:本地缓存 =》 本地host文件 =》 本地数据库 =》 转发域名服务器

IP:222.125.80.128/26 包含了___个可用主机地址,其中地址最小是_____,最大是_____。

  • 32-26 = 6    2⁶-2 =62   
  • 最小地址:222.125.80.129
  • 最大地址:222.125.80.190 

IPV6的地址空间是IPV4的____倍。

  • IPV6=2^{128}
  • IPV4=2^{32}
  • \frac{2^{128}}{2^{32}}=2^{96}  

先ping127.0.0.1,目的是为了测试网络的的连通性。

主机路由子网掩码:255.255.255.255

下午题

数据流图

实体与实体之间不能有数据流

 判断加工是否正确

  1. 父图子图平衡:父图有的 子图也要有对应的连线
  2. 加工数据流有入有出:有入没出:黑洞,有出没有入:白洞:没有入没有出:灰洞
  3. 文章寻找数据守恒:文章描述中寻找关键数据流

几种数据关系

  • 包含关系  A包含B  A是基本用例  执行基本用例必须执行被包含用例

  

  • 扩展关系  A扩展于B A是扩展用例 B是基本用例,A是B的特殊

  • 泛化关系   A泛化出B,C  A是父类,B,C是子类,任选其一 

 

用于最后一题java程序设计代码填空

 如果子类是继承(extends)父类,那么分类是抽象类(abstract)

如果子类是实现类(implements)父类,那么父类是接口(interface)

继承抽象就需要实现抽象累中的所有方法

一个类实现一个接口,则要实现接口中的所有方法

静态方法可以直接通过类名.方法名()调用

各种设计模式出现次数统计

模式名称 出现次数 时间
桥接模式 3次 09上半年 13下半年 17下半年
组合模式 4次 11上半年 21上半年 09下半年 10下半年
策略模式 3次 10上半年 19上半年 15上半年
观察者模式 3次 14上半年 16上半年 19下半年
装饰模式 2次 12上半年 16下半年
状态模式 2次 11下半年 18下半年
生成模式 2次 17上半年 18上半年

猜你喜欢

转载自blog.csdn.net/weixin_45369856/article/details/129228836
今日推荐