一. 计算机基础
1. 运算器和控制器的组成和含义
运算器 | ① 算数逻辑单元ALU: 数据的算数运算和逻辑运算; ② 累计寄存器AC: 通用寄存器, 为ALU提供一个工作区, 用来暂存数据; ③ 数据缓冲寄存器DR: 读写内存时, 暂存指令或数据; ④ 状态条件寄存器PSW: 存状态标志和控制标志;(基本不考) |
---|---|
控制器 | ① 程序计数器PC: 存储下一条要执行指令的地址; ② 指令寄存器IR: 存储即将执行的指令; ③ 指令译码器ID: 对指令中的操作码字段进行分析解释; ④ 地址寄存器AR: 用来保存当前CPU所访问的内存单元的地址; ⑤ 时序控件: 提供时序控制信号(基本不考) |
注意, 指定 DR→IR
2. 指令系统
名称 | 指令要求 | 寻址方式 | 实现方式 | 编译 |
---|---|---|---|---|
复杂指令系统 CISC | 指令数量众多, 使用频率差距悬殊. 可变长指令格式. | 多种寻址方式 | 与主存直接交互 微程序控制 | 编译复杂 |
精简指令系统 RISC | 指令数量少, 长度固定 | 寻址方式少 | 硬布线逻辑控制 流水线技术 与寄存器交互 | 优化的编译器 |
3. 流水线周期
各个小段中, 时间最长的那一小段
4. 流水线总时长公式
(t1 + t2 + … + tk) + (n-1)*∆t
5. 流水线的吞吐率&&最大吞吐率
吞吐率: 吞吐率是指单位内流水线处理机流出的结果数, 对指令而言, 就是单位时间内执行的指令数;
最大吞吐率:
流水加速比:
6. Cache
为了解决告诉运行的CPU与主存储器之间速度不匹配的问题;
cache与主存的映射是由硬件自动完成的;
★ 7. 直接映像 && 全相映像 && 组相连映像
这三种映像都是针对Cache的, 目的是将主存地址转换成Cache存储器的地址.
直接映像: 主存的块与Cache中块的对应关系是固定的; 点是地址变换很简单, 缺点是不灵活, 块冲突率高;
全相映像: 主存与Cache存储器均分成大小相同的块, 这种映像方式允许主存的任一块可以调入Cache存储器中的任何一个块的空间中; 全相映像位置不受限制, 十分灵活, 其主要缺点是无法从主存块号中直接获取Cache的块号, 变换比较复杂, 速度比较慢
组相连映像: 前两种的折中;
8. 内存按字节编制的计算题
主要问需要多少片内存, 这里注意, 一般默认芯片是 8bit, 如果碰到4bit芯片, 要记得乘以2;
9. 例题
★ 10. 随机存储器
概念性东西, 看一遍即可
SRAM静态的 随机存储器 | 工作速度快, 不断电信息不丢失, 但集成度较低, 工号较大, 如:Cache |
DRAM动态的 随机存储器 | 只能将数据保持很短的时间, 为了保持数据, DRAM使用电容存储, 所以必须隔一段时间刷新一次, DRAM关机就会丢失数据, 如: 主存 |
★ 11. 总线
名称 | 特点 | 应用 |
---|---|---|
并行总线 | 有传输延迟, 适合短距离连接 | 系统总线 |
串行总线 | 速率不高, 但适合长距离连接 | 通信总线 |
数据总线 | 传输数据信息, CPU一次传输的数据与数据总线贷款相等 |
---|---|
控制总线 | 传输控制信号和时序信号, 读写,片选,中断响应信号等 |
地址总线 | 传输地址, 它决定了系统的寻址空间 |
12. Flynn
多指令流单数据流(MISD) 在实际情况下很少出现, 只记这一个即可;
13. 校验码
名称 | 特点 |
---|---|
奇偶校验码 | 只能检测代码中奇数个位出错的编码, 但不能发现偶数个位出错的情况 |
海明码 | 奇偶校验码, 扩大码距(码距最小为2)来实现检错和纠错 |
循环冗余校验码CRC | 模2运算 |
海明码校验位:
14. 浮点数
两个浮点数相加时, 需要先对阶, 而对阶的时候要把阶码小的数的尾数右移N位, 与阶码大的对其;
左移<<增倍, 右移>>减半
例: 2*10^2 和 2*10^4 相加, 就相当于 200 + 20000, 2 和 2 对其的情况下, 200就是阶码小的数, 它需要整体后移 使0和0对其;
二. 程序语言基础知识
1. 编译程序 && 解释程序
编译语言: java, c, c++,
解释语言: python, c#, script, vb
2. 编译程序的几个阶段
1. 词法分析阶段: 识别一个个单词, 删掉无用的信息, 报告分析时的错误;
2. 语法分析阶段: 以单词符号作为输入, 分析单词符号是否形成符合语法规则的语法单位, 如表达式, 赋值, 循环等, 按语法规则分析检查每条语句是否有正确的逻辑结构;
3. 语义分析阶段: 主要检查是否存在静态语义错误, 并收集类型信息供后面的代码生成阶段使用, 如: 赋值语句的有段和左端的类型不匹配, 表达式的除数为0等;
4. 中间代码生成: 常见的有逆波兰记号, 四元式, 三元式, 树等
5. 中间代码优化&目标代码生成
6. 符号表管理 ----记录符号信息
7. 出错处理 ---- 静态错误(语法错误, 静态语义错误), 动态错误
3. 中间代码的多种形式, 和具体的机器无关
4. 文法&&正规式
(a*|b*)* .....
5. 有限自动机
三. 操作系统
★ 1. 进程
组成: 程序, 数据集合, 进程控制块PCB(进程存在的唯一标识)
进程控制块PCB: 线性方式, 链接方式, 索引方式
2. PV操作
3. 物理地址 && 逻辑地址
这部分概念没啥问题, 就是计算题, 有点让人模棱两可, 得找找计算题看看
★ 4. 动态重定位需要硬件支持( 物理逻辑地址相关 )
5. 页式, 段页式管理
6. IO的工作方式
工作方式 | 特点 |
---|---|
程序控制 -- 无条件传送 | IO端口总是准备好的, cpu在需要时, 随时直接利用访问相应的IO端口 |
程序控制 -- 程序查询 | CPU必须不停的此时IO设备的状态端口, CPU与IO设备是串行工作的 |
中断 | 某个进程要启动某个设备时, CPU就向相应的设备控制器发出一条设备IO启动指令, 然后CPU又返回做原来的工作,. CPU与IO设备可以并行工作 |
DMA(直接内存存取) | 通过DMA控制器直接进行批量数据交换, 除了在数据传输开始和结束时, 整个过程无需CPU的干预 |
通道控制 | 免去了CPU的接入, 使主机和外设并行工作程度更高 |
IO处理机 | 独立的存储器, 运算部件和指令控制部件 |
7. 文件索引 ★
直接地址索引, 一级间接地址, 二级间接地址
8. 位示图 ★
注意题干的描述, 第xxx个字, 还是编号为xxx的字
四. 计算机网络 (有精力再多看)
1. 网络模型
层的名称 | 主要功能 | 详细说明 |
---|---|---|
应用层 | 处理网络应用 | 直接为端用户服务,提供各类应用过程的接口和用户接口。例如HTTP、Tehet、FTP、SMTP、NFS 等 |
表示层 | 数据表示 | 使应用层可以根据其服务解释数据的涵义。通常包括教据编码的约定、 本地句法的转换。例如JPEG、ASCII, GIF、DES、MPEG等 |
会话层 | 互联主机通信 | 负责管理远程用户或进程间的通信,通常包括通信控制、检查点设罝、 重建中断的传输链路、名字查找和安全验证服务。例如: RPC、SQL 等 |
传输层 | 端到端连接 | 实现发送端和接收端的端到端的数据分组传送.负责保证实现数据包无差错、按顺序、无丢失和无冗余的传输。其服务访问点为端口。代表性协议有TCP、UDP、SPX等 |
网络层 | 分组传输和路由选择 | 通过网络连接交换传输层实体发出的数据.解决路由选择、网络拥塞、 异构网络互联的问题。服务访问点为逻辑地址(网络地址〉。代表性协 议有IP、IPX等 |
数据链路层 | 传送帧为单位的信息 | 建立、维持和释放网络实体之间的数据链路,把流量控制和差错控制合并在一起。为MAC (媒介访问层)和LLC(逻辑链路层)两个子层。 服务访问点为物理地址(MAC地址)。代表性协议有IEEE 802.3/.2、 HDLC、PPP、ATM 等 |
物理层 | 二进制位传输 | 通过一系列协议定义了通信设备的机械的、电气的、功能的、规程的特征。代表性协议有RS232、V.35、RJ-45、FDDI等 |
2. TCP / UPD
TCP | UDP |
---|---|
面向连接(如打电话要先拨号建立连接); | 无连接的,即发送数据之前不需要建 立连接; |
提供可靠的服务。通过TCP连接传送的数据,无差错、不丢失、不重复,且按顺序到达; | 尽最大努力交付,即不保证可靠交付; |
面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的; | 没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(対实时应用很有用,如IP电话,实时视频会议等); |
每一条TCP连接只能是点到点的 | UDP支持对一,一对多,多对一和多对的交互通信 |
TCP首部开销20字节 | UDP的首部开销小,只有8个字节; |
TCP的逻辑通信信道是全双工的可靠信道 | UDP则是不可靠信道,整体来看UDP开销较小。 |
3. 子网划分
五. 信息安全 (重要程度为选修)
1. 数据加密技术
对称加密算法: IDEA(128位), DES(56位), 3DES(112位)
非对称加密算法(公钥加密算法): 指加密秘钥和解密秘钥完全不同, 一个为公钥, 一个为私钥, 不能从任何一个推导出另一个, 有点在于可以适应开放性的使用环境, 可以实现数字签名与验证, 最常见的非对称加密算法是 RSA, 秘钥长度是512位;
2. 杂凑算法
杂凑算法是主要的数字签名算法, 利用散列函数(哈希函数, 杂凑函数)进行数据加密.
单向Hash函数提供了这样一种计算过程:输入一个长度不固定的字符串,返回一串定长的字符串,这个返回的字符串称为消息摘要(Message Digest, MD),也称为Hash值或散列值。
(1)消息摘要算法 MD5用于确保信息传输完整一致,它的作用是让大容量信息在用数字签名软件签署私人密钥前被“压缩”成一种保密的格式,即将一个任意长度的字节串变换成一个定长的大数)。MD5生成一个128位的散列值。
(2)安全散列算法 SHA能计算出一个数字信息所对应的长度固定的字符串(消息摘要),它对长度不超过264位的消息产生160位的消息摘要。
六. 数据库
1. 数据库模式
概念模式:一个数据库只有一个概念模式, 对应数据库中的表;
外模式:又叫子模式或用户模式, 外模式可以有多个, 对应数据库中的视图;
内模式:一个数据库只有一个内模式, 对应存储文件, 同时索引等内容也对应着内模式
★ 2. 数据库设计
过程 | 作用 | 成果 |
---|---|---|
需求分析 | 通过调查研究, 了解用户的数据和处理要求 | 需求文档 数据字典 数据流图 |
概念结构设计 | 将需求阶段的成果抽象为一个不依赖于任何DBMS的数据(概念)模型 | E-R图 |
逻辑结构设计 | 将概念设计阶段设计好的E-R图转换为与选用的具体机器上的DBMS所支持的数据模型相符合的逻辑结构 | 关系模式 |
物理设计 | 数据库在物理设别上的存储结构和存取方法 | 物理存储方法 索引等 |
3. 关系代数的运算
运算符 | 含义 | 名词解释 |
× | 笛卡尔集 | 两个元组m和n直接拼在一起, 形成一个(m+n)列的元组集合 |
⋈ | 自然连接 | 比较的属性列必须是相同的属性组, 并且把结果中重复属性去掉 |
4. 关系型数据库的依赖
名称 | 定义 |
---|---|
完全函数依赖 | AB→C, 其中任意A或B都不能决定C, 所以C完全依赖于AB |
部分函数依赖 | (A,B,C) 中, A→C, |
传递依赖 | 在R(U,F)中,如果X→Y,Y∉ X,Y→Z,则称Z对X传递依赖。 |
5. 范式
①1NF
②2NF: 完全依赖主键
③3NF: 消除传递依赖
④BCNF: R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选键。
★ 6. Armstrong公理 ( 纯概念 )
从已知的一些函数依赖,可以推导出另外一些函数依赖,这就需要一系列推理规则,这些规则常被称作“Armstrong 公理”。
三条公理
① A1自反律:若Y⊆X⊆U,则X→Y为F所蕴含;
② A2增广律:若X→Y为F所蕴含,且Z⊆U,则XZ→YZ为F所蕴含;
③ A3传递律:若X→Y,Y→Z为F所蕴含,则X→Z为F所蕴含。
三条推理
④ 合并规则:若X→Y,X→Z,则X→YZ为F所蕴含;
⑤ 伪传递规则:若X→Y,WY→Z,则XW→Z为F所蕴含;
⑥ 分解规则:若X→Y,Z⊆Y,则X→Z为F所蕴含。
★ 7. 数据完整性约束 ( 纯概念, 选择题 )
(1)实体完整性:实体完整性是指实体的主属性不能取空值。实体完整性规则规定实体的所有主属性都不能为空。
(2)参照完整性:在关系数据库中主要是指的外键参照的完整性。若A关系中的某个或者某些属性参照B或其他几个关系中的属性,那么在关系A中该属性要么为空,要么必须出现B或者其他的关系的对应属性中。
(3)用户定义完整性:是针对某一个具体关系的约束条件。它反映的某一个具体应用所对应的数据必须满足一定的约束条件。
8. E-R图 ==> 关系模式 ( 下午题可能会涉及, 看一下吧 )
(1)一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的主键就是关系的主键。
(2)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
(3)一个1:n联系可以转换为一个独立的关系模式,也可以与任意n端对应的关系模式合并。
(4)一个m:n联系转换为一个独立的关系模式,与该联系相连的各实体的主键以及联系本身的属性均转换为关系的属性,而关系的主键为各实体主键的组合。
(5)三个以上实体间的一个多元联系可以转换为一个独立的关系模式,与该联系相连的各实体的主键和联系本身的属性均转换为关系的属性,而关系的主键为各实体主键的组合。
注意:
(1)多值属性的处理。如果E-R图中某实体具有一个多值属性,则应该进行优化,把该属性提升为一个实体,通常称为弱实体;或者在转化为关系模式时,将实体的主键与多值属性单独构成一个关系模式。
(2)BLOB型属性的处理。应采用的设计方案是将BLOB属性与关系的主键独立为一个关系模式。
(3)派生属性的处理。因为派生属性可由其他属性计算得到,因此,在转化成关系模式时,通常不转换派生属性。
(4)在面向对象的模型中,关系模式就对应类,关系模式的属性就对应类的属性。
★ 9. 数据仓库
面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。
数据仓库包括:数据源、数据的存储与管理、OLAP 服务器、前端工具。
10. 锁技术
排他型封锁(X 锁/写锁)和共享型封锁(S 锁/读锁)
★ 11. 分布式数据库
分布式数据库的分布透明性
(1)分片透明性是分布透明性的最高层次。所谓分片透明性是指用户或应用程序只对全局关系进行操作而不必考虑数据的分片。
(2)位置透明性是分布透明性的下一层次。所谓位置透明性是指,用户或应用程序应当了解分片情况,但不必了解片段的存储场地。
(3)局部数据模型(逻辑透明)透明性是指用户或应用程序应当了解分片及各片断存储的场地,但不必了解局部场地上使用的是何种数据模型。
七. 软件工程
1. 开发模型
类型 | 特征 |
---|---|
瀑布模型 | 结构化开发; 开阶段性, 需求明确, 文档齐全, 风险控制弱 |
原型模型 | 迭代方法; 分为原先开发与目标软件开发; 需求不明确; |
增量模型 | 迭代法; 瀑布模型的变体; 第一个增量是核心; |
螺旋模型 | 迭代方法; 瀑布与原型(演化)模型结合体; 适用于大兴, 复杂, 风险项目; |
喷泉模型 | 面向对象方法; 复用好, 开发过程无间隙, 节省时间 |
V模型 | 开发与测试结合 |
变换模型 | 适用于形式化开发 |
智能模型 | 适用于基于规则的专家系统 |
快速应用开发RAD | 基于构件的开发方法; 用于参与, 开发或复用构件, 模块化要求高, 不适用新技术; |
RUP/UP | 用例驱动, 架构为中心, 迭代, 增量 |
可重用构建模型 | 基于构件的开发方法; 开发或复用构件; |
2. 敏捷开发
敏捷开发强调以人为本,与用户紧密协作,面对面沟通,尽早发布增量,小而自主的开发团队。适用于规模小的项目。
名称 | 特点 |
---|---|
xp极限编程 | 高效, 低风险, 测试先行(先写测试代码, 再编写程序) |
Cockburn水晶方法 | 强调不同项目, 采用不同策略 |
SCRUM并列争求法 | 迭代; 30天为一个迭代周期, 按照需求优先级实现 |
FDD功用驱动方法 | 将开发人员分类; 分为指挥者(首席程序员), 类程序员 |
开放式源码 | 采用虚拟团队, 开发成员分布各地 |
ASD自适应方法 | 采用预测--协作--学习的方式进行开发 |
3. 极限编程的最佳实践
实践类型 | 内容 |
---|---|
计划游戏 | |
小型发布 | |
隐喻 | |
简单设计 | |
测试先行 | |
重构 | |
结对编程 | |
集体代码所有制 | |
持续集成 | |
每周工作40h | |
现场客户 | |
编码标准 |
4. 结构化方法
面向数据流的开发方法; 结构化方法的核心思想是自顶向下, 逐步分解; 特别适合于数据处理领域的问题, 但是不适合解决大规模的, 特别复杂的项目, 且难以使用需求的变化
结构化分析: 根据分解与抽象的原则, 按照系统中数据处理的流程 用数据流图来建立系统的功能模型, 从而完成需求分析工作;
工具: 数据流图(DFD), 数据字典(DD), 结构化语言, 判定表, 判定树
结构化设计: 见下面的概要设计, 详细设计等
结构化程序设计(略)
5. 系统概要设计的内容与主要成果
设计软件系统总体结构 | 按系统功能将系统划分成模块, 确定模块功能与接口, 调用关系等 | ||
数据结构及数据库设计 | 数据结构设计 | 对数据字典进行细化, 细化数据组成, 操作约束, 数据关系等 | |
数据库设计 | 概念设计 | 用户角度, E-R图 | |
逻辑设计 | E-R图转换成关系模式 | ||
物理设计 | 物理存储方法, 索引等 | ||
编写概要设计文档 | 文档: 概要设计说明书, 数据库设计说明书, 用户手册, 修订测试计划 | ||
评审 | 判断是否实现了需求中定义的功能 |
6. 系统详细设计的内容与主要成果
对每个模块进行详细的算法设计,用某种图形、表格和语言等工具将每个模块处理过 程的详细算法描述出来。 | |
对模块内的数据结构进行设计。 | |
对数据库进行物理设计,即确定数据库的物理结构。 | |
其他设计 | 代码设计 |
输入/输出格式设计 | |
用户界面设计 | |
编写详细设计说明书 | |
评审 |
7. SC系统
SC系统(模块)结构图是软件概要设计阶段的工具。反映系统的功能实现和模块之间的联系与通信,包括各模块之间的层次结构,反映了系统的总体结构。SC包括模块、模块之间的调用关系、模块之间的通信和辅助控制符号等四个部分
8. 内聚 && 耦合
高内聚 && 低耦合
9. 面向对象设计原则
单一职责原则 | 设计目的单一的类。 |
---|---|
开放-封闭原则 | 对扩展开放,对修改封闭。 |
里式替换原则 | 子类可以替换父类 |
依赖倒置原则 | 要依赖于抽象,不是具体实践。对接口进行编程,不要对实现编程。 |
接口隔离原则 | 使用多个专门的接口比使用单一的总接口好。 |
组合重用原则 | 尽量使用组合不是继承达到重用的目的、 |
迪米特原则(最少知识) | 一个对象应当对其他对象有尽可能少的了解 |
10. UML图 (14种)
用例图 | 用例之间的关系有包含, 扩展, 泛化(继承) |
---|---|
类图 | 类之间的关系有关联, 依赖, 实现, 泛化 |
对象图 | |
构件图 | |
组合结构图 | |
顺序图(序列图) | |
通信图 | |
定时图 | |
状态图 | |
活动图 | |
部署图 | |
制品图 | |
包图 | |
交互概览图 |
11. 设计模式
23种, 分为创建型, 结构性, 行为型
目的 | 设计模式 | 概要说明 | 特征 |
---|---|---|---|
创建型 | 抽象工厂 | ||
建造者 | |||
(类)工厂方法 | |||
原型 | |||
单例 | |||
结构型 | (类)适配器 | ||
桥接 | |||
组合模式 | |||
装饰模式 | |||
外观模式 | |||
享元模式 | |||
代理模式 | |||
行为型 | 责任链模式 | ||
迭代器模式 | |||
中介者模式 | |||
备忘录模式 | |||
观察者模式 | |||
状态模式 | |||
策略模式 | |||
命令模式 | |||
(类)解释器模式 | |||
(类)模板方法 | |||
访问者模式 |
12. 白盒测试
也叫结构测试, 主要用于软件单元测试阶段
语句覆盖 | 被测程序的每个语句至少执行一次。最弱的覆盖。 |
---|---|
判定覆盖 | 也称为分支覆盖,每个语句至少执行一次,而且每个判定的每种可能的结果(分支)都至少执行一次。 |
条件覆盖 | 每个语句至少执行一次,而且使判定表达式中的每个条件都取得各种可能的结果。 |
路径覆盖 | 使得程序的每条可能执行到的路径都至少经过一次(如果程序中有环路,则要求每条环路路径至少经过一次)。 最高层次的覆盖 |
13. 软件过程 有可能会考
(一). 能力成熟度模型CMM
初始级 | |
---|---|
可重复级 | |
已定义级 | |
已管理级 | |
优化级 |
(二). 能力成熟度模型集成CMMI
① 阶段式模型
初始级 | |
---|---|
已管理级 | |
已定义级 | |
定量管理级 | |
优化级 |
② 连续式模型
CL0未完成级 | |
---|---|
CL1已执行级 | |
CL2已管理级 | |
CL3已定义级 | |
CL4定量管理级 | |
CL5优化级 |
八. 数据结构与算法
1. 线性表
顺序存储 && 链式存储(单链表, 循环链表: 循环单链表, 循环双链表)
2. 栈 && 队列
栈的应用: 表达式求值, 括号匹配, 递归等
队列应用: 打印队列
注意:
① 循环队列的长度为 (Q.rear - Q.front + M)%M;
② 双端队列可以看成栈;
3. 子串
子串是由串中任意长度的连续字符构成的序列称为子串。含有子串的串称为主串。空串是任意串的子串。
4. 二叉树的性质
① 在二叉树的第 i 层上最多有2i-1个结点(i≥1)
② 深度为 k 的二叉树最多有2k-1个结点(k≥1)
③ 对于任何一棵二叉树,如果其叶子结点数为 n0 ,度为2 的结点数为n2,则n0=n2+1
④ 具有n个结点的完全二叉树的深度为⌊ log2n⌋ +1
⑤ 如果对一棵有n个结点的完全二叉树的结点按层序编号(从第1层到⌊ log2n⌋ +1层,每层从左到右), 则对任一结点 i(1≤i≤n),有:如果i=1,则该结点是二叉树的根,无双亲,如果i>1,则,父结点是 ⌊ i/2⌋ 。如果2i≤n,则该结点左孩子编号是2i;否则无左孩子。如果2i+1≤n,则该结点右孩子编号是 2i+1;否则无右孩子。
⑥具有n个节点的二叉树有 种形态
5. 二叉树的遍历
前序遍历, 中序遍历, 后序遍历, 层次遍历(一层一层顺序来)
6. 二叉树的存储
完全二叉树 | |
---|---|
二叉链表 | |
三叉链表 |
7. 哈夫曼树
8. 图有邻接表与邻接矩阵两种表示方式。无向邻接矩阵是一个对称阵
9. 图的遍历
遍历方法 | 特性 |
---|---|
深度优先DFS | 相当于树的前序遍历. 邻接矩阵标识的时间复杂度为 O(n²) 邻接表标识的时间复杂度是 O(n+e) |
广度优先BFS | 相当于树的层次遍历 邻接矩阵标识的时间复杂度为 O(n²) 邻接表标识的时间复杂度是 O(n+e) |
10. 完全图
若一个无向图具有n个顶点,而每个顶点与其他n-1个顶点之间都有边,则称之为无向完全图。无向完全图共有 n(n-1)/2 条边。
有n个顶点的有向完全图中弧的数目为n(n-1),即任意两个不同顶点之间都有方向相反的两个弧存在。
11. 强连通图
有向图中,若任意两个顶点 Vi 和 Vj,满足从 Vi 到 Vj 以及从 Vj 到 Vi 都连通,也就是都含有至少一条通路, 则称图为强连通图;
对比之下, 无向图的连通图叫做 无相连通图;
12. 分治法 && 动态规划法 && 贪心法
分治法与动态规划法的区别是,动态规划法会保存每一个子问题的结果,不会重复解决子问题。
贪心法总是做出在当前来说是最好的选择,而并不从整体上加以考虑,它所做的每步选择只是当前步骤的局 部最优选择,但从整体来说不一定是最优的选择。
13. 回溯法
把问题的解空间转化成了图或者树的结构表示,然后使用深度优先搜索策略进行 遍历,遍历的过程中记录和寻找所有可行解或者最优解。基本思想类同于:图的深度优先搜索、二叉树的后序遍历。
14. 排序方法汇总
九. 项目管理
1. 关键路径
2. 软件风险
软件风险的两个特性: 不确定性 和 损失
不确定性: 指风险可能发生也可能不发生
损失: 如果风险发生, 就会产生恶性后果
3. 风险管理的个过程
风险识别, 风险预测, 风险评估, 风险控制
4. 风险显露度
可由下面的关系确定:RE = py*C其中,是风险发生的概率,C是风险发生时带来的项目成本。通过该公式判断风险的优先级
5. 软件配置管理
用于整个软件工程过程。其主要目标是标识变更;控制变更;确保变更正确地实现;报告有关变更。SCM是一组管理整个软件 生存周期中各阶段变更的活动。配置管理的主要内容包括版本管理、配置支持、变更支持、过程支持、团队支持、变化报吿和审计支持等。
6. 各种模型
COCOMO模型是一种精确的、易于使用的成本估算模型。
COCOMO模型按其详细程度分为基本COCOMO模型、中级COCOMO模型和详细COCOMO模型。
基本COCOMO模型是一个静态单变量模型,用于对整个软件系统进行估算。其可通过估算代码行的值,然后计算开发工作量和开发时间的估算值。中级COCOMO模型是一个静态多变量模型,它将软件系统模型分为系统和部件两个层次, 系统由部件构成,它把软件开发所需的人力(成本)看作是程序大小和一系列“成本驱动属性” 的函数。详细COCOMO模型它将软件系统模型分为系统、子系统和模块3个层次,除包括中级模型所考虑的因素外, 还考虑了在需求分析、软件设计等每一步的成本驱动属性的影响.
COCOMOII也是一种层次 结构的估算模型,被分为3个阶段性模型。COCOMOII模型也需要使用规模估算信息,在模型层次结构 中有3种不同的规模估算选择:对象点、功能点和代码行。
Putnam模型是一种动态多变量模型,它是假设在软件开发的整个生存周期中工作量有特定 的分布。根据一些大型软件项目(30人年以上)的工作量分布情况,推导出软件项目在软件生存周 期各阶段的工作量分布
十. 知识产权
知识产权客体 | 知识产权类型 | 保护期限 |
---|---|---|
公民作品 | 署名权, 修改权, 保护作品完整权 | 没有限制 |
发表权, 使用权, 获得报酬权 | 作者终身 + 死后50年的12月31日 | |
单位作品 | 发表权, 使用权, 获得报酬权 | 首次发表后的第50年的12月31日, 未发表则不受保护 |
公民软件作品 | 署名权, 修改权 | 没有限制 |
发表权, 复制权, 发行权, 出租权, 信息网络传播权, 翻译权, 使用许可权, 获得报酬权, 转让权 | 作者终身及其死亡后的第50年12月31日 合作开发的时间, 以最后死亡的那个作者为准开始计算 | |
单位软件作品 | 发表权, 复制权, 发行权, 出租权, 信息网络传播权, 翻译权, 使用许可权, 获得报酬权, 转让权 | 首次发表后的第50年的12月31日, 未发表则不受保护 |
发明专利权 | 20年(申请日开始计算) | |
实用新型与外观设计专利权 | 10年(申请日开始计算) | |
商标权 | 10年, 期满可续注 | |
商业秘密圈 | 没有限制 |
总结:
1. 单位作品, 暂无署名权, 修改权, 保护作品完整权, 而其他权限都是发表后的50年;
2. 个人作品, 署名权, 修改权, 保护作品完整权, 不论作品还是软件, 都没有时间限制, 但是其他权限是死后50年;
3. 发明20年, 实用新型10年, 商标10年可续, 商业秘密无期限;
客体类型 | 说明 | 归属 | |
---|---|---|---|
作品 | 职务作品 | 利用单位的物质技术条件创作, 并由单位承担责任的 | 除署名权外, 其他著作权归单位 |
合同约定 | 除署名权外, 其他著作权归单位 | ||
其他 | 作者拥有著作权, 单位有权在业务范围内优先使用 | ||
软件 | 职务作品 | 属于本职工作中明确规定的开发目标 | 单位享有著作权 |
属于从事本职工作活动的结果 | |||
使用了单位资金, 专用设备 未公开的信息等物质, 技术条件, 并由单位活组织承担责任的软件 | |||
专利权 | 职务作品 | 本质工作中做出的发明创造 | 单位享有专利 |
履行本单位交付的本职工作之外的任务所做出的的发明创造 | |||
离职, 退休, 或调动工作后1年内, 与原单位工作相关 |
客体类型 | 说明 | 著作权归属 | |
---|---|---|---|
软件作品 | 委托创作 | 合同约定 | 委托方 |
合同未约定 | 创作方 | ||
合作开发 | 只进行组织, 提供咨询意见, 物质条件或者进行其他辅助工作 | 不享有著作权 | |
共同创作 | 共同享有著作权, 按人头比例成果可分隔的, 可分开申请 | ||
商标 | 谁先申请谁拥有 (除知名商标的非法抢注) 同时申请, 谁先使用谁拥有 (需提供证据) 无法提供证据, 可协商, 协商不成的抽签决定 | ||
专利 | 谁先申请谁拥有 同时申请, 协商归属 |
未完待续.....