软件设计师笔记(一)

293 阅读40分钟

1.软件环境考虑的风险。
Charette概念:关心未来,关心变化,关心技术,关心选择。
不同类型风险:项目风险,技术风险,商业风险(威胁到软件的生存能力)


2.面向对象软件的测试分4个层次。
算法层,类层,模块层,系统层。


3.采样。
采样是指按一定时间间隔采集声音yangben,每秒钟采集多少个声音yangben,通常用采样频率表示
文件的字节数=采样时间(s)×采样频率(Hz)×采样位数(位)×声道数/8
数据传输率(bit/s)=采样频率(Hz)×量化位数(bit)×声道数


4.每个网络。
A类:前面第一位是0,  0000 0000 ~~ 0111 1111 (1~127)。
默认子网掩码:255.0.0.0     所以每个A类最多有的主机是 256*256*256 -2 

B类:前面两位是10    1000 0000 ~~ 1011 1111(128-191)。
默认子网掩码:255.255.0.0   所以每个B类最多有的主机是 256*256 - 2

C类:前面三位是110, 1100 0000 ~~ 1101 1111(192-223)。
默认子网掩码:255.255.255.0 所以每个C类最多有的主机是 256-2

子网掩码的计算:
(1)利用子网数。
如果将B类IP地址168.195.0.0划分成27个子网,其子网掩码计算如下:
①把27化为二进制,结果为11011;
②该二进制为5位数,即N=5;
③将B类地址的子网掩码255.255.0.0的主机地址前5位置1,得到255.255.248.0。
即将B类IP地址168.195.0.0划分成27个子网,其子网掩码为255.255.248.0。

(2)利用主机数。
如果将B类IP地址168.195.0.0划分成若干子网,每个子网内有主机700台,其子网掩码计算如下;
①把700化为二进制,结果为1010111100;
②该二进制为10位数,N=10;
③将该B类地址的子网掩码255.255.0.0的主机地址全部置1,得到255.255.255.255。
然后再从后向前将后10位置0,即11111111.11111111.11111100.00000000,即 255.255.252.0。
这就是欲划分成主机为700台的B类IP地址168.195.0.0的子网掩码。       

由于主机176.68.160.12使用22位作为网络地址,则主机地址用32-2=10位来表示,则在该局域网中最多可以连接的主机数为:2的10次方-2=1024-2=1022,ip:网络地址+主机地址。其中:176.68.160.0为网络地址,176.68.163.255为广播地址。

5.FTP默认的数据端口号是20,传输端口号21。 

TCP/IP网络中,每一个服务均有统一的端口号,对于各种公共服务保留的端口号范围1~1023之间。例如SMTP所用的是TCP端口,端口号是25;POP3所用的TCP端口号是110:DNS所用的是UDP端口,端口号为53;WWW服务使用一个TCP端口,端口号为80;

FTP在客户与服务器的内部建立两条TCP连接:一条是控制连接,端口号为21,另一条是数据连接,端口号为20。用户可以改变服务器上各种服务的保留的端口号,但要注意在需要服务的客户端也要改为同一端口号。

Telnet使用的是TCP协议,缺省情况下使用23端口。

6.知识产权的问题。
"发明专利权" 保护期为20年,实用新型专利权和外观设计专利权的期限为10年,均自专利申请日起计算:
"作品发表权" 保护期为作者终生及其死亡后50年。
"商标权"     保护期限自核准注册之日起10年,但可以根据其所有人的需要无限地续展权利期限,在期限届满前6个月内申请续展注册,每次续展注册的有效期10年,续展注册的次数不限。如果商标权人逾期不办理续展注册,其商标权也将终止。
"商业秘密权" 受法律保护的期限是不确定的,该秘密一旦为公众所知悉,即成为公众可以自由使用的知识。


7.shell 脚本中参数定义。
$0 这个程式的执行名字
$n 这个程式的第n个参数值,n=1..9
$* 这个程式的所有参数,此选项参数可超过9个。
$# 这个程式的参数个数
$$ 这个程式的PID(脚本运行的当前进程ID号)
$! 执行上一个背景指令的PID(后台运行的最后一个进程的进程ID号)
$? 执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)
$- 显示shell使用的当前选项,与set命令功能相同
$@ 跟$*类似,但是可以当作数组用


8.广义表
广义表的长度定义为表中元素的个数,而深度定义为广义表展开后括号的最大嵌套层数。
例:L=((1,2,3)),长度为1,深度为2(有两层括号)


9.堆。(完全二叉树:最小堆,最大堆)
最小堆:根<(左,右)
最大堆:跟>(左,右)

构造最大堆和最小堆的方法,是按照顺序不断的取两个元素出来,放在父节点下面的左右子树,看看是否符合最大堆或最小堆的要求,即可。


10.多路归并。
一般情况下,对m个元素进行k路归并时,归并的趟数为s=|logkm|


11.mpeg标准。

MPEG-1:数字电视标准。
MPEG-2:数字电视标准。
MPEG-4:多媒体应用标准。
MPEG-7:多媒体内容描述接口标准。
MPEG-21:多媒体框架结构标准。
MPEG-3压缩较大,是一种有损压缩,其实际音质并不完美。在网络、可视电话等通信方面,MP3大有用武之地。

12.彩色空间。
彩色空间指彩色图像所使用的颜色描述方法,也称为彩色模型。
"RGB":((计算机)),彩色图像一般都采用R、G、B分量表示,色彩显示器通过发射3种不同强度的电子束,使屏幕内侧覆盖的红、绿、蓝荧光材料发光而产生色彩,这种彩色的表示方法称为RGB彩色空间表示法。
"CMY":((彩色打印机)),纸张不能发射光线,它只能使用能够吸收特定光波而反射其他光波的油墨或颜料来实现。用油墨或颜料进行混合得到的彩色称为相减色。根据三基色原理,油墨或颜料的三基色是青(cyan)、品红(megenta)和黄(yellow),可以用这三种颜色的油墨或颜料按不同比例混合成任何一种由油墨或颜料表现的颜色,这种彩色表示方法称为CMY彩色空间。
"YUV":((现代彩色电视)),通常采用三管彩色摄像机或彩色CCD摄像机,它把摄得的彩色图像信号经过分色,放大和校正得到RGB三基色,再经过矩阵变换得到亮度信号Y,色差信号U(R-Y)和V(B-Y),最后发送端将这三个信号分别进行编码,用同一信道发送出去,这就是通常用的YUV彩色空间。常见的用于电视系统的彩色空间包括 "YUV、YIQ、YCbC"


13.图像压缩问题。
压缩方式:
无损:霍夫曼编码和行程编码。
有损:预测编码、变换编码和运动补偿。

视频图像本身在时间上和空间上都存在冗余信息。视频图像压缩技术基本思想和方法可以归纳成两个要点:
在空间方向上,图像数据压缩采用JPEG压缩方法来去除冗余信息,主要方法包括"帧内预测编码和变换编码";
在时间方向上,图像数据压缩采用"帧间预测编码和运动补偿"算法来去除冗余信息。

14.关系模式。
无损连接是指当关系模式分解后,原关系模式下的任一合法的关系实例在分解之后能通过自然连接恢复起来;
保持函数依赖性是指通过分解后,能够保持原有的所有函数依赖。
例:关系模式R(U,F),其中U={W,X,Y,Z},F={WX→Y,W→X,X→Z,Y→W}
A.p={R1(WXY),R2(XZ)}  是无损连接并保持函数依赖的分解
A中R1保持了WX→Y,W→X和Y→W,而R2中保持了X→Z,这两个关系通过自然连接后能恢复起来,且能保持函数依赖。


15.OMT定义了三种模型来描述系统。
对象模型、动态模型、功能模型
对象模型--->描述系统中对象的静态结构、对象之间的关系、对象的属性、对象的操作。
对象模型为动态模型和功能模型提供了基本的框架。
动态模型--->描述与时间和操作顺序有关的系统特征——激发事件、事件序列、确定事件先后关系的状态以及事件和状态的组织。
动态模型用 “状态图” 来表示,每张状态图显示了系统中一个类的所有对象所允许的状态和事件的顺序。
功能模型--->描述与值的变换有关的系统特征——功能、映射、约束和函数依赖。
功能模型用 “数据流图” 来表示。


16.时间复杂度问题。
一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数f(n),算法的时间量度记作
T(n)=O(f(n))
它表示随问题规模n的增大,算法执行的时间的增长率和f(n)的增长率相同,称作算法的渐进时间复杂度。当n→∞时,常见的渐进时间复杂度大小为
O(1)≤O(n)≤O(nlogn)≤O(n2)


17.算法的特性。
有穷性:一个算法要求必须总是在执行有穷步之后结束,且每一步都可在有穷时间内完成。
确定性:算法中每一条指令必须有确切的含义,只有一条执行路径,相同的输入得出相同的输出。
可行性:算法中描述的操作都可以通过已经实现的基本运算执行有限次来实现。
输入:一个算法有0个或多个输入
输出:一个算法有1个或多个输出


18.算法:
(1)分治法。
在每层递归上都有3个步骤:分解---求解---合并
典例:归并排序法。 时间复杂度: T(n) = 0(n log n)

(2)动态规划法。
通常用于求解具有某种最优性质的问题。
最优子结构。
重叠子问题。
典例:0-1背包问题。

(3)贪心法。
不是从整体最优考虑,只是某种意义上的局部最优。不能保证全局最优解,但通常可得较好的近似最优解
贪心算法通过一系列的选择得到问题的解。它所做出的每一次选择是当前状态下 “局部” 最好选择,即贪心选择。
这种启发式的策略并不总能获得最优解,然而在许多情况下能达到预期目的。
从许多可以用贪心算法求解的问题中看到此类问题一般具有两个重要的性质:贪心选择性质和最优子结构性质。
“贪心选择性质” 是指所求问题的整体最优解可以通过一系列局部最优的性质来达到。
“最优子结构性质” 是指原问题的最优解包含其子问题的最优解。
“背包问题” 是贪心算法的一个典型应用
典例:活动选择问题,背包问题 (即允许将物品的一部分装入背包)

(4)回溯法。
深度优先方式搜索
典例:0-1背包问题,n皇后问题

(5)分支限界法:以广度优先方式搜索,或最小消耗优先方式。
类型:队列式,优先队列式分支限界法。

(6)概率算法。
数值概率算法:常用于数值问题的求解,往往得到的是近似解,精度随时间计算不断提高。
蒙特卡罗算法:用于求问题的精确解,精度随时间计算不断提高。
拉斯维加斯算法:一定会得到正确的解
舍伍德算法:总能得到问题的一个解,且解是正确的。(可用于最坏情况和平均情况的时间复杂度度差别较大)

(7)近似算法。
基本思想放弃求最优解,用近似最优解代替最优解,以换取算法设计上简化和时间复杂度的降低。
衡量近似算法性能最重要的标准:算法的时间复杂度; 解的近似程度。


19.利用报文摘要算法生成报文摘要的目的是防止发送的报文被篡改


20.PERT图。
不能清晰地描述:各任务之间的并行情况。
项目X的关键路径是:用时最长的路径。


21.数据流图。
数据流图有如下几个设计原则:
(1)数据守恒原则:对任何一个加工来说,其所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者说是通过该加工能产生的数据。
(2)守恒加工原则:对同一个加工来说,输入与输出的名字必须不相同,即使它们的组成成分相同。
(3)对于每个加工,必须既有输入数据流,又有输出数据流。
(4)外部实体与外部实体之间不存在数据流
(5)外部实体与数据存储之间不存在数据流
(6)数据存储与数据存储之间不存在数据流
(7)父图与子图的平衡原则:子图的输入输出数据流同父图相应加工的输入输出数据流必须一致,此即父图与子图的平衡。父图与子图之间的平衡原则不存在于单张图。
(8)数据流与加工有关,且必须经过加工。
根据这些原则,DF2违背了原则4,DF6违背了原则5,DF7违背了原则6,P1和P3缺少数据流,违背了原则3,P4的输入输出数据流相同,违背了原则2。因此共有6个错误。


22.多态。
一般将多态分为 “通用多态” 和 “特殊多态” 。
通用多态:参数多态和包含多态,参数多态利用泛型编程,是发散式的,是静态绑定的,
让相同的实现代码应用于不同的场合,看重的是算法的普适性,包含多态利用OOP,是收敛式的,
是动态绑定的,让不同的实现代码应用于相同的场合,看重的是接口与实现的分离度。

特殊多态:强制多态和过载多态。
强制多态---> 即一种类型的变量在作为参数传递时隐式转换成另一种类型,比如一个整型变量可以匹配浮点型变量的函数参数
过载多态---> 同一个名(操作符、函数名)在不同的上下文中有不同的类型。

 

23.设计模式
观察者模式(有时又被称为发布一订阅模式、模型一视图模式、源一收听者模式或从属者模式)是软件设计模式的一种。
在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。

单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。
通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。

适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。
一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。

装饰器模式就是创建一个新类为某一个类动态添加新功能或增强原有的功能。


24.子网划分问题。
把网络地址117.15.32.0/23划分为117.15.32.0/27,则得到的子网是 16 个。每个子网中可使用的主机地址是 30 个。
27-23=4, 2的4次方等于16个子网; 27---> 2的5次方=32>27,所以主机是 2的5次方32,再去掉全0,全1的最后结果为30个。


25.浮点数的阶码用R位(包含1位阶符) “移码” 表示,尾数用M位(包含1位数符) “补码” 表示。
范围:-2的(2的R-1次方 - 1) ~ (1- 2的-M+1次方) * 2的(2的R-1次方 - 1)


26.包过滤防火墙。
一般有一个包检查块,数据包过滤可以根据数据包头中的各项信息来控制站点与站点、站点与网路、网络
与网络之间的相互访问,但无法控制传输数据的内容,因为内容是应用层数据。

优点:对每条传入和传出网络的包实行低水平控制;每个IP包的字段都被检查;
缺点:不能防范黑客攻击,因为网管不能区分出可信网络与不可信网络;
不支持应用层协议,因为不认识数据包中的应用层协议


27.信息传输的安全(传输加密)
链路加密:只对两个结点之间的通信道线路上所传输的信息进行加密保护。

结点加密:加、解密都在结点中进行,即每个节点里装有加、解密的保护装置,用于
完成一个密钥向另一个密钥的转换。

端-端加密:为系统网络提供信息源到目的地传送的数据的加密保护,可以是从主机
到主机、终端到终端等,不管经过几个结点,数据不被解密。

RC-5是对称密码,加解密都使用相同的密钥,加密效率高,适合于加密大量的数据。
RSA和ECC是非对称密码,加解密使用不同的密钥(公钥和私钥),它们对计算资源的消耗较大,适合于加密非常少量的数据,例如加密会话密钥。
MD5可以用于生成数字摘要。


28.标准。
根据标准制定的机构和标准适用的范围有所不同,标准可分为 “国际标准、国家标准、行业标准、企业(机构)标准及项目(课题)标准”。
由国务院有关行政主管部门制定并报国务院标准化行政主管部门备案的标准,称为行业标准。
我国信息产业部属我国行政主管部门,其批准发布标准在信息行业范围内为行业统一的标准。

其中,国家标准、行业标准、地方标准又可分为强制性标准和推荐性标准。它们分别具有其代号和编号,通过标准的代号可确定标准的类别。

  • 行业标准由行业汉字拼音大写字母加“/T”组成。已正式公布的行业代号有QJ(航天)、SJ(电子)、JB(机械)和JR(金融系统)等。
  • 企业标准一般以"Q"作为企业标准的开头。


29.存储管理。
(1)分区存储:

(2)分页存储:将一个进程的地址空间划分成若干个大小相等的区域(页),将主存空间划分成页相同大小的块(页框)。在为进程分配主存时,将进程中若干页分别装入块中。
地址结构:页号   页内地址
页表:实现页号到物理块号的地址映射

例:页式存储系统的逻辑地址由页号和页内地址两部分组成。假定页面的大小为4K,地址变换过程如图2-1,图中逻辑地址用十进制表示。图中有效地址经过变换后,十进制物理地址a应为(33220)。  

                  

页式存储系统的逻辑地址由页号和页内地址两部分组成。题目已知页面大小为 4K,因为4K=2的12次方,所以页内地址有12位。现在把逻辑地址8644转成二进制数得10 0001 1100 0100,这里的低12位为页内偏移量,最高两位则为页号,所以逻辑地址8644的页号为10(即十进制数的2),所以物理块号为8,化为二进制数得1000。把物理块号和页内偏移地址拼合得1000 0001 1100 0100,转化为十进制数得33220。

(3)分段存储:作业的地址空间被划分成若干个段,每个段是一组完整的逻辑信息(子主程序段、
数据段、堆栈段),各段长度不等,编址是连续的地址空间。
地址结构:段号   段内地址
段表:实现段号到物理块号的地址映射

变换注意:
段号S 与段长L比较,弱S>L,表示段号太大,越界。
段内地址D 与段长L比较,若D>=L,越界。

(4)段页式存储:将主存划分成大小相等的存储块(页框),将用户程序分成若干段,再将每段分成若干页,以页框为单位离散分配。
地址结构:段号   段内页号   页内地址。

(5)虚拟存储:一个作业只部分装入主存便可开始启动运行,其余部分暂存在磁盘上,
在需要的时候再存入主存,这样可以有效利用主存空间。
(作用:为了扩大主存容量而采用的设计方法)
(解决:前面的存储方案,必须为每个作业分配足够空间,才能执行,会出现主存空间不满足的情况)

程序局部性原理:时间局限性; 空间局限性。

实现方式:请求分页系统; 请求分段系统; 请求段页式系统。

30.UML的9种模型图

(1)用例图:用例图以图形化的方式描述系统与外部系统及用户的交互。换句话说,它们以图形化的方式描述了谁将使用系统,以及用户期望以什么方式与系统交互。
(2)类图:类图描述系统的对象结构,它们显示构成系统的对象类以及这些对象类之间的关系。
(3)对象图:类似于类图,但并不描述对象类,它们对实际的对象实例建模——显示实例属性的当前值。
(4)序列图:以图形化的方式描述了在一个用例或操作执行过程中对象如何通过消息互相交互,说明了消息如何在对象之间被发送和接收以及发送的顺序。
(5)协作图:类似于序列图,但重点不是消息的时间顺序。它以一种网络格式表现对象之间的交互。
(6)状态图:用于对一个特定对象的动态行为建模,说明了一个对象的生命周期——对象可以经历的各种状态,以及引起对象从一个状态向另一个状态转换的事件。
(7)活动图:用于以图形化的方式描述一个业务过程或者一个用例的活动的顺序流。
(8)构件图:用来以图形化的方式描述系统的物理结构,它可以用来显示程序代码如何分解成模块。
(9)部署图:描述系统中硬件和软件的物理架构,它描述构成系统架构的软件构件、处理器和设备。

31. 哈夫曼树带权路径长度。

 哈夫曼树的形状如图8-4所示。由权值为9,2,5,7的四个叶子结点构造一棵哈夫曼树。

该树的带权路径长度=9×1+7×2+2×3+5×3=44

32.指令控制方式。

流水线技术是通过并行硬件来提高系统性能的常用方法。计算机流水线技术包括指令流水线和运算操作流水线。计算机中一条指令的执行需要若干步,通常采用流水线技术来实现指令的执行,以提高CPU的性能。
按顺序方式:T=N×(t取指+t分析+t执行)
按流水线方式:T=t取指+max{t取指,t分析}+max{t取指,t分析,t执行}×(N-2)+max{t分析,t执行}+t执行。

33.考过的知识点。

应该在 需求分析 阶段制定系统测试计划。

ISO标准每5年复审一次,平均标龄为4.92年;

著作权不需要登记或标注版权标记就能得到保护;

风险曝光度=风险损失×风险概率 =1 000 000×0.5%=5000(元)      

代码审查是一种正式的评审活动,而代码走查的讨论过程是非正式的。

继承反映了类间的一种层次关系,而组合反映了一种整体与部分的关系。

文件系统中,设立打开文件(Open)系统功能调用的基本操作是把文件的控制管理信息从辅存读到内存:设立关闭文件(Close)系统功能调用的基本操作是把文件当前的控制管理信息从内存写入磁盘。

在TCP/IP体系结构中,ARP协议数据单元封装在以太网的数据帧中传送,实现 IP地址到MAC地址的转换。

34.软件测试。

恢复测试: 是要证实在克服硬件故障(包括突然断电、硬件或网络出现错误等)后,系统能否继续正常进行工作,并不对系统造成任何危害。

回归测试: 在维护过程中,当修正一个BUG以后要进行回归测试。回归测试也叫退化测试,只是翻译不同而已。

确认测试: (Validation Testing)又称为有效性测试,其任务是验证软件的功能和性能及其它特性是否与用户的要求一致。

可靠性测试: 如果系统需求说明书中有对可靠性的要求,则需进行可靠性测试,通常使用平均失效间隔时间、因故障而停机的时间两个指标来衡量。                                                                                                                       

35.编译过程。

词法分析阶段是编译过程的第一阶段,这个阶段的任务是对源程序从前到后(从左到右)逐个字符地扫描,从中识别出一个个“单词”符号。词法分析的主要任务有:识别出源程序中的各个单词符号,并将其转换为内部编码形式;删除无用的空白字符、回车字符以及其他非实质性字符:删除注释。

36.平衡二叉树。

平衡二叉树(AVL树)或者是一棵空树,或者是具有下列性质的二叉树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。任何一个节点的左右子树深度差不超过1。

例:由元素序列(27,16,75,38,51)构造平衡二叉树,则首次出现的最小不平衡子树的根(即离插入结点最近且平衡因子的绝对值为2的结点)为 75。

构造的二叉树如下,75这个节点,左子树深度为2,右子树深度为0,即出现了2-0>1的情况。

37.排序二叉树。

又称二叉查找树(Binary Search Tree),亦称二叉搜索树

(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;

(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;

(3)左、右子树也分别为二叉排序树;

(4)没有键值相等的节点。

(5)n个结点的二叉查找树,查找的最坏算法复杂度是0(n)

38.二叉树性质。

  • i层,结点不超过 2的i次方-1
  • 深度为h的,最多有2的h次方-1个结点,最少有h个结点。

39.耦合关系。

  • 数据耦合:一个模块访问另一个模块时,彼此之间是通过简单数据参数 (不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的。
  • 内容耦合:非直接耦合。两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。
  • 公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。
  • 标记耦合:一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。其实传递的是这个数据结构的地址;
  • 控制耦合:如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。
  • 外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。

40.程序错误。

般程序中的错误可分为语法错误语义错误(或逻辑错误) ,语法错误是语句形式上的错误,语义错误是含义上的错误(逻辑错误)。在C程序代码中,

    int i=0;
    while(i10);
    {ii+1;}

    由于在while的循环条件表达式后加了分号“;”,使循环体为空语句,因此造成死循环,这是一种运行中出现的逻辑错误,属于动态语义错误。

41.关系的完整性约束。

  • 实体完整性规定基本关系的主属性不能取空值。
  • 参照完整性,定义建立关系之间联系的主关键字与外部关键字引用的约束条件。
  • 用户定义完整性,针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。

42.计算机可靠性。

串联:可靠性R=R1*R2*·····Rn

并联:可靠性R=1-(1-R1)*(1-R2)*·····(1-Rn)

43.声音信号。

声音信号是一种模拟信号,计算机要对其进行处理,必须将其转换为数字声音信号,即用二进制数字的编码形式来表示声音。最基本的声音信号数字化方法是取样-量化法,分成如下3个步骤。

  • (1)采样:把时间连续的模拟信号转换成时间离散、幅度连续的信号。在某些特定的时刻获取声音信号幅值叫做采样,由这些特定时刻采样得到的信号称为离散时间信号。一般都是每隔相等的一小段时间采样一次,其时间间隔称为取样周期,其倒数称为采样频率。采样定理是选择采样频率的理论依据,为了不产生失真,采样频率不应低于声音信号最高频率的两倍。因此,语音信号的采样频率一般为8kHz,音乐信号的采样频率则应在40kHz以上。采样频率越高,可恢复的声音信号分量越丰富,其声音的保真度越好。
  • (2)量化:把在幅度上连续取值(模拟量)的每一个yangben转换为离散值(数字量),因此量化过程有时也称为A/D转换(模数转换)。量化后的yangben是用若干位二进制数(bit)来表示的,位数的多少反映了度量声音波形幅度的精度,称为量化精度,也称为量化分辨率。例如,每个声音yangben若用16位(2个字节)表示,则声音yangben的取值范围是0~ 65536,精度是1/65536;若只用8位(1个字节)表示,则yangben的取值范围是0~255,精度是1/256。量化精度越高,声音的质量越好,需要的存储空间也越多;量化精度越低,声音的质量越差,需要的存储空间也越少。
  • (3)编码:经过采样和量化处理后的声音信号已经是数字形式了,但为了便于计算机的存储、处理和传输,还必须按照一定的要求进行数据压缩和编码,即:选择某一种或者几种方法对其进行数据压缩,以减少数据量,再按照某种规定的格式将数据组织成为文件。

44.开发成本估算。

各种开发成本估算模型通常采用经验公式,提供一个或多个数学算法,将成本作为若干个变量的函数计算求得。常用的估算模型中:

  • IBM模型是静态单变量模型,利用已估算的特性(如源代码函数)来估算各种资源的需求量。
  • Putnam模型是一种动态多变量模型,它假定软件项目工作量的分布和Rayleigh曲线类似,并把项目的资源需求当作时间的函数。该模型为描述开发工作量和计划进度之间的关系定义了两个方程:①软件方程,表明开发工作量和项目规模的三次幂成正比,与开发时间的四次方称反比;②人力增加方程,表明工作量和开发时间三次幂成正比、Putnam模型一般应用于超过70000代码行的项目。
  • COCOMO模型是一种精确且易于适用的成本估算模型,它是由基本COCOMO模型、中级COCOMO模型和高级COCOMO模型组成的集合。
  • 基本COCOMO模型是静态单变量模型,用一个已估算的源代码行数为自变量的经验函数来计算软件开发工作量和开发成本。
  • 中级COCOMO模型在基本模型中已计算的软件开发工作量的基础上,在用涉及产品、硬件、人员、项目和项目的15个成本驱动因素来调控工作量的估算。
  • 高级 COCOMO模型不但包括了中级COCOMO模型的所有特性,而且为上述15个因素在软件生存周期的不同阶段赋予了不同的权重。
  • COCOMO模型由Boehm于1981年首次发表,Boehm后来又和同事定义了更复杂的COCOMO Ⅱ模型,该模型反映了软件工程技术的近期变化。COCOMO模型非常适合专用的、按技术说明制作的软件项目,而COCOMO Ⅱ模型更适用于广泛汇集各种技术的软件项目,为商用软件、面向对象软件、通过螺旋型或进化型等开发模型制作的软件。

45.统一过程(UP)。

统一过程(UP)的基本特征是“用例驱动、以架构为中心的和受控的迭代式增量开发”。一个UP可分为若干个周期,每个周期的开发过程被分为4个阶段,每个阶段可进行若干次迭代。UP将一个周期的开发过程划分为如下的4个阶段。

  • 先启阶段(Inception):该阶段的主要意图是建立项目的范围和版本,确定业务实现的可能性和项目目标的稳定性。提交结果包括原始的项目需求和业务用例。
  • 精化阶段(Elaboration):该阶段的主要意图是对问题域进行分析,建立系统的需求和架构,确定技术实现的可行性和系统架构的稳定性。提交结果包括系统架构及其相关文档、领域模型、修改后的业务用例和整个项目的开发计划。
  • 构建阶段(Construction):主要意图是增量式地开发一个可以交付用户的软件产品。
  • 提交阶段(Transition):主要意图是将软件产品提交用户。

46.软件维护。

维护是软件生命周期中的重要阶段。按照引发维护的原因,可将软件维护活动分为

    (1)改正性维护,是指改正系统中已发生、但测试中未发现的错误。这种维护工作量约占整个维护工作量的20%左右。

    (2)适应性维护,是指为使软件适应信息技术变化、软硬件环境和管理需求等变化而修改软件,约占整个维护工作量的24%左右。

    (3)完善性维护,是指为扩充软件功能、改进加工效率、改善系统性能而修改软件,这种维护对系统质量的影响较大,约占整个维护工作量的50%左右。

    (4)预防性维护,是指为提高软件的可维护性和可靠性,并适应未来的软硬件环境变化而对软件或软件中的一部分重新设计,这种维护约占整个维护工作量的5%左右。

47.网络攻击。

  • 网络攻击是以网络为手段窃取网络上其他计算机的资源或特权,对其安全性或可用性进行破坏的行为。

  • 网络攻击又可分为主动攻击和被动攻击。

    • 被动攻击就是网络窃听,截取数据包并进行分析,从中窃取重要的敏感信息。被动攻击很难被发现,因此预防很重要,防止被动攻击的主要手段是数据加密传输。为了保护网络资源免受威胁和攻击,在密码学及安全协议的基础上发展了网络安全体系中的5类安全服务,它们是身份认证、访问控制、数据保密、数据完整性和不可否认。对这5类安全服务,国际标准化组织ISO已经有了明确的定义。
    • 主动攻击包括窃取、篡改、假冒和破坏。字典式口令猜测,IP地址欺骗和服务拒绝攻击等都属于主动攻击。一个好的身份认证系统(包括数据加密、数据完整性校验、数字签名和访问控制等安全机制)可以用于防范主动攻击,但要想杜绝主动攻击很困难,因此对付主动攻击的另一措施是及时发现并及时恢复所造成的破坏,现在有很多实用的攻击检测工具。
  • 常用的有以下9种网络攻击方法。

    1.获取口令。    2.放置特洛伊木马程序。    3.WWW的欺骗技术。    4.电子邮件攻击。    5.通过一个节点来攻击其他节点。    6.网络监听。    7.寻找系统漏洞。    8.利用账号进行攻击。    9.偷取特权。

48.UML中的基本概念。
泛化: (Generalization,也称概括关系)描述了一般事物与该事物中的特殊种类之间的关系,即父类与子类之间的关系。
关联: (Association)表示两个类的实例之间存在的某种语义上的联系。
聚合: (Aggregation)是关联关系的特例。聚集关系是表示一种整体和部分的关系。
依赖: 对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对缘之间主要表现为依赖关系。
迭代: 当对象A维持对象B的引用或指针,并与对象C共享相同对象B时,则A与B具有迭代关系。

49.指令的寻址方式

  • 操作数的地址包含在指令中的寻址方式是直接寻址
  • 操作数在寄存器中的寻址方式是寄存器寻址
  • 操作数的地址存放在寄存器中的寻址方式是寄存器间接寻址。

50.VPN的关键技术

VPN的关键技术主要有隧道技术、加解密技术、密钥管理技术和身份认证技术。

51.软件开发进度管理工具图

甘特图、PERT(计划评审技术)图及CPM(关键路径法)图是软件项目管理中常用的管理开发进度的工具,鱼骨图是常用来发现问题根源并提出解决问题的有效办法的工具。

  • 在这三种开发进度管理工具图中,甘特图能够清晰描述每个任务的开始/结束时间及各任务之间的并行性,也可以动态地反映项目的开发进展情况,但难以反映多个任务之间存在的逻辑关系;
  • PERT利用项目的网络图和各活动所需时间的估计值(通过加权平均得到的)去计算项目总时间,强调任务之间的先后关系,但不能反映任务之间的并行性,以及项目的当前进展情况;
  • CPM借助网络图和各活动所需时间,计算每一活动的最早或最迟开始和结束时间。CPM的关键是计算总时差,这样可决定哪一活动有最小时间弹性。PERT利用项目的网络图和各活动所需时间的估计值(通过加权平均得到的)去计算项目总时间。PERT不同于CPM的主要点在于PERT利用期望值而不是最可能的活动所需时间估计(在CPM法中用的)。

52.文件的目录结构

常见的目录结构有三种:一级目录结构、二级目录结构和多级目录结构。

  • 一级目录的整个目录组织是一个线性结构,在整个系统中只需建立一张目录表,系统为每个文件分配一个目录项(文件控制块)。一级目录结构简单,但缺点是查找速度慢,不允许重名和不便于实现文件共享等,因此它主要用在单用户环境中。为了克服一级目录结构存在的缺点,引入了二级目录结构。
  • 二级目录结构是由主文件目录MFD(Master File Directory)和用户目录UFD(User File Directory)组成的。采用二级目录结构也存在一些问题。该结构虽然能有效地将多个用户隔离开,这种隔离在各个用户之间完全无关时是一个优点;但当多个用户之间要相互合作去共同完成一个大任务,且一个用户又需去访问其他用户的文件时,这种隔离便成为一个缺点,因为这种隔离使诸用户之间不便于共享文件。
  • 所以引入多级目录结构,这样允许不同用户的文件可以具有相同的文件名。

53.软件测试。

软件测试是为了发现程序中的错误,对于不同粒度的软件,需要进行不同的测试。软件开发过程中,通常需要进行单元测试、集成测试、确认测试和系统测试等步骤。

  • 其中单元测试也称为模块测试,是在一个模块编写完成后进行,以检查该模块是否正确实现了规定功能,该测试一般使用白盒测试法设计测试案例。
  • 当模块测试完成后,还需要检查该模块能否和其他模块按照既定方式正确工作,即验证多个模块组装后能够按照软件设计要求正常、正确地工作,这种测试过程就是集成测试,也称为组装测试。

54.软件开发方法。

  • 结构化开发方法是传统的、也是应用较为广发的一种软件开发方法,它基于数据流进行需求分析和软件设计,用抽象模型的概念,按照软件内部数据传递和转换关系,对问题和功能自顶向下逐层分解。
  • Jackson系统开发方法是一种典型的面向数据结构的分析和设计方法,以活动为中心,一连串活动的顺序组合成一个完整的工作进程。
  • Booch方法是一种面向对象的软件开发方法。
  • UML仅仅是一种建模标准语言,规定了构成软件的各个元素和构件的图示规范。

55.软件风险

风险分析包括风险识别、风险预测、风险评估和风险控制等4个不同活动。

  • 风险识别,要识别潜在的预算、进度、个体、资源、用户和需求等方面的问题以及对整个项目的影响,并建立风险条目检查表,列出所有可能的风险事项。
  • 风险预测,需要建立一个表示风险可能性的参考标准,描述风险条目的结果,估计风险对项目的影响等。一般从两个方面评估一个风险:(1)风险发生的可能性或概率;(2)风险如果发生了,产生的后果。
  • 风险评估,定义风险参照水准。
  • 风险控制,目的是辅助项目组建立处理风险的策略(风险避免,风险监控,RMMM计划)