赞
踩
计算机系统的性能一般包括两个方面:一方面是它的可用性,也就是计算机系统能正常工作的时间,其指标可以是能够持续工作的时间长度,也可以是在一段时间内,能正常工作的时间所占的百分比
另一方面是处理能力,又可分为三类指标,第一类指标是吞吐率,第二类指标是响应时间,第三类指标是资源利用率,即在给定的时间区间中,各种部件被使用的时间与整个时间之比
伪彩色图像通过使用彩色查找表来获得图像颜色
真彩色是指图像中的每个像素值都分成RGB三个基色分量,每个基色分量直接决定其基色的强度,这样产生的色彩称为真彩色
伪彩色图像的每个像素值实际上是一个索引值式代码,该代码值作为彩色查找表CLVT中某一项的入口地址
直接色的像素值分为红绿蓝子域,每一个子域索引一份独立的色彩映射可改变色彩映射的内容
矢量是一种既有大小又有方向的量,又称为向量,在计算机中,矢量图可以无限放大不变形
在编译过程中,词法分析,语法分析,语义分析,目标代码生成都是必须的,中间代码生成和代码优化是可以省略的
解释器参与运行控制,程序执行的速度慢
海明校验码公式:2^k >=n+k+1 (n为数据位,k为校验位)
表现媒体指用于通信中使电信号和感觉媒体之间产生转换用的媒体,如输入,输出设备,包括键盘,鼠标,显示器,打印机等等
RISC:精简指令系统计算机,其特点为 1.指令长度固定,指令种类尽量少 2.增加寄存器数目以减少访存次数 3.用硬布线电路实现指令解码,快速完成指令译码。精简指令系统指令的寻址方式少,通常只支持寄存器寻址方式,立即寻址方式和相对寻址方式
两个浮点数对阶的时候要把阶码小的数的尾数右移n位,与阶码大的对齐,小的数要尾数右移,阶码变大
程序设计语言的语义分析分为静态语义和动态语义,其中静态语义分析方法是语法制导翻译,其基本思想是将语言的语义以属性的形式赋予代表此结构的文法符号,而属性的计算以语义规则的形式赋予文法的产生式
词法分析阶段:输入源程序,对构成源代码的字符串进行扫描和分解,识别出一个个的单词,删掉无用的信息
语法分析阶段:语言分析器以单词符号作为输入,分析单词符号是否形式符合语法规则的语法单位,如表达式,赋值,循环等,按语法规则分析检查每单词是否正确的逻辑结构
语义分析阶段:主要检查源程序是否存在语义错误,并收集类型信息,供后面的代码生成阶段使用,如赋值语句的右端和左端的类型是否匹配,表达式的除数是否为零等等
字长是计算机进行运算和数据处理的基本信息单位
高速缓存存储器是存在于主存与cpu之间的一级存储器,由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多,接近于cpu的速度,Cache 通常保存着一份内存储器中部分内容的副本(拷贝),该内容副本是最近曾被cpu使用过的数据和程序代码
按照cpu的指令系统结构,可将计算机分为RISC(精简指令集)和CISC(复杂指令集)
-0---------原码:10000000 补码:在原码(10000000)基础上除符号位(11111111)取反+1(00000000) 移码:是补码的符号位取反(10000000) 反码是补码的取反(11111111)
中央处理器(cpu)包括:算术逻辑运算单元,控制器,通用寄存器组
I/O总线是在内存与外设之间传送数据的通路
《计算机软件保护条例》规定软件著作权人享有的权利,包括发表权,署名权,修改权,复制权,发行权,出租权,信息网络传播权,翻译权。署名权是指软件开发者为表明身份在自己开发的软件原件及其复制上标记姓名的权利。也就是说著作权归公司所有,除署名权以外,大部分权利都归公司所有
Cache与主存的地址映像由硬件自动完成
指令寄存器的位数取决于指令字长
算术表达式的后缀式是(逆波兰式),这样表达式把运算式写在运算对象的后面 例a+b ---> ab+ 可以用栈内存表示
x>>1 表示x/2,x<<1 表示x*2
程序设计语言一般可划分为低级余元和高级语言两大类,低级语言指抽象层次低,较接近计算机硬件而较远离问题域的程序设计语言,高级语言相反
表达式的树形结构是左右节点的数值,报为运算符,运算顺序是从下往上执行
运算器也成为算术逻辑单元,其主要功能是在控制器的控制下完成各种算术运算和逻辑运算。累加寄存器:通用寄存器,为运算器提供一个工作区,用在暂存数据。程序计数器:存储下一条要执行指令的地址。地址寄存器:用来保存当前cpu所访问的内存单元的地址
CISC的特点包括:支持很多种寻址方式,支持的寻址方式通常为5-20种,指令长度不是固定的,变长的指令增加指令译码电路的复杂性,指令可以对主存单元中的数据直接进行处理
I/O系统可以有5中不同的方式工作:
程序控制方式分为无条件查询和程序查询方式
无条件传送方式:I/O端口总是准备好接受主机的输出数据或是总是准备好向主机输入数据,而cpu在需要时,随时直接利用I/O指令访问响应的I/O端口,实现与外设的数据交换,有点是软件,硬件结构简单,缺点是对时序要求高,只适用于简单的I/O控制
程序查询方式:也成为程序轮询方式,该方式采用用户程序直接控制主机与外设设备之间输入/输出操作,cpu必须不停的循环测试I/O设备的状态端口。当发现设备出于准备好的状态时,cpu就可以与I/O设备进行数据存取操作,这种方式下的cpu与I/O设备是串行工作的
程序中断方式:当I/O设备结束(完成,特殊或异常)时,就会向cpu发出中断请求信号,cpu收到信号就可以采取相应措施,当某个进程要启动某个设备时,cpu就向相对的设备控制器发出一条设备I/O启动指令,然后cpu又返回做原来的工作,cpu与I/O设备可以并行工作,与程序查询方式相比,大大提高了cpu的利用率
DMA(直接内存存取)方式:其思想是允许主存储器和I/O设备之间通过 DMA控制器(DMAC)直接进行批量数据交换,除了在数据传输开始和结束时,整个过程无需cpu的干预
通道控制方式:在一定的硬件基础上利用软件手段实现对I/O的控制和传送,更多的免去了cpu的接入,使主机和外设并行工作程度更高
I/O处理机指专门负责输入/输出的处理机,可以有独立的存储器,运算部件和指令控制部件
在计算机的cpu中,通常只设置硬件加法器,只有补码能够将减法转化为加法,故用硬件加法器可以较方便的进行数字加减法,由于正数的移码大于负数的移码,利用这一特点移码被广泛用来表示浮点数阶码的数字编码,这可以用比较阶码的大小来实现真值大小的比较
语义分析阶段不能发现所有的语义错误,因为语义分析分为静态语义和动态语义
链表找你的终点控件需要程序员根据需要申请和释放,因此数据控件应采用堆存储分配策略
cpu需要很强的通用性来处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断处理,这些都使得cpu的内部结构异常复杂,而GPU面对的则是类型高度统一的,相互无依赖的大规模数据和不需要被打断的纯净的计算环境,GPU是一种SIMD(单指令多数据流)架构,而MISD(多指令单数据流)纯粹是一种理论模型,并没有实际意义
正负零编码相同的是补码和移码
吞吐率: n / (总时间+最长时间(n-1))
在中断响应过程中,cpu保护程序计数器的主要目的是为了使cpu在执行完中断服务程序时能回到被中断程序的断点处
直接映像是指在进行映像的工作时,规定各区中的某一信息块只能映像到Cache中的一个固定的信息块中。全相联映像是指主存中的每一个字块可映像到Cache中的任何一个字块位置上。组相联映像方式是直接映像和全相联映像的一种折中方案,折中方法将存储空间分为诺干组,各组之间是直接映像,而组内各块之间则是全相联映像进行地址映像时,直接映像方式下冲突概率最高,全相联映像方式下冲突概率最低
相联存储器不属于按寻址方式划分的类存储器。随机存储器,顺序存储器,直接存储器都属于按寻址方式划分的类存储器。相联存储器是一种按存储内容来存储和访问的存储器。固态硬盘存储介质是闪存芯片比机械硬盘功耗低
硬盘调度管理技巧:
先按指定的柱面进行排序,找出举例条件最近的柱面,由近到远排列
再从相同的柱面中按扇区进行从小到大的排列
再从下一个柱面中按扇区进行从小到大排列
依次找出最后的排列
计算平均移臂距离按移动的柱面顺序的差额的总和/总柱面数
虚拟存储器是一个容量非常大的存储器的逻辑模型,不是任何实际的物理存储器,它借助于磁盘等辅助存储器保护大主存容量为更大或更多的程序所使用,虚拟存储器指的是主存-辅存层次。它以透明的方式给用户提供了一个比实际主存空间大得多的程序地址空间,此时的程序的逻辑地址称为虚拟地址,程序的逻辑地址称为虚拟地址空间,物理地址由cpu地址引脚送出,它是用于访问主存的地址,没cpu地址总线的宽度为m位,那么物理地址空间的大小为2m来表示。
浮点数能表示的数的范围由阶码的位数决定,精度由尾数的位数决定。
人在能听到的声音频率范围是:20HZ-20KHZ,低于这个区间的叫次声波,高于这个区间的叫超声波
每个像素的颜色为一个字节-》8位-》每一位16进制,有256种可能,因此有256种颜色
视觉上的颜色可用亮度,色调和饱和度三个特征来描述,亮度是指发光体(反光体)强弱的物理量,色调指的是一幅画中画色彩的总体倾向更大的色彩效果,饱和度是指色彩的鲜艳程度,也称色彩的纯度
死循环错误属于典型的语义错误,但静态的语义可被编译器发现,到程序真正陷入死循环说明编译器并未发现,所有属于动态语义错误
浮点数表示的数值范围:
最小负数:-1*2^(2^(R-1)-1)
最大正数:(1-2^(m+1))*(2^(2^(R-1)-1))
改变数字截波频率可以改变乐音的音调,改变它的幅度可以改变乐音的音高
乔姆斯基将文法分为4种类型,上下文有关文法,上下文无关文法,正规文法,短语结构文法,由于程序设计语言的语法基本上都是上文无关文法,因此应用十分广泛。
机器字长为n,最高位是符号位,其定点整数的最大值为(2^(n-1)-1)
表示媒体是为了传输感觉媒体而人为研究出的媒体,如语言编码,电报码,条形码。
编译程序对高级语言源程序进行编译的过程中,要不断收集,记录使用源程序中一些相关符号的类型和特征等信息,并将其存入符号表中。
Flynn分类法基于信息流特征将计算机分成4类:指令流和数据流
SISD:单指令流单数据流--->早期传统计算机单个CPU
SIMD:单指令流多数据流--->理论意义 GPU
MISD:多指令流单数据流--->冗余多,用于容错系统
MIMD:多指令流多数据流--->多处理器计算机,Sun公司企业级服务器
中间代码是源程序的一种内部表示,或称中间语言,中间代码的作用是可使用编译程序的结构在逻辑上更为简单明确,使用中间代码可提高编译程序的可移植性,城建的有逆波兰记号,四元式,三元式和树,中间代码不可以用栈和队列表示。
C语言中,栈区存储形参和局部变量。堆区存储对象,由开发者分配。静态数据区--全局变量和静态变量。文字常量区--常量。代码区--函数体,方法。
根据尼奎斯特取样定理,如果取样速率大于模拟信号最高频率的2倍,则可以用得到样本中恢复原本的模拟信号。
linux中只有一个根目录,用“/”表示
VLIW:超长指令字,一种非常长的指令组合,它把许多条指令连在一起,增加了运算的速度
WAV是声音格式,BMP是图像文件格式,MP3是音频格式,MOV是视频格式
脚本语言主要采用解释方式实现,例如Javascript,php,python
当用户双击一个文件名时,系统通过建立文件关联来决定使用什么程序打开该文件
移进规约分析法是属于自顶向下(自上而下)的语法分析方法
MPEG-1标准作为其音,视频信息压缩编码方案应用到VCD中
MPEG-2标准中的音,视频压缩编码技术应用到DVD中
MPEG-4主要针对音,视频编码技术
MPEG-7是多媒体内容描述接口标准
MPEG-21是多媒体应用框架标准
JPEG编写为JPG,MPEG编写为MPG
在cpu中获得指令并进行分析是控制单元的任务,也就是控制器的任务
目前的小型和微型计算机系统中普遍采用的字母与字符编码是ASCII码
系统总线分为地址总线,数据总线和控制总线
RAM(静态随机存储器)DRAM(动态随机存储器)RAM和DRAM都是可读写的,但DRAM的内容需要定期刷新
循环链表的主要优点是从表中任一节点出发都能访问到整个链表
词法分析的作用是识别源程序中的记号,将变量按单词分开,去除不需要的信息
将高级语言程序翻译为汇编语言形式的目标程序,该过程称为编译
DVD-RAM和DVD-RW是DVD技术所支持的两种不同的可多次擦除重写的DVD光盘格式
分级存储体系中速度快的存储器,单位价格高,而速度慢的存储器,单位价格低,所以利用分级方式,能得到很好的性价比。
BIOS(基本输入输出的系统)是一个程序,是固化在主板的BIOS的ROM芯片里面的,它相当于硬件底层的一个操作系统,控制和保存着硬件的输入输出工作。
奇校验:如果以二进制中1的个数是奇数为依据,则是奇校验。如果以二进制数据中1的个数为偶数为依据,则是偶校验。如果传输过程中包括校验位在内的奇数个数为发生改变,那么奇校验位将出错表示传输过程有错误发生,但是由于没法确定哪一位错误,所以它不能进行错误校正。奇校验能发现错误,但不能校正错误。
累加寄存器AC:也叫通用寄存器,为ALV提供一个工作区,用来暂存数据
Cache的命中率必须很高,一般要达到90%以上
两符号相同的数相加时,如果运算结果的两个符号位经逻辑异或运算得1,则可断定这两个数相加的结果产生了溢出。
语义分析阶段:主要检查源程序是否存在静态语义错误,并收集类型信息供后面的代码生成阶段使用
最适合进行数字加减运算的数字编码是补码,最适合表示浮点阶码的数字编码是移码
词法分析的主要任务有:识别出源程序中的各个单词符号,并将其转换为内部编码形式,删除无用的空白字符,回车字符以及其他非实质性字符,删除注释
计算机系统是一个硬件和软件综合体,位于硬联逻辑层上面的微程序是用微指令编写的,微程序一般由硬件执行。
DMA控制方式是在主存与外设之间直接建立数据通路进行数据的交换处理
若机器字长为8位,则可表示出十进制整数-128的编码是补码
CRC表示循环冗余检验码,它是采用模2除法进行校验计算的
海明码的每个数据位由确定位置关系的校验位来校验
文件的全文件名应包含盘符及从根目录开始路径名,文件的相对路径是从当前工作目录下的路径名,文件的绝对路径名是指目录下的绝对位置,直接到达目标位置,相对路径是指当前文件的父路径不加/,绝对路径是当前文件的完整父路径加/
磁盘容量分为格式化容量和非格式化容量,非格式化:面数 * (磁道数/面) * 内圆周长 * 最大位密度格式化容量 = 面数 * (磁道数/面) * (扇区数/道) * (字节数/扇区)
循环冗余校验码的计算过程如下:
将信息码1100低位补0,这是需要补3个0(技巧是多项式的最高次方是几就补几个0)-->变成1100000
11000000与1011做模2除法运算(不进位加法运算),所得余数为三位校验位即010,因此CRC的编码为1100010
在编译方式下产生源程序的目标程序,在解释方式下不产生
浮点数的精度取决于尾数的位数,范围取决于阶码的位数
串行系统的可靠性R=R1 * R2 * R3 * ...... * Rn,并联系统的可靠性:R=1-(1-R1) * (1-R2) * ...... *(1-Rn)
若进行的逻辑地址为2D16H,该地址经过变换后,其物理地址应为4D16H
立即寻址是一种特殊的寻址方式,指令中在操作码字段后面的部分不是通常意义上的操作数地址,而是操作数本身,也就是说数据就包含在指令中,只要取出指令,也就取出了可以立即使用的操作数,在直接寻址中,指令中地址码字段给出的地址A就是操作数的有效地址,即形式的地址等于有效地址,间接寻址意味着指令中给出的地址A不是操作数的地址,而是存放操作数地址的主存单元的地址,简称操作数地址的地址寄存器寻址指令的地址码部分给出了某一个通用寄存器的编号,这个指定的寄存器中存放着操作数。
立即寻址: 数据
直接寻址: 地址 --- >数据
间接寻址: 地址A ---> 地址B ---> 数据
在多线程运行环境下,每个线程自己独有资源少,只有:程序计数器,寄存器和栈,其它的资源均是共享进程的,所以也只有这些独有资源是不共享的
cpu在执行指令的时候,会根据时序部件发出的时钟信号去进行相应的操作,在取指令阶段读到的是指令,在分析和执行指令阶段去取需要的数据
pc(程序计数器)是用于存放下一条指令所在单元的地址,当执行一条指令时,处理器首先需要从pc中取出指令在内存的地址,通过地址总线寻址获取
由硬件自动完成Cache与主存之间的地址映射
实时操作系统主要用于有实时要求的进程控制等领域,实时系统对于来自外部的事件必须在被控对象规定的事件内做出及时响应并对其进行处理
操作系统的PV操作:
S信号量----》P(S)过程中是减一的操作
S信号量----》V(S)过程中是加一的操作
在运算器中,累加寄存器是专门存放算术或逻辑运算的一个操作数和运算结果的寄存器,能进行加减,读出,移位,循环移位和求补等操作,是运算器的主要部分
计算机执行一条指令分为取指令,分析和执行指令3步,按顺序方式则将时间累加,同步执行则按时长最多的方式执行
操作系统有两个重要作用:
通过资源管理提高计算机系统的效率,操作系统是计算机系统的资源管理者,它含有对系统软/硬件资源实施管理的一组程序
改善人机界面,向用户提供友好的工作环境,明白操作系统的作用,就不难选出结果
设计系统时不需要考虑的问题是语言编译器的设计实现
信号量的值小于0,表示没有可用资源,其绝对值表示阻塞队列中等待该资源的进程数
三总线结构的计算机总线系统由数据总线,地址总线和控制总线
属于cpu中算术逻辑单元的部件是在加法器
单缓冲区:执行操作单一,从磁盘读取到缓冲区需要时间,从缓冲区到用户区也需要时间,但如果是双缓冲区,从磁盘读取到缓冲区需要时间,但从缓冲区到用户区就可以并行操作了。
计算机中cpu的中断响应时间指的是从发出中断请求到开始进入中断处理程序
以下关于指令流水性能度量的描述中:
最大吞吐率取决于流水线中最慢一段所需的时间
如果流水线出现断流,加速比会明显下降
要使加速比和效率最大化应该对流水线各级采用相同的运行时间
流水线采用异步控制不会明显提高其性能
以下关于总线的叙述中:
并行总线适合近距离高速数据传输
串行总线适合长距离数据传输
单总线结构在一个总线上不适应不同种类的设备设计简单且性能很高
专用总线在设计上可以与连接设备实现最佳匹配
主存主要采用动态随机存储器DRAM,Cache采用静态随机存储器SRAM,EEPRAM是电擦除可编程的只读存储器
中断方式和DMA方式控制技术,可以使cpu与外设并行工作
进程控制块PCB的组织方式:
线性表方式:不论进程的状态如何,将所有的PCB连续的存放在内存的系统区,这种方式适用于系统中进程数目不多的情况
索引方式:该方式是线性表达式的改进,系统按照进程的状态分别建立就绪索引表,阻塞索引表
链接表方式:系统按照进程的状态的PCB组成队列,从而形成就绪队列,阻塞队列,运行队列等
由I/O设备提出的中断请求是可屏蔽中断,电源掉电是不可屏蔽中断
总线复用顾名思义就是一条总线实现多种功能,常见的总线复用方式有总线分时复用,它是指在不同时段利用总线上同一个信号线传送不同信号,例如,地址总线和数据总线共用一组信号线,采用这种方式的目的是减少总线数量,提高总线的利用率
计算机系统中有多种实现数据输入和输出的控制方式,其中占用cpu时间最多的是程序查询方式,最少的是DMA方式
有关评估系统效率质量特性:响应时间长,系统效率越低,交易执行吞吐量不是由响应时间决定的,如果系统的访问量很小,响应时间再快吞吐量也不会大,系统访问量很大,但是处理能力有限,交易执行吞吐量也不会大
冗余技术又称储备技术,它是利用系统的并联模型来提高系统可靠性的一种手段,冗余附加包括:独立设计的相同功能冗余备份程序的存储及调用,实现纠错检测及恢复的程序,为实现容错软件所需的固化程序
为了提高I/O能力和cpu效率,计算机系统引进了中断方式,程序中断是指计算机执行程序的过程中,出现某些急需处理的异常请和特殊情况,cpu暂时中止现行程序(保护现场),而转去对随机发生的更紧迫的事件进行处理,在处理完毕后,cpu将自动返回原来的程序急需执行(恢复现场)
流水线吞吐率是指令执行周期的例数,即1/△t,而指令执行周期是最长流水段的操作时间
若系统在将目录文件修改的结果写回磁盘时发生崩溃,则对系统的影响相对较大
I/O设备管理软件一般分为4个层次:用户进程--->与设备无关的系统软件--->设备驱动程序-->中断处理程序
cpu是在一个总线周期结束时响应DMA请求的
地址总线宽度决定了cpu可以访问的物理地址空间,简单的说就是cpu到底能够使用多大容量的内存
cpu字长指cpu单位时间内(同一时间)能一次处理的二进制的位数
数据总线负责计算机数据在各组或部分之间的传送,数据总线宽度是指在芯片内部数据传送的宽度,而数据总线宽度则决定了cpu与二级缓存,内存及输入/输出设备之间一次数据传输的信息量。
cpu中的程序计数器的值可自动加1,以便于实现程序指令的顺序执行,计算机中,执行一条指令所需要的时间称为指令周期,完成一项基本操作,所需要的时间称为机器周期,时钟脉冲的重复时间称为时钟周期,因此,指令周期大于时钟周期。
Cache是介于cpu与内存之间的一种高速缓存,这种存储器速度比内存快了很多倍,利用到局部性原理,只需要少量的Cache,便能使整个机器访问内存数据得到极大的提升,所以Cache是一种应用非常普遍的技术,Cache在实际应用中,可以分多级,如1级缓存,2级缓存,1级缓存往往位于cpu中,其容量比在主板上的2级缓存小,但速度比2级缓存快,影响缓存命中率的因素包括高速存储器的容量。
存储单元组的大小,组数多少,地址联想比较方法,替换算法,写操作处理方法和程序特性等,这些因素相互影响,没有关键影响因素。
总线是一个大家都能使用的数据传输通道,大家都可以使用这个通道,但发送数据时,是采用的分时机制,而接收数据时可以同时接收,也就是说,同一个数据,可以并行的被多个客户收取,如果该数据不是传给自己的,数据包将被遗弃。
计算机执行程序时,在一个指令周期的过程中,为了能够从内存中读指令操作码,首先是将程序计数器pc的内容送到地址总线上。
告诉缓存对于程序员磊说是透明的
在操作系统文件管理中,通常采用文件目录来组织和管理外存中的信息,cpu在执行指令的过程中,会自动修改程序计数器的内容,以使其保存的总是将要执行的下一条指令的地址
流水线技术是指在程序执行时,多条指令重置进行操作的一种任务分解技术,把一个任务分解为若干顺序执行的子任务,不同的子任务由不同的执行机构来负责执行,而这些执行机构可以同时并行工作。
CISC系统中的指令可以对主存单元中的数据直接进行处理,典型的CISC通常都有指令能够直接对主存单元中的数据进行处理,其执行速度较慢
为优化系统性能,有时需要对系统进行调整,对于数据库系统,性能调整主要包括cpu/内存使用情况,优化数据库设计,优化数据库管理以及进程/进程状态,硬盘剩余空间,日志文件大小等,对于应用系统,性能调整主要包括应用系统的可用性,响应时间,并发用户数以及特定应用的系统资源占用等。
大多数文件是顺序文件,顺序文件的记录定长,记录中的数据项的类型长度与次序固定,直接文件又称哈希文件,记录以它们在直接访问存储设备上的物理地址直接(随机地)访问,直接文件常用于需要高速访问文件而且每次仅访问一条记录的应用中
在Unix操作系统中,把输入/输出设备看作是特殊文件,在Unix系统中包括两类设备,块设备和字符设备,设备特殊问价有一个索引节点,在文件系统目录中占有一个节点。但其索引节点上的文件类型与其他文件不同,是“块”或者是“字符”特殊文件,文件系统与设备驱动程序的接口是通过设备开关表,硬件与驱动程序之间的接口,控制寄存器,I/0指令,一旦出现设备中断,根据中断矢量转去执行相应的中断处理程序,完成所要求的I/0程序,这样,可以通过文件系统与设备接口,对设备有一个文件名,可以向访问文件那样操作。
瀑布模型突出的缺点是不适应用户需求的变动,模型工作并不和软件结构,运行平台,程序语言有很大的关系
内聚类型主要有一下几种:
偶然(巧合)内聚:完成一组没有关系或松散关系的任务
逻辑内聚:完成逻辑上相关的一组任务
瞬时内聚:所包含的任务必须在同一时间间隔内执行
过程内聚:处理元素相关,而且必须按待定的次序执行
通信内聚:所有处理元素集中在一个数据结构的区域上
顺序内聚:处理元素相同,而且必须顺序执行
功能内聚:完成一个单一功能,各个部分协同工作,缺一不可
主动攻击包括拒绝服务攻击,分布式拒绝服务,信息篡改,资源使用,欺骗,伪装,重放等攻击方法,流量分析不属于主动攻击,属于被动攻击
防火墙不具备查毒的功能
主机路由的子网掩码是255.255.255.255
层次化网络设计中各个层次的主要功能包括:
接入层:用户接入,计费管理,MAC地址认真呢过,收集用户信息
汇聚层:网络访问朱略控制,数据包处理,过滤,寻址
核心层:高速数据交换,常用冗余机制
IDEA算法和RC4算法都是对称加密算法,只能用来进行数据加密,MD5算法是消息摘要算法,只能用来生成消息摘要无法进行数据签名,RSA算法是典型的非对称加密算法,主要具有数字签名和验签的功能,数字签名是信息的发送者才能产生的别人无法伪造的一段数字串,这个数字串同时也是对信息的发送者发送信息真实性的一个有效证明们不能验证接收者的合法性
ARP和ICMP的网络层协议,X.25是标准的接口协议,只有SNMP是应用层协议SNMP协议的报文是封装在UDP协议中传送
某公司内部使用wb.xyz.com.cn作为访问服务器的地址,其中wb是主机名
木马程序是指通过特定的程序来控制另一台计算机,木马程序的客户端运行在攻击者的机器上,Sniffer中文可以翻译为嗅探器,是一种基于被动侦听原理的网络分析方式,可以监听网络的状态,数据流动情况以及网络上传输的信息
使用www.abc.com和abc.com打开的不是同一页面,在地址栏中输入www.abc.com默认使用http协议,其中www是主机名,abc.com是域名
UDP与TCP的主要区别在于UDP不是提供可靠的数据传输,事实上,该协议不能保证数据准确无误的到达目的地,UDP在许多方面有效,在数据传输过程中延迟小,数据传输效率高,当某个程序的目标是尽快的传输可能多的信息时,可使用UDP
数字签名采用私钥进行签名加密,公钥进行验证解密
155.32.80.192/26表示32位长度的IP地址中,前26位是网络前缀,后6位是主机号,因此包含的主机地址个数为2的6次方-2=62个。主机地址范围为193-254
S/MIME可提供安全电子邮件服务:
OutLook Express有以下一些优点:可以脱机处理邮件,有效利用联机时间,降低了上网费用,可以管理多个邮件账号,在同一个端口中使用多个邮件账号,可以使用通讯等存储和检索电子邮件地址,在邮件中添加个人签名或信纸,发送和接收安全邮件
使用web方式接收发电子邮件时:
无需设置简单邮件传输协议
必须社会自账号密码登录
邮件可以插入多个附件
未发送可以保存到草稿箱
NetStat命令的连接状态包括:
LISTEN:侦听来自远方的TCP端口的连接请求
SYN-SENT:在发送连接请求后等待匹配的连接请求
SYN-RECEIVED:在收到和发送一个连接请求后等待对方对连接请求的确认
ESTABLISHED:代表一个打开的连接
FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2:从远程TCP等待连接中断请求
CLOSE-WAIT:等待从本地用户发来的连接中断请求
CLOSING:等待远程TCP对连接中断的确认
LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSE:没有任何连接状态
七层网络结构的详细结果:
层次 | 名称 | 主要功能 | 主要设备及协议 |
---|---|---|---|
1 | 物理层 | 二进制传输 | 中继器,集线器 |
2 | 数据链路层 | 传送以帧为单位的信息 | 网桥,交换机,网卡,PPTP,LITP,SLIP,PPP |
3 | 网络层 | 分组传输和路由选择 | 三层交换机,路由器,ARP,RARP,IP,ICMP,IGMP |
4 | 传输层 | 端到端的连接 | TCP,UDP |
5 | 会话层 | 建立,管理和终止会话 | POP3,FTP,HTTP,TeInet,SMTP,DHCP,TFTP,SNMP,DNS |
6 | 表示层 | 数据的格式与表达,加密,压缩 | POP3,FTP,HTTP,TeInet,SMTP,DHCP,TFTP,SNMP,DNS |
7 | 应用层 | 实现具体的应用功能 | POP3,FTP,HTTP,TeInet,SMTP,DHCP,TFTP,SNMP,DNS |
POP3全名为“post office protocol - version3”,即“邮局协议版本3”是TCP/IP协议族中的一员,由RFC1939定义,本协议主要用于支持使用客户端远程管理在服务器上的电子邮件,提供了SSL加密的POP3协议被称为POP3,POP3协议特性:
POP3协议默认端口为:110
POP3协议默认传输协议为:TCP
POP3协议适用的框架结构:C/S
POP3协议的访问模式为:离线访问
TCP使用的流量控制协议是可变大小的滑动窗口协议
在网络设计和实施过程中要采取多种安全措施,其中漏洞发现与补丁管理是针对系统安全需求的措施
ARP和ICMP是网路层协议,X.25是标准的接口协议,只有SNMP是应用层协议,SNMP协议的报文是封装在UDP协议中传送
对于多种不同的路由协议到一个目的地的路由信息,路由器首先根据管理距离决定相信哪一个协议
防火墙工作层次越高,实现过程复杂,对数据包的理解力越好,对非法包的判断力越高,但工作效率越低,防火墙工作层次越低,实现过程越简单,其工作效率越高,同时安全性越差
PHP更适合用来进行动态网页处理
由于本地计算机采用动态地址分配,因此选用“自动获得IP地址“,DHCP服务器会为本地计算机动态分配IP地址
使用域名不能访问网络,IP地址可以访问,可能是DNS服务器工作不正常或者DNS服务器设置错误,也可能DNS服务器网络连接中断,但不会因为计算机与DNS服务器不再同一子网而访问不了,只有路由可达DNS都可以正常工作
国际电信联盟三大主流无线接口标准:
W-CDMA
CDMA2000:美国高通
TD-SCDMA:中国独自制定
DMS是为了解决安装防火墙后外部网络不能够访问内部网络服务器的问题,而设立的一个非安全性系统与安全系统之间的缓冲区,这个缓冲区位于企业内部网络与外部网络之间的小网络区域内,含web服务器,FTP服务器和论坛
拒绝服务攻击的目的是使计算机或者网络无法提供正常的服务,拒绝服务器攻击是不断向计算机发起请求来实现的,DDOS是一种拒绝服务攻击形式,拒绝服务攻击不会造成用户密码的泄露,蠕虫病毒包括:熊猫烧香,红色代码,爱虫病毒,冰河是木马病毒
ICMP是TCP/IP协议族的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误,交换受限控制和状态信息和TCP,UDP,IGMP等协议一样,ICMP协议使用IP数据报传送数据
DHCP客户端可以DHCP服务器获得本机IP地址,DNS服务器的地址,DHCP服务器的地址,默认网关的地址等,但没有web服务器,邮件服务器地址
常用的应用层网络通信协议(FTP,POP3和TeLnet)大多数是不安全的,因为他们在网络上用明文传送用户名,口令和数据,很容易被窃听,假冒,篡改和欺骗
SSH是一种在不安全网络中用于安全远程登录和其他安全网络服务的协议,它提供了对安全远程登录,安全文件传输和安全TCP/IP及X-Window系统通信量进行转发的支持,它可以加密,认证并压缩传输的数据
安全需求可划分为物理线路安全,网络安全,系统安全和应用安全,下面的安全需求中属于系统安全的是漏洞补丁管理,属于应用安全的是数据库安全
VLAN(虚拟局域网)的有点是允许逻辑第划分网段,DHCP协议的功能是自动分配IP地址,FTP使用的传输层协议为TCP协议,HTTPS使用SSL协议对报文进行封装
加密算法中适合对大量的明文消息进行加密传输的是RC5,RSA是非对称加密,由于效率问题,一般不直接用于大量的明文加密,SHA-1与MD5属于信息摘要算法,私钥不能互换,用于加密,其信任基础是建立在CA之上的,所以换的是I1,I2的公钥,公钥用于验证
B/S构架才是系统安装,修改和维护均只在服务器端进行,C/S架构允许合理的划分三层的功能,使之在逻辑上保持相对独立性,允许各层灵活的选用平台和软件,各层可以选择不同的开发语言进行并行开发
若事务T1对数据D1加共享锁,则其他事务只能对D1加共享锁,不能加排他锁,若事务T2,T3对数据D2,D3加排他锁,其他事务不能在对D2,D3加任何锁,总结来说,操作了共享锁,其他用户操作只能加共享锁,操作了排他锁,其他用户任何锁都不能加
本地主机将首先在本地hosts文件中查询该网址对应的IP地址
TCP与UDP是基于IP协议的,SMTP是基于TCP协议的,SNMP是基于UDP协议的,HTTP基于TCP协议的
静态路由是指用户或网络管理员手工配置的路由信息,当网络的拓扑姐欧股链路的状态发生变化时,网络管理员需要手工去修改理由表中相关的静态路由信息,随机路由使用前向代理来收集网络中的有限全局信息即当节点到其源节点的旅行时间,并以此来更新节点的旅行时间表
洪泛路由是一种简单的路由算法,将收到的封包,所有的可能连接路径上递送,直到封包到达为止,动态路由就是自适应路由选择算法,是指路由器能够自动的建立自己的路由表,并且能够根据实际情况的变化适时的进行调整
端口扫描器通过先用远程TCP/IP不同的端口的服务,并记录目标给予的回答,通过这种方法,可以收集到很多关于目标主机的状态信息
FTP协议占用两个标准的端口号:20和21,其中20为数据口,21为控制口,上传文件。
使用ping来检测网络,应先ping127.0.0.1,HTTP给予SSL安全协议,其默认端口是443,HTTP默认端口是80,被动攻击是系统干涉,主动攻击是拒绝服务攻击,会话拦截,修改数据命令。
25端口为SMTP服务器所开放,主要用于发送邮件,110端口是为POP3(邮件协议3)服务开放的
没有外网时,使用本地主机地址测试服务器代码,利用漏洞扫描系统可以获取某FTP服务器中是否存在可写目录的信息,PGP工作在应用层,SSL工作在应用层到传输层之间,IPSEE工作在网络层,DES是一种对称加密算法
ARP即地址解析协议,是工作在网络层的协议,它主要的作用是实现IP地址与MAC地址之间的变换,确定网络的层次结构及各层次结构及各层采用的协议是网络设计中网络体系结构设计
PPP中的安全认证协议是CHAP,它使用三次握手的会话过程传送密文,防火墙功能中不提供漏洞扫描功能
包过滤防火墙技术对应用和用户是透明的,确定是处理速度比较慢
SSH协议可以有效防止远程管理过程中的信息泄露问题,攻击者通过发送一个目的主机已经接收过的报文来达到攻击目的这种攻击方式属于重放攻击。
在Linux中,要更改一个文件的权限设置可使用chmod命令
主域名服务器在接收到域名请求后,首先查询的是本地缓存,在网络安全管理中,加强内防内控可采取的策略有:
控制终端接入数量
终端访问授权,放置合法终端越权访问
加强终端的安全检查与策略管理
加强员工上网行为管理与违规审计
用来实现安全电子邮件的协议是PGP,所谓网络安全漏洞是指网络节点的系统软件或应用软件在逻辑设计上的缺陷
ARP攻击造成网络无法跨网段通信的原因是伪造网关ARP报文使得数据包无法发送到网关
计算机病毒具有隐蔽性,传染性,潜伏性,触发性和破坏性
PPPOE以太网上的点对点协议,netStat是控制台命令,是一个监控TCP/IP网络的非常有用的工具
应用层 | HTTP,FTP,SMTP,TELNET | DNS,RIP,SNMP,DHCP |
---|---|---|
传输层 | TCP,ICMP,OSPF | UDP |
网络层 | IP | IP |
安全哈希算法SHA组要适用于数字签名标准里面定义的数字签名算法,SHA-1会产生一个160位的消息摘要,用于验证数据的完整性
一般客户机和服务器之间属于递归查询,一般服务器之间属于迭代查询
POP3,SMTP,IMAP都属于电子邮件协议,MPLS是多协议标记交换,是一种标记机制的包交换技术
数字签名首先需要生成消息摘要,然后发送方用自己的私钥对报文摘要进行加密,接收方用发送方的公钥验证真伪,生成消息摘要的目的是防止篡改,对摘要进行加密的目的是防止抵赖
操作系统的性能指标是有系统的可靠性,系统的吞吐率,系统响应时间,系统资源利用率,可移植性
4G--->100M 5G--->10G 6G--->1T
三重DES的秘钥长度为112位,DES加密算法的秘钥长度为56位,为了防止电子邮件中的恶意代码,应该用纯文本方式阅读电子邮件
实现VPN的关键技术主要有隧道技术,加解密技术,秘钥管理技术,身份证技术,消息泄露不属于主动攻击,加密机制不能提供的安全服务是访问控制
在TCP协议中,建立连接需要及格过3次握手,终止连接需要4次握手,FTP端口号是20(数据),21(控制),SMTP端口号是25,TeLnet是23,DNS端口号是53
数据库四种透明存储是:
分片透明:指用户不必关心数据是如何分片的,它们对数据的操作在全局关系上进行,即关系如果分片对用户是透明的,因此,当分片改变时,应用程序可以不变,分片透明性是最高层次的透明性
复制透明:用户不用关心数据库在网络中各个节点的复制情况,被复制的数据的更新由系统自动完成
位置透明:指用户不必指定所操作的数据放在何处,即数据分配到哪个或哪些站点存储对用户的透明的
局部映像透明(逻辑透明):是层次最低的透明性,不用关心数据类型
DMBS是数据管理系统,主要用来保证数据库的安全性和完整性,而DBA通过授权功能为不同用户授权,主要的目的是为了保证数据的安全性,为了保证数据中数据的安全可靠和正确有效,系统在进行事务处理时,对数据的插入,删除或修改的全部有关内容先写入日志文件,然后写入数据文件
全码(ALL-KEY)指的是关系模式的所有属性组合构成主键,自然连接会合并字段,笛卡尔积连接不会合并字段
关系规范化在数据库设计的逻辑设计阶段进行
概念模式也称模式:是数据库中全部数据的整体逻辑结构的描述
外模式也称为用户模式或子模式:是用户与数据库系统的接口,是用户永达的那部分数据的描述
内模式也称存储模式,是数据库在物理存储方面的描述,定义所有内部记录类型,索引和文件的组织方式,以及数据控制方面的细节
两级映像:
模式/内模式:映像存在于概念级和内部级之间
外模式/模式映像存在与外模式与概念级之间
聚簇索引也叫簇类索引,是一种对磁盘上实际数据重新组织以按指定的一个或多个的值排序,它改变的是数据库的内模式
如何判断有损连接,还是无损连接,并保持函数依赖
将拆分的表中包含的字段进行建立表格,若该字段在该表中用a描述,否则用b描述
按照各种依赖关系进行将b替换成a
替换完后,只要有一行中全部都是a,则说明是无损连接,保持函数依赖关系
确定系统边界是需要分析阶段进行,关系规范化是逻辑设计阶段进行,包含在任何一个候选关键字中的属性称为主属性,不包含在任何一个候选关键字中的属性称为非主属性
用哈希表存储元素时,需要进行冲突(碰撞)处理,冲突是指关键字不同的元素被映射到相同的存储位置,这里需要通过题目进行计算才能更好的掌握。
Armstrong公理系统:
伪传递律:X->Y,WY-->z,则WX-->Z
增广律:X->Y,则XZ-->YZ
传递律:X->Y,Y->Z,则X->Z
E-R模型是结构化分析过程的工具,用于数据建模,将现实世界中的事物抽象信息世界里面的数据
共享秘钥算法又称对称加密算法,即用同一个秘钥去加密和解密数据,常用的算法包括:DES,3DES,IDEA,AES等
结构化分析包括:数据流图,数据字典,加工逻辑,补充材料,不包括结构图
视图----外模式,基本表----模式,存储文件----内模式,为了保证数据库的完整性,数据库系统必须维护事务的原子性,一致性,隔离性和持久性。
在数据库逻辑设计阶段,若实体中存在的多值属性,那么将E-R图转换为关系模式时,将实体的码分别和每个多值属性独立构成一个关系模式,得到的关系模式属于4NF。
数据库设计分为:
概念设计:用户角度,E-R图
逻辑设计:E-R转换成关系模式
物理设计:物理存储方式,索引等
构成数据模型的三要素是数据结构,数据操作,完整性约束
编译程序中语法分析器接受以单词为单位的输入,并产生有关信息供以后各阶段使用,算符优先法,LR分析法和递归下降法是几种常见的语法分析技术,LR分析法主要有SLR(1),LR(0),LR(1)和LALR(1)等四种,其中LR(1)的分析能力最强,LR(0)的分析能力最弱。
二分查找法的原则是:首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功,否则利用中间位置记录将表分成前,后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步找后一子表。
个数为奇数:a1,a2,a3,a4,a5,则先比较a3
个数为偶数:a1,a2,a3,a4,a5,a6,则先分割为两半,比较前一半的a3
算术表达式采用后缀式表示时不需要使用括号,使用栈就可以方便的进行求值,例如a-b(c+d)的后缀式为abcd+-,在栈中,先将数字压入栈中,当遇到运算符在将相关数字弹出,进行计算,将计算结果压入栈中,反复操作,最终得出结果。
图的概念:
无向图及邻接矩阵:对称的,和谁有连接线,则表示为1,没有则表示为0
有向图及邻接矩阵:不对称的,指出为1,指入忽略不计
带权无向图及邻接矩阵:对称的,自身为0,有线的为权值,无线则为无穷
带权有向图及邻接矩阵:不对称,自身为0,指出为权值,无线则无穷,指入不算
各种排序的时间复杂度和空间复杂度以及稳定性:
类别 | 排序方法 | 时间复杂度 | 时间复杂度 | 空间复杂度 | 稳定性 |
---|---|---|---|---|---|
平均情况 | 最坏情况 | 辅助存储 | |||
插入排序 | 直接插入 | O(n^2) | O(n^2) | O(1) | 稳定 |
插入排序 | 希尔排序 | O(n^1.25) | O(n^1.25) | O(1) | 不稳定 |
选择排序 | 直接选择 | O(n^2) | O(n^2) | O(1) | 不稳定 |
选择排序 | 堆排序 | O(nlog2n) | O(nlog2n) | O(1) | 不稳定 |
交换排序 | 冒泡排序 | O(n^2) | O(n^2) | O(1) | 稳定 |
交换排序 | 快速(简单)排序 | O(nlog2n) | O(n^2) | O(log2n) | 不稳定 |
归并排序 | 归并排序 | O(nlog2n) | O(nlog2n) | O(n) | 稳定 |
基数排序 | 基数排序 | O(d(r+n)) | O(d(r+n)) | O(r+n) | 稳定 |
树和二叉树的知识:
节点的度是指结点所拥有子树的棵树
结点的层次指的是结点处于树中的位置,根结点为1
树的高度或深度是指结点的最大层次数
边指的是连结两个结点的连线
路径的长度是指从结点A到结点B一共路过多少边
二叉树的度最多只能为2:
若根结点的层次为1,则二叉树第i层最多有2^(i-1)个结点
在高度为h的二叉树中,最多有2^h-1个结点
设一棵二叉树的叶子结点数为n0,度为2的结点个数为n2,则n0=n2+1
一棵高度为h的满二叉树,具有2^h-1个结点,满二叉树是完全二叉树,全完二叉树不一定是满二叉树,完全二叉树的第1-(h-1)层是满二叉树,第h层不满
一棵具有n个结点的完全二叉树,其高度h=[log2n]+1
二叉树的遍历方式为:
先根次序:DLR---》先访问根结点,再访问左孩子,最后是右孩子
中根次序:LDR---》先访问左孩子,再访问根结点,最后是右孩子
后根次序:LRD---》先访问左孩子,再访问右孩子,最后是根结点
哈弗曼编码是数据压缩技术中的一种无损压缩方法,数据压缩技术广泛应用于数据存储和数据通信等领域
完全图是指图的边数达到最大值,可就是任何一个结点都与其他所有接地那相联,无向完全图Kn的变数为n*(n-1)/2,有向完全图Kn的边数为n(n-1),带权图是指图中的边具有权值,顶点就是指结点,顶点的度是指与其他顶点联接的边数,度为0的顶点称为孤立点,度为1的顶点称为悬挂点,有向图中,顶点的终点的边数称为入度,顶点的起点的边数称为出度,路径长度指该路径上的边数,对于带权图,路径长度指该路径上各条边的权值之和
简单路径是指路径上各顶点互不重复,回路是指起点和终点相同且长度大于1的简单回路,回路也称为环,在无向图中,若从顶点Vi到Vj有路径,则称Vi和Vj是连通的,图中任何两个顶点之间都存在一条从Vi到Vj的路径,也存在一条Vi到Vj的路径,则称为该图是强连通图
插入排序:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列的记录“基本有序”时,再对全体记录进行依次直接插入排序
计数排序:是一个非基于比较的排序算法,它的优势在与对一定范围内的整数排序时,它的复杂度为O(n+k)(其中k是整数的范围)快于任何比较排序算法
若对线性表的最常用操作是访问任意指定序号的元素,并在表尾加入和删除元素,则适宜采用顺序表存储
二分查找又称折半查找,顺序存储,关键码有序排列
分治法:
分治法采用分而治之,逐个解决的策略
分治法将一个难以直接解决的大问题分解成若干规模较小的子问题,各子问题互相独立且与原问题相同:分别求解这些子问题,再将子问题的解合并为一个规模较大问题的解,从而自底向上的逐步求得原问题的解
深度优先搜索遍历二叉树,树和图以及折半查找,快速排序都是采用分支策略的算法
动态规划:与分治法相似,动态规划算法也是一个大问题分解为若干较小的子问题,通过求解子问题而得到原问题的解,如果所分解的子问题不是互相独立的,采用分支求解时,有些子问题被重复计算多次,为了避免重复计算,动态规划采用备忘录做法,将前一步已获得子问题的解保存到缓冲区,使得下一步可直接获得相同子问题的解,通常使用数组作为缓冲区(通常是自顶向上的方式求解)
贪心算法:给定一个问题解的约束标间和表示最优结果的目标函数,满足约束条件的解称为可用解,使给定目标达到最大(或最小)值的可用解称为最优解,最终目标求全局最优解(自上而下的方式)。Huffman,Prim,Kruskal,Dijkstra,Floyd算法都是采用贪心算法
回溯法:回溯法在问题的解空间中,以深度优先策略搜索满足约束条件的一个解式所有解,二叉树,树和图的深度优先搜索遍历算法采用的是回溯法,剪枝方式解决问题
Prim算法的时间复杂度为O(n^2),与图中边数无关,该算法适合与稠密图,Kruskal算法的时间复杂度只和边有关,为O(elog2e),由Kruskal算法只与边有关,因此适合求稀疏图的最小生成树
对于线性表,想杜宇顺序存储,采用链表存储的缺点是数据元素之间的关系需要占用存储空间,导致存储密度不高,但优点是插入和删除单个元素的时间复杂度为O(1)
某个二叉查找树(二叉排序树)中进行查找时,效率最差的情形是该二叉查找树是单枝树,单枝树极度不平衡,查找的平均时间复杂度为O(n)
只有直接插入排序保证两个相同元素在排序前后的相对位置不变,递归下降分析方法是一种自上而下的语法分析方法,遗传算法采用模拟生物进化的三个基本过程“繁殖(选择)”>“交叉(重组)”>"变异(突变)"
优先队列通常采用堆数据结构实现,使用队列对图进行广度优先遍历,非平凡子串需要连续的
对于基于有序数组采用插入排序效率是最高的,时间复杂度为O(n),快速排序适用于无序数组,对于有序数组来说时间复杂度为O(n^2),属于最坏的情况。
哈弗曼树中权值最小的两个节点互为兄弟节点,按照插入的顺序,一个个插入,后者比前者大放右边,小的放左边,实现二分查找(折半查找)时,要求查找表顺序存储,关键码有序排列,队列的特点是先进先出,若用循环单链表表示队列,则入队列和出队列操作都需要遍历链表。
图的邻接矩阵是指用一个矩阵来表示图中顶点之间的关系,当采用深度优先进行遍历的时候,查找所有邻接点所需要的时间O(n^2)
栈的特点是后进先出,若单链表作为栈的存储结构,并用头指针作为栈顶指针,则入栈和出栈操作都不需要遍历链表,递归函数的调用和返回必须采用栈结构,栈的应用:表达式求值,括号匹配递归,队列的应用:打印队列
图的深度优先遍历即纵向优先遍历,类似于二叉树的前序遍历,优先队列通常采用堆数据结构实现,向优先队列中插入一个元素的时间,复杂度为O(logn)
无向图中一个顶点的度是指与该顶点相邻的顶点数,广度优先搜索图类似于对二叉树进行层次遍历,需要借助队列实现,全局遍历存静态链表,局部变量存栈结构,为实现快速排序算法,待排序到适合采用顺序存储
散列存储结构的特点是数据机构中元素的存储地址与其关键字之间存在某种映射关系,采用的散列函数有除余法,基数转换法,平方取中法,折叠法,移位法和随机数法等。
在完全二叉树中,任意一个节点的左右子树的高度之差的绝对值不超过1
任何一棵二叉树的叶结点在前序,中序,后序序列中的相对次序不发生改变
两个栈可以模拟一个队列的操作
单链表存储结构特征:
表中结点所有占用存储空间的地址不必是连续的
在表中任意位置进行插入和删除操作都不用移动元素
所需空间与结点个数成正比
在平衡二叉树上进行查找时,其时间复杂度为log2n
原型法适合需求不清晰且多变的情况,结构化开发方法适用于系统规模不太大且不太复杂,需求变化也不太大的情况
Jackson是一种面向数据结构的方法,以数据结构为驱动,适合于小规模的项目
模块结构图中的模块类型如下:
传入模块:从下属模块取得数据,经过某些处理,再将其结果传给上级模块,由下而上---》传入
传出模块:从上级模块取得数据,经过某些处理,再将其结果传给下属,由上而下---》传出
变换模块:也叫加工模块,它从上级模块取得数据,进行特定的加工处理,转换成其他形式,再传回上级模块,它加工的数据流称为变换数据流
协流模块:对所有哦下属模块进行协调和管理的模块,在系统的输入输出部分或数据加工部分可以找到这样的模块,在一个好的模块结构图中,协调模块应在较高层出现
冗余技术又称储备技术,它是利用系统的并联模型来提高系统可靠性的一种手段,冗余附加件包括:独立设计的相同功能冗余备份程序的存储及调用实现纠错检测及恢复的程序,为实现容错软件所需的固化程序。
增量模型融合了瀑布模型的基本乘法(重要应用)和原型实现的迭代特征,其作用可以快速构造核心产品
可靠性:成熟性,容错性,易恢复性,兼容性
在软件开发过程中,系统测试阶段的测试目标来自于需求分析阶段,系统测试是针对珍格格产品系统进行的测试,目的是验证系统是否满足了需求规格的地宫一,找出与需求规格不符与之矛盾的地方,从而提出更加完善的方案。
面向结构化的设计阶段:概要设计和详细设计,概要设计在需求分析基础之上,划分模块,层次,把各功能转换成子系统,详细设计在在概要设计之上,精确完善各个子系统
CMM是指软件过程能力成熟度模型,CMMI的任务是将已有CMM模型结合在一起,使之构造成为“集成模型”采用更成熟的CMM模型,一般来说可以提高最终产品的质量,CMM模型分为5个等级:
初始级
可重复级
已定义级
定量管理级
优化级
极限编程(XP):敏捷开发的典型之一,轻量级,高效,低风险,柔性,可预测科学的软件开发方法
水晶法:认为每一种不同的项目都需要一套不同的策略,约定和方法论
并列争求法:用迭代的方法,按优先级来实现产品
自适应软件开发:核心是三个非线性的,重迭的开发阶
软件配置管理的内容包括:版本控制,变更控制,过程支持,不包括质量控制
沟通渠道:N(N-1)/2,例如团队为8人,则需要28人进行沟通和参与
极限编程主要解决代码质量低的问题,编码速度不能改变
采用McCabe度量法计算程序的环路复杂性为语句与判断条件都作为节点N,线作为边M,V(G)=M-N+2
瀑布模型:需求提前确定,才能执行,不适合大型软件项目,原型模型:需求对系统具体功能清楚
易使用性:易理解性,易学性,易操作性,吸引性
画出模型结构图,不需要考虑每个子系统采用何种数据结构和核心算法,决策树和决策表适用于表示加工中涉及多个逻辑条件的情况
逆向工程是属于软件维护
COCOMOII方法以规模作为成本的主要因素,考虑多个成本驱动程序因子,该方法包括三个阶段性模型,即应用组装模型,早期涉及阶段和体系结构阶段模型。
可移植性:适应性,易安装性,共享性,易替换性
路径覆盖:判断分支*判断个数=测试用例总数
计算机系统的可靠性可以用MTBF/(1+MTBF)来度量,其中MTBF为平均失效间隔时间
软件测试的目的不是证明软件的正确性,基本COCOMO是静态单变量模型,中级COCOMO是详细模型
Gantt图可以清晰的表达每个任务的开始,结束时间,可以表达任务之间的并行关系,不能确定任务之间的依赖关系,不能确定影响进度的关键任务
项目复杂性,规模和结构的不确定性属于项目风险
统一过程(UP):
UP是以用例和风险为驱动,以架构为中心,迭代并且增量的开发过程
UP定义了四个阶段:
起始:生命周期的目标
精化:生命周期的架构
构建:初始运作
移交:产品发布
每次迭代都包含计划,分析,设计,构造,集成,测试以及内部和外部发布
每个迭代有五个核心工作流
文档的叙述:
文档也是软件产品的一部分,没有文档的如那件就不能称为软件
软件文档的编制在软件开发工作中占有突出的地位和相当大的工作量
高质量文档对于发挥软件产品的效益有着重要的意义
完善性:指对软件在功能上的完善,增加功能,适应性:为了适应环境,用户等而增加个功能
事务具有原子性,一致性,隔离性和持久性
提高软件可维护性是在软件设计阶段就应该考虑的事情
数据库的设计过程,按照规范的设计方法,一般分为一下三个阶段:
需求分析:分析用户的需求,包括数据,功能和性能需求
概念结构设计:主要采用E-R模型进行设计,包括画E-R图
逻辑结构设计:通过将E-R图转换成表实现从E-R图模型到关系模型的转换
数据库物理设计:主要是为所设计的数据库选择合适在存储结构和存取路径
数据库的实施:包括编程,测试运行
数据库运行与维护:系统的运行与数据库的日常维护
软件工程的基本要素包括方法,工具和过程,质量
正式技术评审的目标是发现软件中的错误,自底向上的继承测试策略的优先包括不需要写桩程序
接口设计的任务主要是数据流图,描述软件与外部环境之间的交换关系,软件内模块之间的调用关系
在设计软件的模块结构时,能改进设计质量的是
尽量减少高扇出结构
尽量减少高扇入结构
将具有相似功能的模块合并
完善功能模块不能提高设计质量
数据流图描述数据在系统中如何被传送或变换,以及何如对数据流进行变换的功能或子功能,用于对功能建模
需求分析阶段的输出包括:数据流图,实体联系图,数据字典,不包括:软件体系结构图
在利用增量模型进行开发时,如何进行模块的划分往往是准点所在,而不是这种模型的优点
模块设计讲究高内聚,低耦合,而并非越简单越好
仓库风格优点包括:
解决问题的多方法性
具有可更改性和可维护性
有可重用的知识源
支持容错性和健壮性
缺点:测试困难,不能保证有好的求解方案,效率低,开发成本高,缺少对并行机的支持
常见软件:数据库系统,黑板系统,超文本系统,编译器可用多种架构风格实现
风险管理不属于配置管理,管道/过滤器体系结构:
使得软件具有良好的隐蔽性和高内聚,低耦合
简单合成,多合一
支持重用
系统维护和增强系统性能简单
允许一些如吞吐量,死锁等属性的分析
支持并行执行
不能提高性能
需求分析阶段不需要考虑具体的编程,属于实施的过程
抛弃式原型适合于需求不确定,不完整,含糊不清的项目,在对软件系统进行评价时,从系统评价对象触发,用户方所关心的是用户需求和运行质量等
系统方案建议书是系统分析阶段结束后得到的工作产品,单元测试数据是系统测试阶段完成后的工作产品
在进行风险分析时,风险控制的目的是辅助项目组建立处理风险的策略,有效的策略应考虑风险避免,风险监控,风险管理及意外事件计划
软件测试原则:所有的测试都应追溯到用户需求,应尽早并不断的进行测试,测试工作应避免由原开发软件的人或小组来承担(单元测试除外),穷举测试是不可能的,测试需要终止,充分重视测试中的群集现象,严格按照测试计划来进行,避免随意性
根据被测试是否可见分为白盒测试和黑盒测试
黑盒测试一般用来确认软件功能的正确性和可操作性
静态测试主要是对软件的编程格式姐欧股影响等方面进行评估
动态测试是指人工或使用工具运行程序进行检查,分析程序的执行状态和程序的外观表现
软件测试的对象包括:
需求规格说明书
概要设计文档
软件测试报告
软件代码
用户手册
根据软件测试策略和过程,软件测试可以划分为单元测试,集成测试,系统测试,确认测试,验收测试等阶段,其中,系统测试是将经过集成测试的软件作为计算机系统的一部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统一系列严格有效的测试,以发现软件潜在的问题,保证系统的正常运行,安全性测试,可靠性测试都属于系统测试的范畴。
静态测试不实际运行被测软件,主要是对软件的编程格式,结构等方面进行评估,关于系统集成测试:
在完成软件的概要设计后,即开始制定集成测试计划
实施集成测试时需要设计所需驱动和桩
常见的集成测试方法包括自顶向下,自底向上,Big-Bang
桩函数不处理数据
功能性包括以下子特性:适应性,准确性,互用性,依从性,安全性
测试配置管理的基本活动包括配置项标识,配置项控制,配置状态报告以及配置审计
COCOMOII是一种成本估算模型,估算选择有:对象点,功能点和代码行,能力成熟度模型集成(CMMI)是若干过程模型的综合和改进,CL1(已执行的)的共性目标是过程将可标识的输入工作产品转换成可标识的输出工作产品,以实现支持过程域的特定目标
概要设计的内容可以包括系统架构,模块划分,系统接口,数据设计4个方面的主要内容,不包括模块内算法设计
耦合取决于各个模块之间接口的复杂度,调用模块的方式以及通过接口的信息类型,不包括模块提供的功能数
归纳法是指从测试所暴露的问题出发,收集所有正确或不正确的数据,分析它们之间的关系,提出假想的错误原因,用这些数据来证明或反驳,从而查出错误所在
OLAP工具是针对特定问题的联机数据访问与分析,它通过多维的方式时数据进行分析,查询和报表
RSA,RC5都是非对称加密算法,SHA-1,MD5属于信息摘要算法,适合对大量的明文消息进行加密算法传输的是RC5,因为RSA一般不直接用于大量的明文加密
螺旋模型:
是风险驱动的,要求开发人员必须具有丰富的风险评估知识和经验
可以降低过多测试或测试不足带来的风险
包含维护周期,因此维护和开发之间没有本质区别
它适用于大型软件开发,瀑布模型不适用于大型软件开发
PERT图:
可清晰的描述每个任务从何开始,到何结束
可清晰的描述各任务之间的依赖关系
不能描述各任务之间的并行关系
成本估算工具就是一种典型的项目管理工具,一个好的变更控制过程,给项目风险承担者提供正式的建议变更机制,识别出问题--问题分析与变更描述--变更分析与成本计算--变更实现
软件质量保证是软件质量管理的重要组成部分,软件质量保证主要是从软件产品的过程规范性角度来保证软件的品质,其主要活动包括质量审计(软件评审)和过程分析
螺旋模型将瀑布模型和原型模型结合起来,适合大型复杂系统的开发过程,依次经历了计划指定,风险分析,工程实施和客户评估
系统方案建议书是系统分析阶段结束后得到的工作产品
软件过程主要包括:软件描述,软件开发,软件有效性验证和软件进化
模块化设计的原则应该是
尽量考虑高内聚,低耦合
模块的规模适中,不能太大,不能大小
模块的宽度,深度,扇入和扇出适中
测试用例的来源可以是需求规格说明书,源程序,设计说明书,与项目开发计划无关
典型的白盒测试方法包括:
静态测试
代码检查法
静态结构分析法
静态指令度量法
动态测试
涉及路径覆盖的都是动态测试
软件设计要遵循的基本原则:
模块化
抽象
信息屏蔽
在各种不同的软件需求中,功能需求描述了用户使用产品必须要完成的任务,可以用UML建模语言的用例图表示
程序质量评审通常是从开发者的角度进行评审,其内容包括:
功能结构
功能的通用性
模块层次
不包括与硬件的接口
软件复杂性是指理解和处理软件的难易程序,其度量参数包括:
软件规模
软件结构
软件难度
不包括软件类型
组合结构图描述结构化类的内部结构,定时图也称计时图,定时图也是一种交互图,它强调消息跨越不同,对象或参与者的实际时间,而不仅仅知识关系消息的相对顺序,制品图描述计算机中一个系统的物理结构,交互概览图是活动图和顺序图的混合物
项目时间管理中的过程包括:活动定义,活动排序,活动的资源估算,活动历时估算,制定计划和进展控制
动态绑定是指在运行时把过程调用和响应调用所需要执行的代码加以结合:
语句覆盖:指执行的过程覆盖程序的整个语句
条件覆盖:每一个判定语句中的条件都要经过比较
判定/条件覆盖:每一个判定条件都要经过,并且真/假各一次
路径覆盖:经过所有的路径
质量功能部署(QFD),分别是基本需求(常规需求),期望需求和意外需求(兴奋需求),XP(极限编程)其四大价值观包括沟通,简单,反馈和勇气
项目范围管理中,范围定义的输入包括:
项目章程
项目范围管理计划
组织过程资产
批准的变更申请
需求工程活动产生软件运行特征的规约,指明软件和其他系统元素的接口并建立软件必须满足的约束条件
程序流程图和体系结构模型是设计阶段的工作,极限编程(xp)的十二个最佳实践不包括精心设计,项目估算方法由以下三种得到精准的估算结果:
专家判断方法
启发式方法(COCOMO模型)
机器学习方法
在白盒测试中,语句覆盖是最弱的覆盖准则
确认测试包括内部确认测试以及Alpha测试以及Beta测试,一个成功的测试能发现至今发现的错误
黑盒测试看成黑盒子不透明,常见的测试技术:等价类划分,边界值分析错误推测和因果图
业务用例和参与者一起描述组织支持的业务过程,业务对象模型描述业务结构以及结构元素如何完成业务用例
单元测试是对程序模块进行的测试,不属于系统测试的范畴,安全测试,强度测试,性能测试属于系统测试范畴
软件测试的对象是程序,数据和文档
一条Bug记录应包括编号,Bug描述,Bug级别,Bug所属模块发现人
软件测试无法替代手工测试,系统性能不属于单元测试,语句,条件,判定,路径覆盖都属于动态测试,代码审查属于静态覆盖,集成测试关注的都是模块之间的问题,软件的使用和开发者,维护者无关
功能性测试包括:适合性,准确性,互操作性,保密安全性,功能依从性,不包括易用性
测试标准不属于测试文档
巧合内聚会影响模块之间的耦合关系,多重继承会使子类存在二义性的成员
看门狗是嵌入式系统中一种常用的保证系统可靠性的技术,定时器超时会产生中断
软件的特征:
功能性
适合性
准确性
互用性
依从性
安全性
可靠性
成熟性
容错性
易恢复性
易使用性
易理解性
易学性
易操作性
效率
时间特性
资源特性
可维护性
易分析性
易改变性
稳定性
易测试性
可移植性
适应性
易安装性
一致性
易替换性
以下为耦合分类:
无直接耦合:指两个模块之间没有直接的关系,他们分别从属于不同模块的控制与调用,他们之间不传递任何信息,因此,模块之间耦合性最弱,模块独立性最高。
数据耦合:两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递
标记耦合:两个模块之间传递的是数据结构
控制耦合:一个模块调用另一个模块时,传递的是控制变量,被调用模块通过该控制变量的值有选择的执行模块内的某一功能,因此,该调用模块应用具有多个功能,哪个功能起作用受调用模块控制。
外部耦合:模块之间通过软件之外的环境联合(如I/O,格式,通信协议)时称为外部耦合
公共耦合:通过一个公共数据环境相互作用的哪些模块之间的耦合
内容耦合:当一个模块直接使用另一个模块的内部数据,或通过非正常入口转入另一个模块内部时,这种模块之间的耦合称为内容耦合
软件开发模型用于指导软件开发,演化模型是在快速开发一个原型的基础上,逐步演化成最终的软件,螺旋模型综合了瀑布模型和演化模型的优点,并增加了风险分析,喷泉模型描述的是面向对象的开发过程,反映了该开发过程的迭代和无间隙特征。
软件过程质量度量成熟度等级划分:
第一级 初始级(最低级):软件工程管理制度缺乏,过程缺乏定义,混乱无序,成功依靠的是个人的才能和经验,经常由于缺乏管理和计划导致时间,费用超支,管理方式属于反应式,主要用来应付危机,过程不可测,难以重复
第二级 可重复级:基于类似项目中的经验,建立了基本的项目管理制度,采取了一定的措施控制费用和时间,管理人员及时发现问题,采取措施,一定程度上可重复类似项目的软件开发
第三级 已定义级:已将软件过程文档化,标准化,可按需要改进开发过程,采用评审方法保证软件质量,可借助case工具提高质量和效率
第四级 已管理级:针对制定质量,效率目标,并收集,测量相应指标,利用统计工具分析并采取改进措施,对软件过程和产品质量有定量的理解和控制
第五级 优化级(最高级):基于统计质量和过程控制工具,持续改进软件过程质量和效率稳步改进
敏捷开发方法分为:
xp极限编程:高效,低风险,测试先行(先写测试代码,再编写程序)
Cockbumn水晶方法:不同项目,不同策略
SCRUM并列争求法:迭代,30天为一个迭代周期,按照需求优先级实现
FDD功用驱动方法:开发人员分类,分为指挥者(首席程序员),类程序员
开发级源码:虚拟团队,开发成员分布各地
ASD自适应方法:预测--协作--学习
高级程序设计语言中用于描述的一种量度,它表示每单位成本数
数据库的关系规范化是在数据库设计的逻辑设计阶段,围绕核心业务应用计算机和网络技术是企业信息化建设的有数途径
保护期限不受限制的有:署名权,修改权,保护作品完整权
保护期限为作者终身及死后50年的包括:发表权,著作权,使用权和获得报到权,员工在公司完成的软件,软件著作权归公司所有,员工指具备署名权
根据《中华人民共和国商标法》第三十八条:注册商标有效期满,需要继续使用时,应当在期满前六个月内申请续展注册,专利权和著作权到期后无法延长,而商业秘密权无期限限制
不同申请人同日就同样的发明提出专利申请,申请人自行协商确定申请人
两公司同日申请未使用过的商标,而抽签决定,不抽签视为放弃
作品的买卖导致了所有权的转移,但不具有著作权,美术作品原件的展览权由原件所有人享有,展览权随所有权进行转移
两公司申请相同或相似的商标注册时,谁先用,谁才能注册
甲公司接受乙公司的委托开发了一项应用软件,双方没有订立任何书面合同,甲公司享有该软件的著作权
根据我国法律法规的规定必须使用注册商标的是烟草类商品
在美国申请了专利,在中国没有申请,在中国不享有专利权
购买的软件光盘只有该光盘的使用权和所有权
各自拥有各自的软件著作权,著作权在创作作品完成时自动取得软件著作权的保护对象不包括软件开发思想
在美国申请的专利权,仅受美国法律保护,不受其他地方保护
非法进行拷贝,发布或更改软件的人被称为软件盗版者
计算机软件著作权的保护对象是指计算机程序及其文档
软件商标权的权利人是指软件注册商标所有人
著作权是提高对作品,包括文学,艺术,自然科学,社会科学和工程技术领域内具有独创性并能以某种有形形式赋复制的智力结果
专利权保护的是具有创造性的发明及设计等成功
商业秘密权用来保护商家的秘密,而软件的技术信息及经营信息正属于商业秘密的范畴,因此需要用商业秘密权保护
有可能无限期拥有的知识产权是商标权
《中华人民共和国著作权法》和《计算机软件保护条例》是构成我国保护计算机软件著作权的两个基本法律文件
孙某在书店租到一张节有注册商标的应用软件光盘,擅自复制后在网络进行传播,其行为是侵犯软件著作权行为
在著作权法中,计算机软件著作权保护的对象是计算机程序及其开发文档
两公司享有著作权,乙公司拥有生产与销售权,甲公司合法购买了使用权,各环节都合法,互不侵权
我国专利申请的原则之一是申请再先
员工在退休一年内所开发的,更新的软件仙姑都归公司所有
对于著作权和商标权争议处理时,应该先由行政管理部门裁决,再提起诉讼
在著作权人有生之年和去世后50年,德国是70年,但60年后,我国买出版社拟在我过翻译出版该作品,不需要征得作者继承人的许可,就能发行
我国《著作权法》第二章第二节第十二条规定:改编,翻译,注释和整理已有作品和产生的作品,其著作权由改编,翻译,注释和整理人所有,但行使著作权时不得侵犯原作品的著作权
商业秘密是中国《反不正当竞争法》保护的一项重要内容,它包括技术秘密和经营秘密2项基本内容
《计算机软件保护条例》第六条规定:本条例对软件著作权的保护不延及开发软件所有的思想,处理过程,操作方法或者数学概念等
对计算机软件的法律保护不涉及知识产权法
改变数字载波频率可以改变乐音的音调
解释器参与运行控制,程序执行的速度慢
组合模式将对象足额成树形解雇表示“部分--整体”的层次结构使得客户对单个对象和复合对象的使用具有一致性:
创建型模式:
简单工厂模式(SimpleFactory)
工厂方法模式(FactoryMethod):定义一个创建对象的接口,但由于类决定需要实例化哪一个类工厂方法使得子类实例化的过程推迟
抽象工厂模式(AbstractFactory):提供一个创建一系列相关或相互依赖对象的接口
创建者模式(Builder):将一个复杂类的表示与其构造相分离,使得相同的构建过程能够得出不同的表示
原型模式(Prototype):用原型实例指定创建对象的类型,并且通过拷贝这个原型来创建新的对象
单例模式(Singleton):一个类仅有一个实例,唯一全局访问点
结构型模式:
外观模式(Facade)
适配器模式(Adapter):用于将一个类的接口转换成客户希望的另外一个接口Adapter模式使得原本由于接口不兼容而不能在一起工作的那些类可以一起工作适配器有类结构和对象结构两种模式
代理模式(Proxy)
装饰模式(Decorator)
桥接模式(Bridge)
组合模式(Composite):表示对象的部分-整体层次结构时
享元模式(Flyweight)
行为型模式:
模板方法(TemplateMethod)
观察者模式(Observer)
状态模式(state)
策略模式(strategy)
责任链模式(ChainofResponsibilnty)
命令模式(Command)
访问者模式(Visitor):作用于某对象结构中各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作
调停者模式(中介者模式)(Mediator):使用中介者模式,可以使各个对象的耦合松散,只需要关心和中介者的关系,使多对多的关系变成了一对多的关系,可以降低系统的复杂性,提高可修改扩展性
备忘录模式(Memento)
迭代器模式(Iterator)
解释器模式(Interpreter)
UML状态图中转换:
活动可以在转换时执行也可以在状态内执行
监护条件只有在相应的事件发生时才进行检查
事件触发转换
在系统设计时,需要权衡系统的深度和宽度,尽量降低系统的复杂性,减少实施过程的难度,提高开发和维护的效率
动态绑定是实现多态的基础
MVC:
model(模型)主要负责数据和业务逻辑
view(视图)主要负责呈现,也就是用户界面
controller(控制器)主要负责model和view的交互
系统结构图是软件概要设计阶段的工具,反应系统的功能实现和模块之间的联系与通信,包括各模块之间的层次结构,反映了系统的总体结构
用例图:用例图以图形化的方式描述系统与外部系统及用户的交互,其以图形化的方式描述了谁将使用系统,以及用户期望以什么方式与系统交互,主要用在面向对象需求分析阶段
部署图:部署图描述系统中硬件和软件的物理架构,它描述构成系统架构的软件结构,处理器和设备
喷泉模型属于面向对象的模型
用例之间的关系主要有包含,扩展和泛化三类关系:
包含关系当可以从两个或两个以上的用例中图区公共行为时,应该使用包含关系来表示它们
扩展关系如果一个用例明显混合了两种或两种以上的不同场景,即根据情况可能发生多种分支,则可以将这个用例分为了一个基本用例和一个或多个扩展用例
泛化关系当多个用例共用拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为父用例
风险的优先级通常是根据风险暴露(风险曝光度)决定,风险曝光度越大,风险级别就越高
瀑布模型:结构化方法,开发阶段性,需求明确,文档齐全,风险控制弱
原型模式:迭代方法,分为原先开发与目标软件开发,需求不明确
螺旋模型:迭代方法,瀑布与原型(演化)模型结合体,适用于大型,复杂风险项目
喷泉模型:面向对象,复用好,开发过程无间隙,节省时间
V模型:开发与测试结合
变换模型:适用于形式化开发
智能模型:适用于基于规则的专家系统
快速适应开发:基于构件的开发方法,用户参与,开发或复用构件
RAD:模块化要求高,不适用新技术
RVP/UP:用例驱动,架构为中心,迭代,增量
可重用构建模型:基于构件的开发方法,开发或复用构件
类图:展现了一组对象,接口,协作和它们之间的关系
包图:描述由模型本身分解而成的组织单元,以及它们之间的依赖关系
系统设计的主要内容包括概要设计和详细设计
概要设计又称为系统总体结构设计,它是系统开发过程中红很关键的一步,其主要任务是将系统的功能需求分配给软件模块,确定每个模块的功能和调用关系,形成软件的模块结构图
将系统开发的总任务分解成许多个基本的,具体的任务,为每个具体任务选择适当的技术手段和处理方法的过程称为详细设计
根据任务的不同,详细设计又可分为多种,例如,网络设备设计,代码设计,输入/输出设计,处理流程设计,数据存储设计,用户界面设计,安全性和可靠性设计等
在进行面向对象时,采用设计模式能够复用相似问题的相同解决方案
定时图:强调消息跨越不同对象或参与者的实际时间,而不仅仅只是关心消息的相对顺序
数据流图(DFD)对系统的功能和功能之间的数据流进行建模,其中顶层数据流图描述了系统输入与输出,数据流,加工,数据存储,外部实体4部分构成,数据流图
通信图也叫协作图,描述的是对象和对象的关系,用于表达静态行为和动态行为的概念
在序列图张,调用方法用带实心箭头实线表示,返回纤细用带箭头的虚线表示
对象,类,继承和消息传递是面向对象的4个核心概念,其中对象是封装数据和行为的整体
类之间的主要关系有关联,依赖,泛化,聚合,组合和实现等
关联关系:提供了不同类的对象之间的结构关系,它在一段时间内将多个类的实例连接在一起
依赖关系:两个类中,其中一个发生变化会引起另一个的变化
泛化关系:描述了一般事务与该事务中的特殊种类之间的关系的反关系子类继承父类,而父类则是子类的泛化,可理解为共同部分的提取
聚合关系:表示类之间的整体与部分的关系,汽车和轮胎,轮胎坏了,可以换汽车坏了,轮胎还可以用
组合关系:表示类之间的整体与部分的关系,公司和部分,公司倒闭,部分也随之不存在
实现关系:包含了实现的结构一个或多个类可以实现一个接口,而每个类分别实现接口中的操作
在结构化方法中,过程设计主要包含对数据结构和算法的设计
边界对象表示了系统与参与者之间的接口,该对象从参与者处收集信息,并将之转换为一种被实体对象和控制对象使用的形式
优先队列通常采用堆结构实现,向优先队列中插入一个元素的时间复杂度为O(lgn)
在设计算法时,通常考虑一下原则:首先说设计的算法必须是可读性,其次应有很好的有输入,还必须具有健壮性,最后应考虑所设计的算法具有高效率与低存储量
广度优先搜索图类似与二叉树进行层次遍历,需要借助队列实现
散列存储结构的特点是数据结构中元素的存储地址与其关键字之间存在某种映射关系
常用的散列有除余法,基数转换法,平方取中法,折叠法,移位法和随机数法
平衡二叉树:左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1
直接插入排序算法比较次数最少
无向图中一个顶点的度是指与该顶点相邻的顶点数
利用商业秘密权可以对软件的技术信息,经营信息提供保护冗余技术通常分为4类,其中结构冗余按照工作方法可以分为静态,动态和混合冗余
在系统设计短接,在不同系统中属性名称不同,这种冲突称为命名冲突,软件系统文档可以提高开发效率
软件商标权的权利人是指软件注册商标所有人
公钥体系中,私钥用于解密和签名,公钥用于加密和认证
一个字段包含多个字段含义称为复合属性
T(n)=aT(n/b)+f(n)---->nlogba
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。