一、计算机组成与体系结构
1.1、原码、反码、补码、移码的运算
原码:最高位表示符号位,其余低位表示数值的绝对值(0表示正数,1表示负数)
反码:正数的反码与原码相同,负数的反码是其绝对值按位取反(符号位不变)
补码:正数的补码与原码相同,负数的补码是其反码末位加1(符号位不变)
移码:补码的符号位按位取反
1.2、寻址方式的对比
立即寻址:操作数直接在指令中,灵活性差,但速度最快。
直接寻址:指令中存放的是操作数的地址。
间接寻址:指令中存放了一个地址,这个地址对应的内容是操作数的地址。
寄存器寻址:操作数存放在寄存器中,指令指定寄存器号。
寄存器间接寻址:寄存器中存放的是操作数的地址。
1.3、数据传输方式
程序查询方式:分为无条件传送和程序查询两种方式。方法简单硬件开销小,但I/O能力不高,严重影响CPU效率。
中断方式:因为CPU无需等待而提高了传输请求的响应速度。
DMA方式:效率比上述两种都高。
1.4、可靠性、可用性、可维护性
可靠性:MTTF/(1+MTTF)
可用性:MTBF/(1+MTBF)
可维护性:1/(1+MTTR)
1.5、CISC和RISC
二、操作系统
2.1、页式存储、段式存储、段页式存储
页式存储:将程序与内存均划分为同样大小的块,以页为单位将程序调入内存。
段式存储:按用户作业中的自然段来划分逻辑空间,然后调入内存,段的长度可以不一样。
段页式存储:段式与页式的综合体。先分段,再分页。1个程序有若干个段,每个段中可以有若干
页,每个页的大小相同,但每个段的大小不同。
三、程序设计语言
3.1、编译与解释
编译程序:也称编译器,将源程序翻译成目标语言程序,然后在计算机上运行目标语言程序。
解释程序:也称解释器,直接解释执行源程序,或者将源程序翻译成某种中间代码后再加以执行。
二者区别:编译方式生成目标程序,执行效率较高;解释程序不生成独立的目标程序,边解释边执行效率较低。
3.2、传值和传址
传值调用:形参取的是实参的值,形参的改变不会影响实参的值【单向】
传纸调用(引用调用):形参取的是实参的地址,形参的改变会影响实参的值【双向】
四、数据结构
4.1、顺序存储与链式存储
4.2、空串与空格串
空串:长度为0,不包含任何字符。
空格串:由一个或多个空格组成的串。计算长度时空格也要计算在内。
4.3、字串和子序列
子串:由串中任意长度的连续字符构成的序列称为子串。含有子串的串称为主串。子串在主串中的
位置是指子串首次出现时,该子串的第一个字符在主串中的位置。空串是任意串的子串。
子序列:一个串的“子序列”是将这个串中的一些字符提取出来得到一个新串,并且不改变它们的
相对位置关系。
子串要求连续,而子序列要求不改变相对位置即可,例如:ABC的子串为 AB,BC,而子序列可以为AC。
4.4、树的遍历
前序遍历:又称为先序遍历,按根→左→右的顺序进行遍历。
后序遍历:按左→右→根的顺序进行遍历。
中序遍历:按左→根→右的顺序进行遍历。
层次遍历:按层次顺序进行遍历。
4.5、图的遍历—深度优先和广度优先
五、算法基础
5.1、各类排序算法对比
5.2、常见算法特征总结
六、系统开发基础
6.1、内聚性
偶然聚合:模块完成的动作之间没有任何关系,或者仅仅是一种非常松散的关系。
逻辑聚合:模块内部的各个组成在逻辑上具有相似的处理动作,但功能用途上彼此无关。
时间聚合:模块内部的各个组成部分所包含的处理动作必须在同一时间内执行。
过程聚合:模块内部各个组成部分所要完成的动作虽然没有关系,但必须按特定的次序执行。
通信聚合:模块的各个组成部分所完成的动作都使用了同一个数据或产生同一输出数据。
顺序聚合:模块内部的各个部分,前一部分处理动作的最后输出是后一部分处理动作的输入。
功能聚合:模块内部各个部分全部属于一个整体,并执行同一功能,且各部分对实现该功能都必不可少。
6.2、耦合性
非直接耦合:两个模块之间没有直接关系,它们的联系完全是通过主模块的控制和调用来实现的。
数据耦合:两个模块彼此间通过数据参数交换信息。
标记耦合:一组模块通过参数表传递记录信息,这个记录是某一个数据结构的子结构,而不是简单变量。
控制耦合:两个模块彼此间传递的信息中有控制信息。
外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息。
公共耦合:两个模块之间通过一个公共的数据区域传递信息。
内容耦合:一个模块需要涉及到另一个模块的内部信息。
6.3、概要设计与详细设计
概要设计
设计软件系统总体结构:基本任务还是采用某种设计方法,将一个复杂的系统按功能划分成模块;
确定每个模块的功能;确定模块之间的调用关系;确定模块之间的接口,即模块之间传递的信息;评价模块结构的质量。
数据结构及数据库设计:在需求分析阶段对数据的组成、操作约束和数据之间的关系进行了描述,
概要设计阶段要加以细化,详细设计阶段则规定具体的实现细节。
编写概要设计文档:概要设计说明书、数据库设计说明书、用户手册以及修订测试计划。
评审:对设计部分是否完整地实现了需求中规定的功能、性能等要求,设计的可行性,关键的处理
以及外部接口定义的正确性、有效性、各部分之间的一致性等都一一进行评审。
详细设计
对每个模块进行详细的算法设计,用某种图形、表格和语言等工具将每个模块处理过程的详细算法
描述出来。
对模块内的数据结构进行设计。
对数据库进行物理设计,即确定数据库的物理结构。
其他设计:根据软件系统的类型,还可能需要进行代码设计、输入/输出格式设计,用户界面设计等。
编写详细设计说明书。
评审:对处理过程的算法和数据库的物理结构都要评审。
6.4、软件维护类型
更正性维护:针对真实存在并已经发生的错误进行的维护行为。【BUG】
预防性维护:针对真实存在但还未发生的错误进行的维护。
适应性维护:指使应用软件适应信息技术变化和管理需求变化而进行的修改。企业的外部市场环境
和管理需求的不断变化也使得各级管理人员不断提出新的信息需求。
完善性维护:扩充功能和改善性能而进行的修改。对已有的软件系统增加一些在系统分析和设计阶
段中没有规定的功能与性能特征。