前言:
1.总想瞎bb点什么内容,
2.自己复习的笔记,分享大家一起使用~
3.可能有错误请指教·
4.对于有些基础内容进行省略
5.适合等公交、摸鱼 无聊的时候观看,
6.技术有限,哪里出错误了请指教,十分感谢~
一、计算机组成与结构
· 数据的转换
1. R进制 → 10进制 : 使用“按权展开法”
分析:
二进制 (用B来表示) 、八进制(用O来表示)、十进制(用D来表示)、十六进制(用H来表示)
1227(D)= 1000 +200+20+7 = (1x10³)+(2x10²)+(2x10¹)+(7x10º)
10100.01(B) = 1X24+ 0x2³ +1x2² + 0x2¹ +0x2º + 0x2-1 + 1x2-2
七进制: 604.01 =6x72+ 0x71 +4x70+ 0x7-1+1x7-2
2. 10进制 → R进制 :“短除法”
按位做除,直到除数<R,从后往下抄余数
3. 二进制 → 八进制 、十六进制
>将这两个放一起,为因为做法思路都是一样的,这里只说一下八进制的
> 二进制转八进制 :
>①. 从后往前 三个画一组三个画一组,最前面的不满足3个补0
>②. 每一组 从后往前下标分别写 124 并对每一组进行求和
>③.二进制每一组的值就是8进制的一位,抄下来就行> 二进制转十六进制 : 需要4个画一组 下标1 2 4 8 相加求和
如图:
·数据表示
- 原码、反码、补码、移码
- 当一共8位时,首位默认符号位(0为正,1为负)后7为是数据位
1. 正数
正数的原=反=补 都是二进制数字
移码:符号位取反,其余不变;
2.负数
原码:首位为1 其余为二进制数
反码:符号位不变,数据位是原码取反
补码:反码的基础上+1
移码:在补码的基础上符号位取反,其余不变;
备注:+0 -0 是不一样的·
· 数值表示范围
如图:
“硬背是不可能的,这辈子都不可能的”
举个例子:
假设一个二进制数是 4位 且首位为符号位
□ □ □ □ 可以表示的范围 :1111 ~ 01111
也就是: -7 ~ 7
也就是:(-23-1 ~ 23-1)
也就是:(-2n-1 ~ 2n-1-1) n表示位数
当n=8时 可以表示 -128~ 127 (-128是人为规定的)
· 浮点运算以及存储
1.表示
M=尾数 x 基数阶码 ; 例如:3.14=314 x 10-2
2.特点
1.尾数用补码,阶码用移码
2.阶码位决定表示范围;位数越大,范围越大
3.尾数位决定有效精度;位数越大,精度越高
4.对阶时,小数向大数看齐 (对阶 :表示调整尾数,将两个数的指数统一)
5.对阶是通过较小数的尾数右移实现
3.运算过程
对阶 >> 尾数计算 >> 结果格式化
4.浮点数存储格式:
例子: 314 x10-2
· 计算机结构
1.运算器:
- ALU 算数逻辑单元
- AC 累加寄存器:用于数据临时存放地
- DR 数据缓冲器: 数据读写存储
- PSW 状态条件寄存器: 状态标记/控制
2.控制器:
- PC 程序计算: 记数、存放下一条访问的地址
- IR 指令寄存器:存储即将执行的指令
- ID 指令译码器:翻译指令
- 时序部件 :时序控制信号
- cpu和内存、外设之间的数据中转站
·计算机体系结构分类
1.分类
类型 | 结构\特征 | 代表 |
---|---|---|
单指令、单数据流 SISD | 单处理器、单控制、单主存模块 | 单指令处理系统 |
单指令、多数据流 SIMD | 多处理器/主存,单控制 | 并行\阵列 处理器 |
多指令、单数据流 MISD | 一个处理器 干多个事情 | 目前没有,文献有“流水计算机” |
多指令、多数据流 MIMD | 多处理器、作业任务指令多线操作 | 多处理机系统 |
数据流 与处理器有关 , 指令 与控制有关
2. 指令概念
- 一条指令就是机器语言的一条语句,二进制代码
- 指令分为两部分 :操作码 和 地址码
操作码 | 地址码 |
---|---|
做什么操作 ? | 地址在哪? |
指令区别 | 指令格式(op表示“操作”) | 例子 |
---|---|---|
三地址指令 | OP/A1/A2/A3 | a+b=c |
二地址指令 | OP/A1/A2/A3 | a+=b |
一地址指令 | OP/A1/A2/A3 | a++ |
3.寻址方式
- 立即寻址
操作数直接在指令中,速度快,不灵活
IR | OP | 操作数
- 直接寻址
指令中 存放的是操作数的地址 (也就是说需要经历两次寻址)
IR | OP | 直接地址(中间包含主存、操作数)
- 间接寻址
指令存放在一个地址,地址内容是操作数地址
- 寄存器寻址
寄存器中存放操作数
-寄存器间接寻址
寄存器中存放的是操作数的地址
4. 复杂指令集(CISC ) 和 精简指令集(RISC)
CISC :数量多,频率差别大,长度可变
RISC:数量少,定长格式。对于人类来说方便,对于机器看来复杂
流水线技术
1.概念:
执行多条指令重叠进行操作时的一种准则并行出处理实现技术,并提高处理速度
2.计算:
流水线周期:执行时间最长的一段的时间
总时间计算:(t1 +t2 +t3…+tn)+(n-1)x △t
讲人话就是:1条指令所需要的的时间 + (指令条数 -1)x 流水线周期
- 超标量流水线(多系统流水线组成)
吞吐率(Though Put rate ,TP):单位时间内流水线所完成的人物数量或输出结果的数量
最大吞吐量为:
· 层次化存储结构
cpu<———> cache<——>内存(主存RAW、ROM)<——>外存(辅存 硬盘)速度快,容量小<—————————————————————>速度慢,容量大
- cache: 平衡cpu和内存的速度差,按内容存取
- 使用 cache + 主存储的系统平均周期为 t3
平均时间:t3 = h x t1 +(1-h) x t2
t1:cache周期时间
t2:主存储器周期时间
h:为cache访问命中率
cache — 映像 (cache<—>主存的映射问题)
- 1.直接相连映射:硬件电路较为简单 ;主存中的页面与cache中的页面一一对应, 冲突率高
- 2.全相连映射:电路难于设计和实现 ;主存中的页面与cache中的页面随意相连,容量小,查找费事,冲突率较低
- 3.组相连映射: 先分组,再组与组之间使用全相连, 冲突率折中
- 4.地址映射:将主存与cache存储空间划分为若干页
· 编制与计算——主存
1.存储单元
- a:按字(bit)编址:存储体的存储单元是按“字”存储。最小单位是一个字
- b:按字节(Byte)编址:存储体的存储单元是按“字节”存储。最小单位是一个字节
1Byte = 8bit
芯片总数 = 总容量 / 每片的容量
考点一般是:以求容量、求芯片总数
·总线
一条总线同一时刻只能允许一个设备发送,但可以多个设备接受。
地址总线、数据总线、控制总线
· 串联系统 与并联系统
可靠性
- 1:串联:将一个R的可靠性乘机 R总=R1 X R2 X R3 … X RN
- 2:并联:R总 = 1 - (1-R1)X (1-R2) X(1-R3)… X (1-RN)
- 3: 混合型:串并混在一起使用
如图:
校验码-基础
- 能够发现或能够自动纠正错误的数据编码,也称检错纠错编码
- 通过加一冗余码,来检验或纠错编码
1.奇偶校验
编码方法:在原编码中加一个校验位,则原编码就变成了校验码,它的码距为2,可以检查出奇数位错误,但不能检查出偶数位错误,增加的冗余位为奇偶校验位,一般校验位设置在原编码的最左边或最右边。
奇校验码:整个校验码(信息位+校验位)中1的个数位奇数
偶校验码:整个校验码(信息位+校验位)中1的个数位偶数
2.循环校验码 CRC
- 编码方式:在信息位后面添加校验位拼接出来便是crc码
- 可发现错误,并自动进行纠正
- 结构:
信息位 | 校验位 |
---|
- 关于crc码的考点: 一般都是让求编码
题干中会告诉 “信息码” 和 “多项式”,求crc码
方法:
1、将多项式的次方化作 二进制数值
2、信息码 除以 多项式二进制数值 取余
3、将余值补在信息码最后 便拼凑出了crc码
3.海明码
- 只可以检错,可纠错
- 根据公式:2k ≥ n+k+1(若要检测两位错,则需再增加1位校验位,即k+1位)
二、操作系统
· 进程管理
1.概念
- 定义:程序在数据集合中运行的过程,资源分配和调度的独立单位
- 组成:由 程块、进程控制快(PCB)、数据库组成
进程与程序的关系: 进程是程序的一次执行过程,进程是对 系统资源的在分配和调度的独立单位。程序是静态的概念;进程是动态的概念
2.进程状态
3.同步与互斥
- 直接制约(同步):速度会有有差异,但在一定情况停下来等待
- 间接制约(互斥):因为是在争夺临界资源。
临界资源:进程需要用互斥的方式对其进行资源共享。
4.PV操作
- 临界区:每个进程中访问临界资源的那段代码,成为临界区
- 信号量:是一种特殊的变量
p:passeren 申请资源,那么总资源量-1
v:verhoog 释放资源,那么总资源量+1
pv操作都是成对出现
- 互斥模型
多进程争夺临界资源的模型
- 同步模型
生产者、消费者问题
前趋图
- 是为了描述一个程序的各部分间的依赖关系,或者是一个大的计算的各个子任务间的因果关系的图示
进程s3: p(s1)、p(s2)、v(s3)
进程s4:p(s3)
对于前趋图只要找到箭头指向的方向作为切入口, 指向的做p操作,指出的做v操作
5.死锁问题
- 进程管理是操作系统的核心,如果分配的资源不当,便会产生死锁问题。
- 如果一个进程在等待一件不可能发生的事情,则进入进程死锁,而多个进程死锁就回造成系统死锁。
死锁条件
- 有序分配资源
- 银行家算法
· 存储管理
1. 页式存储
-
程序与内存均划分成同样大小的块,以页为单位将程序调入内存
-
逻辑地址 = 页号 + 页内地址
-
物理地址 = 页帧号 + 页面地址
-
优点: 利用率高,碎片小,分配管理简单
缺点:增加系统开销,可能产生抖动(可能将连续的程序分开,程序频繁调入调出)
页号(逻辑) | 页帧号(物理) | 状态位 | 访问位 | 修改位 |
---|---|---|---|---|
高级程序使用 | 内存使用 | 1表示在内存,0表示不再内存 | 1表示最近访问0表示未访问 | 1表示被修改0表示未修改 |
2.段页式存储
- 以作业中的自然段进行逻辑空间的划分,段长不一样
- 优点:多道程序共享内存,程序修改互不影响
缺点:利用率低,内存浪费大
3. 段页式管理
- 前两种的综合使用。先分段,再分页。
- 每一段大小不同,每一页大小相同。
- 优点:节约空间,容易共享、保护,动态链接
缺点:复杂度增加,开销增加,占用硬件资源增加,速度下降
4.页面置换算法
- 最优算法(opt):(理想置换算法)从主存中移出永远不再需要的页面;如无这样的页面存在,则选择最长时间不需要访问的页面。于所选择的被淘汰页面将是以后永不使用的,或者是在最长时间内不再被访问的页面,这样可以保证获得最低的缺页率。
- 先进先出(FIF0): 是最简单的页面置换算法。这种算法的基本思想是:当需要淘汰一个页面时,总是选择驻留主存时间最长的页面进行淘汰,即先进入主存的页面先淘汰。其理由是:最早调入主存的页面不再被使用的可能性最大。
- 最近最少使用(LRU):利用局部性原理,根据一个作业在执行过程中过去的页面访问历史来推测未来的行为。它认为过去一段时间里不曾被访问过的页面,在最近的将来可能也不会再被访问。所以,这种算法的实质是:当需要淘汰一个页面时,总是选择在最近一段时间内最久不用的页面予以淘汰。
- 时间局部性:刚被访问,立即又被访问
- 空间局部性:刚被访问,临近空间又被访问。
5.磁盘管理
- 存取时间 = 寻道时间+等待时间 = 磁头移动到所需要的磁道时间 + 磁头在磁道上读取的时间
6.调度算法
- 调度:操作系统管理了系统的有限资源,当有多个进程(或多个进程发出的请求)要使用这些资源时,因为资源的有限性,必须按照一定的原则选择进程(请求)来占用资源。
- 先来先服务(FCFS):按先后顺序服务
- 最短作业时间(SRTF):又分为抢占式和非抢占式
- 扫描算法(SCAN):又称为电梯算法,按照路径挨个服务
- 循环扫描(CDCAN):在扫描算法的基础上改成单边
7.读取硬盘数据时间计算
读取时间 = 寻找磁道时间+寻找扇区时间 +传输速度
·文件管理
1.索引文件结构
使用索引文件可以按需要将空间大小进行分级存取,以此提高效率。
索引结点由 0~12 一共13个组成
- 0~9: 属于直接索引 直接存入内存(1024个)
10:属于一级间接索引(256k)
11:属于二级间接索引(64M)
12:属于三级间接索引(16G)
2.树形目录
考点:“相对路径”与“绝对路径”
3.空闲存储空间管理
位示图:求容量
·设备管理
1.数据传输方式
程序控制:
无条件传送和程序查询,方法简单,开销小,影响cpu利用率
程序中断:
相对于程序控制,提高响应速度
DMA方式:
辅助cpu进行传输控制的一个独立硬件
通道方式:
开辟专门的通道,成本高
2.虚拟设备与spool技术
- 一种关于速字符设备如何与计算机主机交换信息的技术
- 当进程ABC都想调用打印机时会出出现一些问题导致效率降低, spool技术就是解决这一问题
- 如图:
三、数据库
- 数据库模式、ER模型、关系代数、规范化理论、SQL、并发控制、数据库完整性
·三种模式-两层映射
- 考:什么是三种模式-两层映射,它们之间的关系
·数据库设计过程
- 四个步骤:
1.寻求分析
对现实世界要处理的对象进行详细的调查,通过对原系统的了解,收集支持新系统的基础数据并对其进行处理,在此基础上确定新系统的功能。 会产生 数据字典、需求说明书
2.概念结构设计
概念结构设计的目标是设计数据库的E-R模型图,确认需求信息的正确和完整。具体来说就是从需求分析中找到实体,确认实体的属性、确认实体的关系,画出ER图。
3.逻辑结构设计
逻辑结构设计的任务是将概念结构设计阶段完成的实体模型转换成特定的DBMS所支持的数据模型的过程。逻辑结构设计的目的是将E-R图中的实体、属性和联系转换成为关系模式。
4.物理结构设计
指根据逻辑设计和物理设计的结果,在计算机上建立起实际的数据库结构、装入数据、进行测试和试运行的过程。
· ER模型
ER模型反应了实体与实体之前的关系
·关系代数
- 并:两个表格合并在一起
- 交:俩,
- 差
- 笛卡尔积
- 投影
- 选择
- 自然连接
· 规范化理论
目的:减少数据冗余、修改异常、出入异常、删除异常
关系模式:
部分函数依赖 {AB—>C;A—>C}
传递函数依赖{A—>B,B—>C,A—>C}
1.键
- 候选键:唯一标识元组且无冗余,可以有多个
- 主键:候选者中选择一个,便是主键
- 外键:其他关系的主键
2.求候选键
- 将关系网画成依赖关系,用箭头表示
- 找到入度为0的键,看从此键出发能不能走完全程
- 找有进有出的键
·主属性和非主属性
- 组成候选码的属性是主属性,其他的都是非主属性
1.范式
- 第一范式(1NF):属性都不可再拆分的数据项
- 第二范式(2NF):在1nf基础上每个非主属性没有部分依赖
- 第三范式(3NF):在2nf基础上没有非主属性传递依赖于候选键
- BC范式(BCNF): 消除主属性对候选键的部分依赖和传递依赖
· 模式分解
将来原有的一个打的关系表分解成若干小的关系表
分为:有损分解、无损分解
判断是否有损 有两个方法
1.表格法
2.公式法
点击链接自行查看
· SQL数据库语言
1.创建
CREATE TABLE<表名>(列名,<数据类型>[约束])
2.删
DEOP TABLE 表名
3.改
ALTER TEBLESPACE <表空间名>
·
5.插入
select [查询内容] from 表名
6.修改
insert into <表名>属性 valves 常亮
7.删除数据
delect from 表名 where 条件
· 并发控制
-
产生原因:数据库是共享资源,通常有许多个事务同时在运行。当多个事务并发地存取数据库时就会产生同时读取和/或修改同一数据的情况。若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性。所以数据库管理系统必须提供并发控制机制。
-
四个特性:原子性、一致性、隔离性、持续性
-
并发产生的问题 1.丢失更新 2.不可重复 3.读“脏”数据
-
解决方法:1.s封锁(针对读) 2.x封锁(写)
-
并且预防死锁
· 数据库完整性约束
- 实体完整性约束 ——>主键(非空,且唯一)
- 参照物完整性约束 ——>外键
- 用户自定义完整性约束(当以上无法满足条件的时候)————触发器
四、网络与信息安全
(TCP/IP、ip地址与子网划分)
· osi七层模型
· TCP/IP协议
- 留个问题: TCP和UDP的区别?
网络技术标准
- TCP/IP :interne上使用的网络传输协议,可扩展、可靠、应用广、牺牲了速度和效率
- IPX/SPX:novel(一种局域网)路由,适合大型企业网络
- NETBEUI协议:非路由,速度快,适用于本地局域网
ip地址与子网划分
1.ip地址
D/E两类不做探讨
2.子网划分
- 子网掩码:又叫网络掩码、地址掩码,必须结合IP地址一起对应使用,用于判断ip地址中的主机位和网络位
- 考点: 求子网掩码 或者划分网段
· 网络规划与设计
1.需求分析
- 主要有功能分析、性能分析、运行环境、扩充和维护
2.网络规划
- 实用性原则、开放性、先进性
3.网络设计实施原则
- 可靠性原则、安全性、高效、可扩充性
4.层次化
- 分为3个层次:核心层、汇聚层、接入层。核心层往上连接因特网,接入层往下连接pc
· 网络分类
1.范围:
局域网LAN:几十米到几公里,容纳几台到几百台,使用一个公司,一栋楼,一个学校 城域网MAN:规模局限在一座城市的范围内,10~100km的区域。广域网WAN:网络跨越国界、洲界,甚至全球范围。
2.拓扑结构;
星型网络:各站点通过点到点的链路与中心站相连。容易增加新的站点,容易控制,易实现,中心节点的故障会引起整个网络瘫痪。环形网络:各站点通过通信介质连成一个封闭的环形。环形网容易安装和监控,但容量有限,网络建成后,难以增加新的站点。总线型网络:网络中所有的站点共享一条数据通道。总线型网络安装简单方便,需要铺设的电缆最短,成本低,某个站点的故障一般不会影响整个网络。但介质的故障会导致网络瘫痪,总线网安全性低,监控比较困难,增加新站点也不如星型网容易。
· 接入技术
1.有线
- 公共交换电话网络PSTN、数字数据网DDN、综合业务数字网ISDN、非对称数字用户线路ADSL、同轴光纤技术HFC
2.无线
- WIFI (IEEE802.11)、蓝牙(IEEE802.15)、红外线
· HTML
考点: 给一段html代码,问什么意思
· 信息安全
- 加密、数字签名、摘要、证书、网络安全
1.对称加密
-
简单说就是加密和解密都使用同一套秘钥 即:Ke(加密) = Kd(解密)
-
特点:加密强度不高,效率不高,分发困难
-
相关加密算法:DES(数据加密标准)、3dED、RC-5,IDEA
2.非对称加密
- 字面意思 Ke ≠ Kd ,秘钥成对出现(公钥加密,私钥解密)
- 强度高,速度慢
- 算法:RSA,ECC
3.数字签名
- 目的:防抵赖,验证真实性
- 数字摘要: 由单向散列函数加密成固定长度的散列值,并且不可逆 (通常加密方法有 md5:128位、SHA:160位)
4.PKI公钥体系
- 管理密钥的注册、更新、消亡
· 网络安全
1.各个层次 的保障方法
2.主动攻击和被动攻击
- 被动攻击的手段:监听(保密性)
目的:内容获取、业务分流 - 主动攻击 的手段 :中断(可用性)、篡改(完整性)、伪造(真实性)
3.Dos攻击
- 分布式拒绝服务攻击
4.防火墙
5.防范体系
- 物理环境安全性:线路、设备、传输介质、防灾害、环境
- 操作系统安全性:安全配置,操作系统缺陷
- 网络系统安全性:访问控制、传输控制、全程接入、域名系统
- 应用系统安全性:web服务,DNS,病毒
- 管理系统安全性:管理制度、部门人员
6.木马和病毒
病毒:破坏数据安全
木马:在计算机中做个后门
考点:会考一些病毒/木马名词,问你分类
7.安全属性:
- 保密性:最小授权原则、防暴露、信息加密、物理保密
- 完整性:安全协议、校验码、密码校验、数字签名、公正
- 可用性:综合保障、CIP过滤、业务控制、路由器选择控制
- 不可抵赖性:数字签名
五、系统开发基础
- 开发模型、白盒测试、软件维护、gamt图、per图
·开发模型
1.瀑布模型
- 适合需求明确、小型、二次开发的项目
2.v模型
- 一个注重测试的模型,优点:缩短开发周期提高效率,缺点:把测试过程作为在需求分析、系统设计及编码之后的一个阶段,忽视了测试对需求分析,系统设计的验证,需求的满足情况一直到后期的验收测试才被验证。
1、需求分析
即首先要明确客户需要的是什么,需要软件作成什么样子,需要有那几项功能,这一点上比较关键的是分析师和客户沟通时的理解能力与交互性。要求分析师能准确的把客户所需要达到的功能,实现方式,等表述出来,给出分析结果,写出需求规格说明书。
2、概要设计
主要是架构的实现,指搭建架构、表述各模块功能、模块接口连接和数据传递的实现等项事务。
3、详细设计
对概要设计中表述的各模块进行深入分析,对各模块组合进行分析等,这一阶段要求达到伪代码级别,已经把程序的具体实现的功能,现象等描述出来。其中需要包含数据库设计说明。
4编码
按照详细设计好的模块功能表,编程人员编写出实际的代码。
5单元测试
按照设定好的最小测试单元进行按单元测试,主要是测试程序代码,为的是确保各单元模块被正确的编译,单元的具体划分按不同的单位与不同的软件有不同,比如有具体到模块的测试,也有具体到类,函数的测试等。
6集成测试
经过了单元测试后,将各单元组合成完整的体系,主要测试各模块间组合后的功能实现情况,以及模块接口连接的成功与否,数据传递的正确性等,其主要目的是检查软件单位之间的接口是否正确。根据集成测试计划,一边将模块或其他软件单位组合成系统,一边运行该系统,以分析所组成的系统是否正确,各组成部分是否合拍。
7系统测试
经过了单元测试和集成测试以后,我们要把软件系统搭建起来,按照软件规格说明书中所要求,测试软件其性能功能等是否和用户需求相符合,在系统中运行是否存在漏洞,等。
8验收测试
主要就是用户在拿到软件的时候,在使用现场,会根据前边所提到的需求,以及规格说明书来做相应测试,以确定软件达到符合效果的。
————————————————
版权声明:本文为CSDN博主「zhang_bryant」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_23381995/article/details/61622590
3.喷泉模型
- 面向对象的开发模型,每个阶段无明显界限,主要迭代,提高效率,节约成本,但管理难度高
4.原型化模型
适用于不能预先确切定义需求的软件系统的开发,更适用于那些项目组成员(包括分析员、设计员、程序员和用户)不能很好的交流或者通信的情况下
- 优点:减少设计错误与开发风险,减少对于用户的培训时间,提高系统实用、正确、满意度
5.螺旋模型
- 根据瀑布型、原型化模型演变而来的
- 适合开发风险高的项目,且庞大而复杂,高风险的管理信息开发
6.统一模型RUP
- 以用例驱动的架构为中心迭代和增量
7.敏捷方法
- 自适应软件开发(Adaptive Software Development):ASD不象其他方法那样 有很多具体的实践做法,它更侧重为ASD的重要性提供最根本的基础,并从更高的组织和管理层次来阐述开发方法为什么要具备适应性
- 水晶开发(sockbum):以最少的纪律约束任然能成功
- 特征驱动:迭代开发模型,每一步都强调质量,
- 极限编程:对象的严格控制,4个价值观(沟通、简单、反馈、勇气),12个最佳实践
- 开发式源码:联机开发
- 并列争求法(scrum)明确定义可重复方法过程,5大原则(承诺、专注、开放、尊重、勇气)
- ASD 方法:ASD (Adaptive Software Development)方法由 Jim Highsmith提出,其核心是三个非线性的、重叠的开发阶段:猜测、合作与学习。
· 软件开发方法
1.结构化方法
面向数据流的方法,使用数据流图,自顶向下,逐步分解,但不适合大兴项目
2.面向对象方法
更好复用性,分析、设计、实现 三个阶段,界限不明确.关键点在于建立一个全面的、合理的、统一的模型
3.面向对象服务
面向服务方法是面向对象法法的延伸。其服务建模又分为服务发现(分析)、服务规约(约定规范)、和服务实现(具体实现)三个阶段。
SO方法主要有三个级别(操作、服务、业务流程);
SOAD分为三个层次:基础设计层(底层的构建)、应用服务层(服务之间的接口和服务级的协调)、业务组织层(业务流程的建模和服务流程的编排)
4.原型法
适用于需求不明确的场景,
· 需求分析
- 解决系统做什么? 需要实现什么功能
· 软件设计
- 怎么做呢?
会产生几个文档
1.软件设计任务与活动
2.模块设计原则(高内聚,低耦合)
3.应用工具 IPO图(输入输出图)、POL图(程序描述图)、程序流程图(问题分析图)、N/S盒图
内聚(功能内聚、顺序内聚、通信内聚、过程内聚、瞬时内聚、逻辑内聚、偶然内聚)
耦合(数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合、)
· 软件测试
1.动态测试(放在电脑上运行)
白盒测试:运行程序分析代码结构
灰盒测试:介于白盒测试与黑盒测试之间的一种测试,用于集成测试阶段,不仅关注输出、输入的正确性,同时 也关注程序内部的情况
黑盒测试:运行程序,看输出结果
- 有动态测试就有静态测试,包含对于代码的测试,界面测试,文档测试
2.v模型
- 回归测试:测出bug,从头再来一次
- 负载测试、性能测试:测试性能
3.macabe复杂度
- 复杂度 V(G) = M-N+2 (M为结点,N为向弧数) = 边-结点+2
· 软件维护
- 可维护性因素决定 ——>可理解、可测试、可修改、可扩展 (考点:列出一些信息问属于那种因素)
- 软件维护类型
1.更正行维护
2.适应性维护 :适应环境
3.预防性维护:将来可发生做准备工作
4.完整性维护:扩张改善行修改
· 文档
- 考点:文档分类、归属那类
1.开发文档
可行性说明书、需求规格说明书、功能规格说明书、设计规格说明书、开发计划、项目集成和测试计划、项目保证标准精度、安全和测试信息
2.产品文档
针对用户的,与用户关联的产品
3.管理文档
其他的管理文档
· 软件质量保证
- 考点: 随机抽一个特性问属于哪类
功能性:实用性、准确性、互操性、安全保密性
可靠性:成熟性、容错性、易回复性
易用性:易理解性、易学性、易操作性、吸引性
效率:时间、资源、效率
时间:
维护性:
可移植性
· 软件改进过程——CMMI(软件程序模型)
- 考点:给一段话描述,询问公司发展到那个阶段
· 项目管理
- 考点:以图的方式来考察
范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、风险管理、采购管理、整体管理(9大管理)
1.方法:
关键路径法:是一种用来预测总体项目历时的项目网络分析技术。总时间差:
总时差(松弛时间):延误工期
求关键路径:就是找最长的工期时间
2.分析图(PDM、ADM):
-
前导图(单代号网络图 PDM):用于关键路径法,是描述项目进度网络图的一种最常用的方法:矩形是节点,代表项目任务,连接这些节点的是箭头,代表任务之间的依赖关系
箭头图法(爽代号网格图ADM):用箭线表示活动,活动之间用节点(称作“事件”)连接,只能表示结束——开始关系,每个活动必须用唯一的紧前事件和唯一的紧后事件描述;紧前事件编号要小于紧后事件编号;每一个事件必须有唯一的事件号。
3.损失
评估方法:风险曝光度:计算方法风险出现的概率 x 风险发生过后会造成的损失
六、面向对象技术
- 面向对象基础概念、UML、设计模式
基本概念
对象:属性+方法+ID
类:相同属性的集合
继承:复用机制
封装:隐藏对象的属性和实现细节,只对外公布接口
多态:不同对象收到同一消息产生的不同结果
接口:一种特殊的类,只有方法,没有实现
重载:一个类可以有个相同的名字,但是形参不同
消息的通信:同步、异步
设计的7大原则
- 单一性:设计目的单一类
- 开放-封闭原则:扩展开放、修改封闭
- 李氏原则:子类可以替换父类
- 依赖倒置原则:针对接口辩证,不要针对实现编程
- 接口隔离原则:使用多个专用的接口比使用一个单一的总接口好
- 组合重用原则:尽量使用组合,而不是使用继承关系
- 最少知识法则:对象与对象之间关联性越少越好
· UML(通用建模语言)
· 类图的4种关系
- 依赖关系:一个事物发生变化影响到另外一个事物
- 泛化关系:特殊/一般 关系
- 关联关系
- 聚合关系:整体和部分生命周期不同(部门和公司的关系)
- 组合关系:整体和部分生命周期相同(头和身子的关系)
- 实现关系:接口和类的之前的关系
·设计模式
1、创建型模式
对象实例化的模式,创建型模式用于解耦对象的实例化过程。
- 单例模式:某个类智能有一个实例,提供一个全局的访问点。
- 工厂模式:一个工厂类根据传入的参量决定创建出哪一种产品类的实例。
- 抽象工厂模式:创建相关或依赖对象的家族,而无需明确指定具体类。
- 建造者模式:封装一个复杂对象的创建过程,并可以按步骤构造。
- 原型模式:通过复制现有的实例来创建新的实例。
2、结构型模式
把类或对象结合在一起形成一个更大的结构。
- 装饰器模式:动态的给对象添加新的功能。
- 代理模式:为其它对象提供一个代理以便控制这个对象的访问。
- 桥接模式:将抽象部分和它的实现部分分离,使它们都可以独立的变化。
- 适配器模式:将一个类的方法接口转换成客户希望的另一个接口。
- 组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构。
- 外观模式:对外提供一个统一的方法,来访问子系统中的一群接口。
- 享元模式:通过共享技术来有效的支持大量细粒度的对象。
3、行为型模式
类和对象如何交互,及划分责任和算法。
- 策略模式:定义一系列算法,把他们封装起来,并且使它们可以相互替换。
- 模板模式:定义一个算法结构,而将一些步骤延迟到子类实现。
- 命令模式:将命令请求封装为一个对象,使得可以用不同的请求来进行参数化。
- 迭代器模式:一种遍历访问聚合对象中各个元素的方法,不暴露该对象的内部结构。
- 观察者模式:对象间的一对多的依赖关系。
- 仲裁者模式:用一个中介对象来封装一系列的对象交互。
- 备忘录模式:在不破坏封装的前提下,保持对象的内部状态。
- 解释器模式:给定一个语言,定义它的文法的一种表示,并定义一个解释器。
- 状态模式:允许一个对象在其对象内部状态改变时改变它的行为。
- 责任链模式:将请求的发送者和接收者解耦,使的多个对象都有处理这个请求的机会。
- 访问者模式:不改变数据结构的前提下,增加作用于一组对象元素的新功能。
七、数据结构和数据算法
- 线性表、数和二叉树、排序与查找、时间复杂度、空间复杂度、算法基础
· 数组
考点:存储地址计算
数组类型 | 储存方式 |
---|---|
一维数组 | a[i]的地址 = a + i x len |
二维数组 | a[i][j]的地址 = a+(i x n + j)len 按行存取 a[j][i]的 地址 a+(j x n + i)len 按列存取 |
· 稀疏矩阵
- 考点:给一个二维数组,问你对应在以为数组的位置,考试的时候使用带入法
上三角矩形 | 矩阵中下标分别是 i j的元素,对应一组数组的下标计算公式为【(2n-i+1)x i 】/2 +j |
---|---|
下三角矩形 | 矩阵中下标分别是 i j的元素,对应一组数组的下标计算公式为【(i+1)x i】/2 +j |
线性表
- 线性表是具有相同的数据类型的n(n >= 0)个数据元素的有限序列,当n=0时线性表为一个空表
用L表示线性表则 L = (a1,a2,a3,…,an- a1为表头元素,an为表尾元素
- a1无直接前驱,an无直接后继
1.顺序表
顺序表是指用一组地址连续的存储单元依次存储信息表中的数据元素,从而使得逻辑相邻的两个元素在物理位置上也相邻
2.链表
用一组任意的存储单元存储线性表的数据元素(地址不连续),因为地址不连续,所以链表的数据结构中需要存放下一个节点的地址,所以通常一个结点有两个部分(数据域和指针域)
一般分三类:单链表、循环链表(最后一个指针域指向首个)、双向链表(指针域中既包含下一个数据的地址也有上一个数据的地址)
·
链表的基本操作:单链表删除节结点、单链表插入节点、双链表删除节点 双链表插入节点
3. 顺序存储与链式存储对比
- 顺序存储:存储密度和读运算,从空间的角度来讲更优
- 链式存储:对于数据的增删改查,从操作的层面来讲更有
·队列 与 栈
-
队列(Queue):是限定只能在表的一端进行插入和在另一端进行删除操作的线性表,先进先出
-
栈(Stack):是限定只能在表的一端进行插入和删除操作的线性表,先进后出
· 广义表
- 考点:1.询问广义表的长度和深度;2.询问怎么取出广义表中某个内容
定义
广义表(Lists,又称列表)是线性表的推广。线性表定义为n>=0个元素a1,a2,a3,…,an的有限序列。线性表的元素仅限于原子项,原子是作为结构上不可分割的成分,它可以是一个数或一个结构,若放松对表元素的这种限制,容许它们具有其自身结构,这样就产生了广义表的概念。
`
广义表是n (n>=0)个元素a1,a2,a3,…,an的有限序列,其中ai或者是原子项,或者是一个广义表。通常记作LS=(a1,(a2,a3,…),an)。LS是广义表的名字,n为它的长度,括弧的嵌套关系是深度。若ai是广义表,则称它为LS的子表。
广义表基本操作
· 树与二叉树
- 定义
节点:节点包括一个数据元素及若干指向其他子树的分支。
节点的度:节点所拥有子树的个数称为节点的度。
叶节点:度为0的节点成为叶结点,叶结点也称为终端节点。
分支节点:度不为0的节点称为分支节点,分支节点又称非终端节点。一棵树中排除叶结点外的所有节点都是分支节点。
祖先节点:从根节点到该节点所经分支上的所有节点。
子孙节点:以某节点为根节点的子树中所有节点
双亲节点:树中某节点有孩子节点,则这个节点称为它孩子节点的双亲节点,双亲节点也成为前驱节点。
孩子节点:树中一个节点的子树的根节点称为该节点的孩子节点,孩子节点也称为后继节点。
兄弟节点:具有相同双亲节点的节点称为兄弟节点。
树的度:树中所有节点的度的最大值成为该树的度。
节点的层次:从根节点到树中某节点所经路径上的分支也称为该节点的层次,根节点的层次为1,其他节点层次是双亲节点层次加1.
树的深度:树中所有节点的层次的最大值称为该树的深度。
- 二叉树的性质:
1.在二叉树的第i层至多有2i-1个结点
2. 深度为k的二叉树至多有2k-1个结点
3.对任何一棵二叉树T,如果其叶子结点数为n0,度为2的结点数为n2,则n0=n2+1
- 满二叉树:一棵深度为k且有2k-1个节点的二叉树称为满二叉树,就是所有结点都为2
- 完全二叉树:深度为k的,有n个结点的二叉树,当且仅当每个结点都与深度为k的满二叉树中编号从1至n的结点一一对应时,称之为完全二叉树。
1.具有n个节点的完全二叉树的深度为⌊log2n⌋+1
· 二叉遍历
- 反向构造二叉树,题干给出两种遍历二叉树的序列,要求画出来
- 四种(前序遍历、中序遍历、后续遍历、层次遍历)
1.层次遍历
- 遍历过程:同一层中按左子树再右子树的次序遍历,从根节点层到叶节点层访问。 eg:8793621
2.前序遍历
- 遍历过程:先访问根节点,再访问左子树,最后访问右子树
3.中序遍历
- 遍历过程:先访问左子树,再访问根节点,最后访问右子树
4.后序遍历
- 遍历过程:先访问左子树,再访问右子树,最后访问根节点
· 树 转化 二叉树
- 普通树转二叉树,要记住6个字口诀:左儿子,右兄弟
- 具体:
-
1.将树的根节点直接作为二叉树的根节点
2.将树的根节点的第一个子节点作为根节点的左儿子,若该子节点存在兄弟节点,则将该子节点的第一个兄弟节点(方向从左往右)作为该子节点的右儿子
3.将树中的剩余节点按照上一步的方式,依序添加到二叉树中,直到树中所有的节点都在二叉树中
· 查找二叉树
简单概括就是左孩子小于根,右孩子大于根
· 哈夫曼树
- 考点:构造哈夫曼二叉树
1.构造哈夫曼数的步骤
第一步:找出字符中最小的两个,小的在左边,大的在右边,组成二叉树。并将两数和作为两个数的根结点
第二步:找出第三小的数字,与前面两数的根结点组成上一端的二叉树
第三步:循环这个操作
· 线索二叉树
- 其实就是以一定规则将二叉树中的结点排列成一个线性序列,得到二叉树中结点的先序序列、中序序列或后序序列。这些线性序列中的每一个元素都有且仅有一个前驱结点和后继结点。
· 平衡二叉树
- 任意结点的左子数深度 — 右子数深度 = (-1、0、1),那么我们就可以称之为平衡二叉树
· 图
1.完全图
- 无向图:没对定点之间是一条边相连
- 有向图:每对顶点之间都有两条向量边相连
2.相邻矩阵(图像的存储)
- 表示顶点之间相邻关系的矩阵。用一个n阶方正表示R 存放图中哥哥结点关联信息
3.邻接表
-每个顶点的相顶点用链表表示,然后每一个一维数组来顺序存储上面每个链表头指针
4.图的遍历
-
深度优先:由上往下,由左往右
-
广度优先:先从左到右,再从上到下
5.拓扑排序
- 用有向边表示活动之间开始的先后顺序,这种图成为活动网络图 简称AOV
然后我们可以按照上面的操作得到如下的几套方案 0>1>2>3>4>5>6 1>0>2>3>5>4>6 0>1>3>5>2>4>4 等等一系列方案
6.图的最小生成树
- 用最少的线路画连同全部的结点
八、程序设计语言和处理程序
· 编译过程
1.解释型
- 逐行解释,成机器语言不产生任何文件
2.编译型
- 将全部代码翻译成机器语言在交给cpu运行
原代码 —> 词法分析(检查代码中的非法语法/拼写错误) —> 语法分析(检查语法结构) —> 语义分析(检查死循环、逻辑错误、特质静态语言错误) —>中间代码 —>目标代码 —>目标程序
·文法定义
-
描述一门语言
-
G=(VN,VT, P, S) = (非终结符、终结符、起始符、产生符)
0型文法 | 短语文法 | 图灵机 |
---|---|---|
1型文法 | 上下文有关文法 | 线性界限自动机识别 |
2型文法 | 上下文无关文法 | |
3型文法 | 正规文法 | 有限自动机 |
· 有限自动机
·正规式
- 描述过程程序语言单词的表达式
① ε是一个正规式,它表示集合L(ε)={ε}。
② 若a是∑上的字符,则a是一个正规式,它所表示的正规集L(a)={a}。
③ 若正规式r和s分别表示正规集L®、L(s),则
(a)r|s是正规式,表示集合L®∪L(s);
(b)r·s是正规式,表示集合L®L(s);
(c)r是正规式,表示集合(L®);
(d)®是正规式,表示集合L®。
·数据类型与程序控制结构
- 常见的数据类型 shot、long、int 、bloot·····
- 控制结构:顺序、选择、循环
· 表达式
- 起始就是表达式中符号出现的位置做区分分成以下3种
1.前缀表达式
2.中缀表达式
3.后缀表达式
·传值 与 传址
- 传址:形参传递数据在物理内存中的地址进行操作
- 传值:形参取的是实际参数
·各种程序语言的特点
九、多媒体基础知识
- 基本概念、计算、种类、压缩技术
·音频
- 人生 = 乐器:20hz ~ 20khz ; 说话 300hz~3400hz
- 音频格式:wave、MP3、midi(记录音乐乐器的格式)
- 采样:
- 1.采样频率 = 1/采样周期
- 2.采样精度 = “用多少位,二进制表示”
- 采样频率为声音的2倍(为了保证不失真)
- 每秒容量 = (采样频率(hz) x 采样位说(位) x 声道数 ) ÷ 8
·图像
- 明度、色相、饱和度
- 计算图像大小 :
- 长x宽x位数÷8 (题干告诉了:像数 和位数)
- 长x宽x ㏒2(色位) ÷ 8 (题干告诉了 像数和 色位)
·多媒体
1.感觉媒体
直接作用于人的(声音、图像、动画)
2.表示媒体
各种编码方式(文本、图像、声音)编码
3.显示媒体
输入输出设备
4.存储媒体
物理设备(u盘、硬盘)
5.传输媒体
物理设备(网卡、网线)
·数据压缩基础
- 空间冗余、时间冗余、视觉冗余、信息熵冗余、知识冗余
· 有损压缩和无损压缩
· 常用的多媒体标准
十、知识产权与标准
- 考点:侵权判定
· 保护范围与对象
1.著作权法
不需要申请,完成即保护
2.软件著作权法
不需要申请,登记制度,便于举证
3.计算机软件保护条例
4.专利法
需要申请,从申请日开始
5.商标法
需要申请,核准日开始
6.不正大竞争法
· 保护期限
·知识产权人确定
·侵权判定
中国公民、法人、或者其他组织作品,不论是否发表都享有著作权
开发软件所用的思想,处理过程,操作方法或者其他数学概念不受保护,但保护开发工具、开发素材等
个人行为不产生任何价值不属于侵权
未经允许发表、署名、篡改、剽窃、使用他人作品牟利,
·标准化分类
1.类比/代码识别
分类: 国际(iso iec)、国家(GB)、区域(PASC)、行业(IEEE GJB)、地方、企业、项目
编号:国际(标准代号 + 专业类号 + 顺序号 + 年代号)
中国(GB(强制性)、GB\T(推荐性)GB\Z(指导性)GBS(实物标准))
行业 汉语拼音大写
地方 DB(地标)
到这里为止,上午考试的知识内容就看完了,这里也只是大致梳理了一下内容,很多具体的都省略或者给出了链接,方便大家选择性看。内容还有许多不足,还请指教