计算机基础
海明码的校验
已知数据信息为16位,最少应附加( )位校验位,以实现海明码纠错。
公式 2^r-r≥N+1
N填入16,r为应附加的校验位,则r=5满足需求加密
类型 | 描述 |
---|---|
RSA | 迪菲-赫尔曼密钥交换协议 |
DSA | 数字签名 |
ECC | 椭圆加密 |
- 计算机指令集
类型 | 描述 |
---|---|
RISC | 精简指令集计算机 |
CISC | 复杂指令集计算机 |
带宽计算
总带宽=数据总量/总时间光盘储存器
光盘存储器按存储介质可分为型变型、相变型和磁光型。
- 磁盘例题
某双面盘记录区的外径为12cm,内径为10cm,磁道密度为80cm,内圈位密度为 4000bit/cm。则该磁盘在格式化之前的总容量为 65 字节,该磁盘共有 66 柱面, 67 磁道。将该磁盘按每道18扇区格式化,每扇区512字节,则其存储容量为 68 字节。光盘存储器按存储介质可分为型变型、相变型和 69 。
对于磁盘存储器,非格式化的容量为Cn=ftmn,其中f为传输速率,t为每转时间,m为记录面数,n为每面信息数。对于磁盘,位密度Db=ft/[图片上传失败...(image-9134cc-1633609189536)] Dmin,其中Dmin为最内圈信息道直径。
因此,非格式化容量为:
Cn=Db×PI×Dmin×m×n=4000×PI ×10×2×[80×(12-10)/2+1)=6.48 PI ×10^6bit=0.81PI ×10^6B
海面的柱面数和磁道数相同,每面的磁道数为80×(12-10)/2+1=81。
由于有两面,则磁道数为81×2=162。
磁盘格式化后,容量有所减少。Cf=Bs×St×m×n。其中Bs为每扇区的字节数,St为每信道的扇区数。Cf=Bs×St×m×n=512×18×2×[80×(12-10)/2+1)= 1492992B。
第三章 数据结构
- 二维数组a[1...N, 1...N],a[i,j]的关系i
在按行存储方式下,a[ij]之前的元素个数为(i-l)N+j-l;在按列存储方式下,a[ij]
之前的元素个数为(j-l)N+i-l。若i=j,则a[ij]是主对角线上的元素,显然(i-l)N+j-l
与(j-l)N+i-l相等。若i
是下三角区域的元素,这两种情况下,存储在a[i,j]之前的元素个数分别为和(j-l)*N+i-1,其大小关系依赖于i和j的具体取值。
- 树的一些公式
设树中的节点总数为n、分支数目为m,
节点总数=分支数+1 n=m+1
-
二叉树的公式
- n个节点的二叉树一共有((2n)!)/(n! * (n+1)!)种形式 - n层二叉树的第n层最多为2^(n-1)个结点 - 二叉树节点计算公式 n = n0+n1+n2,度为0的叶子节点比度为2的节点数多一个。n=1*n1+2*n2+1 - 对任何一棵二叉树T,如果其终端节点数为n0,度为2的节点数为n2,则n0=n2+1 - 具有n个节点的完全二叉树的深度为log2(n) + 1 - 如果对一棵有n个结点的完全二叉树的结点按层序编号( 从第1层到 +1层, 每层从左到右) , 则对任一结点i( 1≤i≤n) , 有: 如果i=1, 则结点i无父结点, 是二叉树的根; 如果i>1, 则父结点是 ; 如果2i>n, 则结点i为叶子结点, 无左子结点; 否则, 其左子结点是结点2i; 如果2i+1>n, 则结点i无右子结点, 否则, 其右子结点是结点2i+1
第四章 操作系统
- 寄存器
名称 | 作用 |
---|---|
累加寄存器(AC) | 用来暂时存放算术逻辑运算部件ALU运算的结果信息 |
程序计数器(PC) | 下一条指令地址的地方,计算之前就要用到 |
指令寄存器(IR) | 保存当前正在执行的一条指令 |
地址寄存器(AR) | 保存当前CPU所要访问的内存单元的地址 |
第五章 软件工程基础知识
模型 | 特点 |
---|---|
瀑布模型 | 软件生存周期中各个活动规定为以线性顺序连接的若干阶段的模型,假设待开发系统需求完整简明一致 |
增量模型 | 需求分段成一序列增量产品,采用随着日程时间的进展而交错的线性序列,每个线性序列产生一个可发布的增量 |
演化模型 | 在获取一组基本的需求后,通过快速分析构造出该软件的一个初始可运行版本,然后逐步演化成为最终软件产品 |
原型模型 | 速构造软件的原型,在此基础上开发最终软件产品。用于需求不明确的项目,需要经常变更,不适合大规模软件 |
螺旋模型 | 强化风险分析、适用难度高且复杂的大型软件 |
喷泉模型 | 以用户需求为动力,以对象为驱动,多个开发同时进行,提高效率,但是需要大量开发人员,不利于项目管理,需要严格管理文档。迭代和无间隙特性 |
统一过程(UP)模型 | 初始阶段,精化阶段,构建阶段,移交阶段 |
- 软件质量
特性 | 子特性 |
---|---|
功能性 | 适合性、准确性、互操作性、安全保密性、依从性 |
可靠性 | 成熟性、容错性和易恢复性 |
易使用性 | 易理解性、易学性、易操作性、吸引性 |
效率 | 时间特性、资源利用性 |
可维护性 | 易分析性、易改变性、稳定性、易测试性(平均无故障时间MTTF,平均维修时间MTTR,MTTF/(MTTF+MTTR)*100%) |
可移植性 | 适应性、易安装性、一致性、易替换性 |
- 敏捷方法
名称 | 特点 |
---|---|
极限编程(XP) | 价值观,原则,实践,行为组成,彼此相互依赖,关联,并通过行为贯穿于生存周期,增量/反复开发,一次小的改进跟着一次小的改进,测试使用回归测试自动化单元测试 |
水晶法 | 每一个不同的项目都需要一套不同的策略,约定,方法论,人对软件质量有重要影响 |
并列争球法 | 使用迭代方式,每30天一次迭代,并按需求的优先级别来实现产品 |
自适应软件开发 | 使命作为指导,特征作为客户价值的关键点,过程中的等待很重要,变化不被视为改正而视为调整,确定的交付时间,风险包含其中 |
统一敏捷过程(AUP) | 建模,实现,测试,部署,配置及项目管理,环境管理 |
- 开发进度安排
图 | 用途 |
---|---|
Gantt图 | 简单的水平条形图,能清晰描述每个任务从何时开始,何时结束,任务进展情况和各个任务之间的并行性,单不能反应出各任务之间的依赖关系 |
PERT图 | 有向图,能得出每个任务开始时间结束时间和所需时间,任务之间的依赖关系,松弛时间,单不能反映任务之间的并行关系 |
- 风险管理
名称 | 用途 |
---|---|
凤险识别 | 试图系统化地确定对项目计划(估算、进度、资源分配)的威胁 |
风险预测 | 又称为风险估算,它从两个方面评估一个风险:风险发生的可能性或概率;以及如果风险发生时所产生的后果 |
风险评估 | 根据风险及其发生的概率和产生的影响预测是否影响参考水平值。 |
风险控制 | 目的是辅助项目组建立处理风险的策略,有效的策略应考虑风险避免、风险监控、风险管理及意外事件计划。 |
theo model 模型
三条黄金准则:用户操作控制,减轻用户记忆负担,保持界面一致OMT模型
对象建模技术(Object Modeling Technique,OMT)。OMT定义了3种模型,它们是对象模型、动态模型和功能模型。OMT用这3种模型来描述系统OMT方法有4个步骤:分析、系统设计、对象设计和实现。OMT方法的每一步都使用这3种模型,通过每步对3种模型不断地精化和扩充。
(1)对象模型:描述系统中对象的静态结构、对象之间的关系、对象的属性、对象的操作,对象模型表示静态的、结构上的、系统的“数据”特征。对象模型为动态模型和功能模型提供了基本的框架,对象模型用包含对象和类的对象图来表示。OMT的对象模型中除了对象、类、继承外,还有一些其他常用的概念。
①链(Link)和关联(Association)链表示实例对象间的物理或概念上的连接。
②泛化(Generalization):泛化是一个类与它的一个或多个细化类之间的关系,即一般与特殊的关系。被细化的类称为父类,每个细化的类称为子类,子类可以继承父类的特性。
③聚集(Aggregation):聚集是一种整体与部分的关系,在这种关系中表示整体的对象与表示部分的对象关联。
(2)动态模型:描述与时间和操作顺序有关的系统特征——激发事件、事件序列、确定事件先后关系以及事件和状态的组织。动态模型表示瞬时的、行为上的、系统的“控制”特征。动态模型用状态图来表示,每张状态图显示了系统中一个类的所有对象所允许的状态和事件的顺序。
(3)功能模型:描述与值的变换有关的系统特征——功能、映射、约束和函数依赖。功能模型用数据流图来表示。
3个模型之间具有下述关系。
(1)与功能模型的关系对象模型展示了功能模型中的动作者、数据存储和流的结构,动态模型展示了执行加工的顺序。
(2)与对象模型的关系:功能模型展示了类上的操作和每个操作的变量,因此它也表示了类之间的“供应者一客户”关系,动态模型展示了每个对象的状态,以及它接收事件和改变状态时所执行的操作。
(3)与动态模型的关系:功能模型展示了动态模型中未定义的不可分解的动作和活动的定义,对象模型展示的是谁改变了状态和承受了操作。
- 质量成本
质量成本可以被划分为与预防、鉴定及失败相关的成本。
“预防成本”包括以下方面的成本:质量计划、正式技术复审、测试设备、培训。
“鉴定成本”包括为深入了解“首次通过”各个过程时产品的状态而开展的那些活动。鉴定成本的例子有:过程内和过程间审查、设备校准和维护、测试等方面产生的成本。
“失败成本”是指如果在将产品交付给客户之前已经消除了缺陷时就不会存在的成本。失败成本可以进一步划分为内部失败成本和外部失败成本。“内部失败成本”是指在产品交付之前发现错误而引发的成本。内部失败成本包括以下方面的成本:返工、修复、失败模式分析。“外部失败成本”是指与产品交付给客户之后所发现的缺陷相关的成本。外部失败成本的例子有:解决客户的抱怨、退换产品、求助电话支持、保修工作等方面产生的成本。
- 软件维护工具
版本控制工具、文档分析工具、开发信息库工具、逆向工程工具、再工程工具、配置管理支持工具。
配置管理包含:版本控制、变更管理、配置状态报告、过程支持
- 软件设计两个阶段
阶段名 | 作用 |
---|---|
概要设计 | 软件体系结构的设计、数据设计和接口设计 |
详细设计 | 数据结构和算法的设计 |
- 软件工程基本要素
质量、过程、方法、工具
scrum模型
product backlog --> sprint backlog -> sprint -> release排序
第六章 结构化开发方法
- 耦合类型
耦合类型 | 描述 |
---|---|
无直接耦合 | 两个模块之间没有关系 |
数据耦合 | 两个模块之间有调用关系,传递简单的数据值 |
标记耦合 | 两个模块之间传递数据结构 |
控制耦合 | 一个模块向另一个模块传递控制变量,被调用模块通过该控制变量的值选择的执行模块内某个功能 |
外部耦合 | 模块间通过软件之外的环境联接 |
公共耦合 | 通过一个公共数据环境相互作用的那些模块的耦合 |
内容耦合 | 一个模块直接使用另一个模块的内部数据 |
模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。
- 内聚类型
内聚类型 | 描述 |
---|---|
功能内聚 | 模块内所有元素共同完成一个任务,缺一不可 |
顺序内聚 | 处理元素相关,而且必须顺序执行 |
通信内聚 | 所有处理元素集中在一个数据结构的区域上 |
过程内聚 | 处理元素相关,而且必须按特定的次序执行 |
瞬时内聚(时间内聚) | 把同时进行的动作组合在一起形成的模块 |
逻辑内聚 | 执行若干个逻辑上相似的任务,通过参数确定模块完成哪个功能 |
偶然内聚(巧合内聚) | 完成一组没有关系或松散关系的任务 |
PS: 顺序内聚和过程内聚的区别是:顺序内聚是数据流从一个处理单元到另一个处理单元,过程内聚是控制流从一个处理单元到另一个处理单元
- 面向对象设计
阶段 | 描述 |
---|---|
需求分析 | 主要是要解决系统做什么的问题,即弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。 |
概要设计 | 把需求分析得到的结果转换为软件结构和数据结构,即将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面、确定数据的结构特性、以及数据库的设计等。 |
详细设计 | 在概要设计的基础上更细致的设计,它包括具体的业务对象设计、功能逻辑设计、界面设计等工作。详细设计是系统实现的依据,需要更多地考虑设计细节。 |
编码 | 具体实现系统 |
- 数据流图
对象 | 描述 |
---|---|
实体 | 长方形 |
加工 | 圆形或圆角长方形,输入和输出平衡 |
数据流 | 箭头 |
数据储存 | 平行线或者缺边矩形 |
| 业务用例和参与者 | 描述组织或企业所支持的业务过程 |
| 业务对象模型 | 既描述业务结构,又描述这些结构元素如何完成业务用例 |
第七章 面向对象设计
- UML图
名称 | 描述 |
---|---|
类图 | 展现一组对象、接口、协作和它们之间的关系 |
对象图 | 展现某一时刻一组对象以及它们之间的关系 |
用例图 | 展现一组用例、参与者以及它们之间的关系 |
交互图 | 对系统动态方面进行建模。序列图、通信图、交互概览图、计时图 |
状态图 | 展现一个状态机,由状态、转换、事件和活动组成 |
活动图 | 是一种特殊的状态图。展现在系统内一个活动到另一个活动的流程 |
构件图 | 展现一组构件之间的组织和依赖 |
组合结构图 | 描述一个分类器的内部结构,分类器雨系统中其他组成部分之间的交互端口 |
部署图 | 对面向对象系统的物理方面建模的方法,展现运行时处理结点以及其中构件的配置 |
包图 | 用于吧模型本身组织成层次结构的通用机制,不能执行,展现由模型本身分解而成的组织单元以及其间的依赖关系 |
关系 | 图形 |
---|---|
组合 | 实心菱形,部分和整体之间具有相同的生命周期,当整体消亡后,部分也将消亡。 |
聚合 | 空心菱形,部分与整体之间并没有相同的生命周期,整体消亡后部分可以独立存在。 |
- 设计模式
` 创建型 单抽工建原`
设计模式 | 描述 |
---|---|
抽象工厂 | 提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类 |
生成器Builder | 将一个复杂对象的构件与它的表示分离,使同样的构建过程可以创建不同的表示 |
工厂 | 定义一个用于创建对象的接口,让子类决定实例化哪个类 |
原型 | 用原型实例指定创建对象的种类,并通过复制这些原型创建新的对象 |
单例 | 唯一实例 |
`结构型 桥代理组装适配器,享元回家装饰外观。`
设计模式 | 描述 |
---|---|
适配器 | 将一个类接口转化成客户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作 |
桥接Bridge | 将抽象部分与实现部分分离,使它们可以独立的变化 |
组合composite | 将对象组合成树形结构以表示“部分-整体”的层次结构 |
装饰Decorator | 动态给一个对象添加一些额外的职责 |
外观Facade | 为子系统中一组接口提供一个一致的界面 |
享元Flyweight | 运用共享技术有效支持大量细粒度的对象 |
代理Proxy | 为其他对象提供一种代理以控制对这个对象的访问 |
`行为型 访问者写好策略备忘录,观察模板迭代的状态,命令中介解释责任链。`
设计模式 | 描述 |
---|---|
责任链 | 使多个对象都有机会处理请求,避免发送者和接受者耦合 |
命令Command | 请求封装成对象,使得可以用不同请求对客户进行参数化 |
解释器Interpreter | 给定一个语言,定义他的文法的一种表示,并定义一个解释器来解释语言中的句子 |
迭代型Iterator | 提供一种方法顺序访问一个聚合对象的各个元素,而不需要暴露该对象的内部表示 |
中介者Mediator | 用一个中介对象来封装一系列的对象交互,中介者使对象不需要显式的相互引用,从而使其耦合松散,而且可以独立的改变他们之间的交互 |
Memento备忘录 | 不破坏封装性的前提下捕获一个对象的内部状态,并在对象之外保存这个状态。这样以后就可以将对象回复到原先保存的状态 |
观察者Observer | 定义对象间的一种一对多的依赖关系,当一个对象状态发生改变,所有依赖于他的对象都得到通知并被自动更新 |
状态state | 允许一个对象在其内部状态改变时改变他的行为 |
策略Strategy | 定义一系列算法,把它们封装起来使它们可以相互替换 |
模板方法 | 定义一个操作中的算法骨架,将一些步骤延迟到子类中 |
访问者Visitor | 表示一个作用域某对象结构中各元素的操作 |
第8章 算法设计与分析
- 算法设计策略:
算法 | 作用 |
---|---|
分治法 | 用于将大问题分解为一个或多个规模较小的子问题,通常采用自顶向下的递归方法来求解 |
动态规划 | 发现具有最优子结构和重叠子问题,求解时一般采用自底向上的方法来进行 |
贪心法 | 发现具有最有子结构和贪心选择性质,求解时可以用自底向上或自顶向下的方法进行 |
回溯法 | 深度遍历搜索解空间 |
分支限界法 | 广度遍历搜索解空间 |
第9章 数据库基础知识
- 分布式数据库系统
名称 | 描述 |
---|---|
分片透明 | 用户或应用程序不需要知道逻辑上访问的表具体是怎么分块存储的 |
复制透明 | 采用复制技术的分布方法,用户不需要知道数据是复制到哪些节点,如何复制的。 |
逻辑透明 | 用户或应用程序无需知道局部场地使用的是哪种数据模型。 |
位置透明 | 用户无需知道数据存放的物理位置 |
第10章 网络与信息安全基础知识
- 7层模型
模型 | 描述 | 协议 |
---|---|---|
应用层 | 文件传输,电子邮件,文件服务,虚拟终端。 | TFTP、HTTP、SNMP、FTP、SMTP、DNS、TELENT |
表示层 | 数据格式转换,代码转换,数据转换 | 没有协议 |
会话层 | 接触或建立与其他链接的联系 | 没有协议 |
传输层 | 提供端对端的接口 | TCP、udp |
网络层 | 为数据包选择路由 | IP、ICMP、RIP、OSPF、BGP、IGMP |
数据链路层 | 传输有错误地址的帧,错误检查功能 | SLIP、CSLIP、PPP、ARP、RARP、MTU. |
物理层 | 用网线建立电脑间的连接 | 没有协议 |
集线器是一个多端口的中继器, 它的所有端口在同一个冲突域内
交换机是一种多端口网桥, 它是一种工作在数据链路层的设备( 这里指的是二层交换机) , 不能划分网络层的广播, 即它的各个端口形成一个广播域。
- 端口与作用
端口 | 作用 |
---|---|
53 | DNS解析 |
23 | 远程登录服务 |
110 | POP3,邮件传送和接收 |
25 | SMTP协议 |
21 | FTP控制连接,用于传输命令和参数 |
20 | FTP数据连接,用于传送文件 |
- ip地址解析
A类 前8位1
B类 前16位1
C类 前24位1
划分网络地址:前面1的去掉,取后面0的位数=n ,2^n
划分几个子网:A,B,C各去前面的数,取下一个段的前面几个1=n,2^n
划分几个主机:取1后面0的位数=n,2^n-1
- 信息安全
机密性、完整性、可用性、可控性、可审查性
- 病毒特点
隐蔽性、传染性、潜伏性、触发性、破坏性
- 网络安全技术
名称 | 作用 |
---|---|
防火墙技术 | 包过滤、应用代理网关、状态检测技术 |
加密技术 | |
用户识别技术 | Kerberos、PGP |
访问控制技术 | |
网络反病毒技术 | |
网络安全漏洞扫描技术 | 包括网络模拟攻击、漏洞检测、报告服务进程、提取对象信息、评测风险、提供安全建议、改进措施 |
入侵检测技术 |
第11章 标准化和软件知识产权基础知识
保护期限不受限制:署名权、修改权、保护作品完整性权
保护期限为作者终身及死后50年:发表权、使用权、获得报酬权
第12章 软件分析与设计
黑盒测试
确认测试首先要进行有效性测试以及软件配置审查,然后进行验收测试和安装测试。其中有效性测试,就是在模拟环境下,通过黑盒测试检验所开发的软件是否与需求规格说明书一致。(等价类划分,边界值分析,错误推测,因果图)白盒测试
逻辑覆盖,循环覆盖,基本路径测试调试
试探法,回溯法,对分查找法,归纳法,演绎法软件质量评审
评审项 | 评审内容 |
---|---|
模块结构 | 控制流结构、数据流结构、模块结构与功能结构之间的对应关系 |
功能结构 | |
功能的通用性 | |
模块的层次性 | |
处理过程的结构 |
- SEI 能力成熟度模型(SEICMM)
等级 | 特点 |
---|---|
级别1:初始级 | 混乱和不可预测 |
级别2:重复级 | 项目得到管理监控和跟踪,有稳定的策划和产品基线 |
级别3:确定级 | 使用标准开发过程(或方法论)构建(或集成)系统。通过软件过程的定义和制度化确保对产品质量的控制 |
级别4:管理级 | 产品质量得到策划,软件过程基于度量的跟踪 |
级别5:优化级 | 持续的过程能力改进 |