风险识别—建立风险概念的尺度。试图系统化确定对项目计划(估算、进度、资源分配)的威胁。(一个方法是建立风险条目检查表。该风险表可以用于识别风险,并使得人们集中来识别下列常见的、已知的及可预测的风险)
风险预测—描述风险引起的后果。确定风险发生的可能性或概率以及如果风险发 生了所产生的后果。
风险评估—估计风险影响的大小。
风险控制—确定风险估计的正确性。辅助项目组建立处理风险的策略。
耦合:系统内不同模块之间互连程度的度量。块间耦合强弱取决于模块间联系形式及接口的 复杂程度。
模块间接口的复杂性越高,说明耦合的程度也越高。
数据耦合:如果两个模块彼此间通过数据交换信息,而且每一个参数仅仅为数据,那么这种 块间耦合称之为数据耦合。
控制耦合:如果两个模块彼此间传递的信息中有控制信息,那么这种块间耦合称为控制耦合。
公共耦合:如果两个模块彼此之间通过一个公共的数据区域传递信息时,则称之为公共耦合 或公共数据域耦合。
内容耦合:如果一个模块需要涉及另一个模块的内部信息时,则这种联系称为内容耦合。
内聚:模块内部元素的联系方式,块内联系标志一个模块内部各个元素间彼此结合的紧密程 度,主要表现在模块内部各个元素为了执行某一功能而结合在 一起的程度。
偶然内聚:如果一个模块所要完成的动作之间没有任何关系,或者即使有某种关系,也是非 常松散的,就称之为偶然组合。
逻辑内聚:如果一个模块内部的各个组成部分在逻辑上具有相似的处理动作,但功能上、用 途上却彼此无关,则称之为逻辑组合。
时间内聚:如果一个模块内部的各个组成部分所包含的处理动作必须在同一时间内执行,则 称之为时间组合。
过程内聚:如果一个模块内部的各个组成部分所要完成的动作彼此间没什么关系,但必须以 特定的次序(控制流)执行,则称之为过程组合。
通信内聚:如果一个模块内部的各个组成部分所完成的动作都使用了同一个输入数据或产生 同一个输出数据,则称之为通信组合。
顺序内聚:对于一个模块内部的各个组成部分,如果前一部分处理动作的输出是后一部分处 理动作的输入,则称之为顺序组合。 功能内聚:如果一个模块内部的各个组成部分全部为执行同一功能而合成为一个整体,则称 之为功能组合方式的模块。
系统测试的方法:
1.静态测试:被测程序不在机器上运行,而是采用人工检测和计算机辅助静态分析的手段对程序进行检测。
2.动态测试:通过运行程序发现错误。有黑盒测试法和白盒测试法。
系统测试的步骤: 单元测试:程序中的一个模块或一个子程序,是程序设计的最小单元,是程序最小的独立编译单位。
集成测试(组装测试):在每个模块完成了单元测试以后,需要按照设计时作出的层次模块图把它们连接起来,进行组装测试。 确认测试:经过组装测试,软件已装配完毕,接下来进行的确认测试和系统测试将是以整个软件做为测试对象,且采用黑盒测试方法。
系统测试:将信息系统的所有组成部分包括软件、硬件、用户以及环境等综合在一起进行测试,以保证系统的各组成部分协调运行。
软件维护:根据需求变化或硬件环境的变化对应用程序进行部分或全部修改。软件维护包括:
正确性维护:改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。占整个维护工作量的17%-20%。
适应性维护:使应用软件适应信息技术变化和管理需求变化而进行的修改。占整个维护工作量的18%-25%。
完善性维护:为扩充功能和改善性能而进行的修改,主要是对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。占整个维护工作量的50%-60%。
预防性维护:为改进应用软件的可靠性和可维护性,为了使用硬件环境的变化,主动增加预防性的新的功能,以使应用系统适应各类变化而不被淘汰。占整个维护工作量的4%左右。
数据库系统中存放三级结构定义的数据库称为数据字典。对数据库的操作都要通过访问DD才能实现。DD中还存放数据库运行的统计信息,例如记录个数、访问次数等。三级结构:外模式、概念模式、内模式
两级映象:外模式/模式映象、模式/内模式映象
三级结构:
外模式:单个用户使用到的那部分数据的描述。
概念模式:是用户定义的数据库中全部数据逻辑结构的描述。
内模式:是数据库在物理存储方面的描述,接近于物理存储设备,涉及到实际数据存储的结构。
两级映象
模式/内模式映象:存在于概念级和内部级之间,用于定义概念模式和内模式之间的对应性。
外模式/模式映象:存在于外部级和概念级之间,用于定义外模式和概念模式之间的对应性。
两级数据独立性 数据独立性 是指应用程序和数据库的数据结构之间相互独立,不受影响。
分成物理数据独立性和逻辑数据独立性两个级别。
物理数据独立性:数据的内模式修改,模式/内模式也要进行相应的修改,但概念模式尽可 能保持不变。
逻辑数据独立性:数据的概念模式修改,外模式/模式也要进行相应的修改,但外模式尽可 能保持不变。
死锁
死锁的概念:
指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进。
死锁产生的原因
(1)竞争资源 当系统中供多个进程所共享的资源,不足以同时满足它们的需要时,引起它们对资源的竞争而产生死锁。
(2) 进程推进顺序不当 进程在运行过程中,请求和释放资源的顺序不当,导致了进程的死锁。
死锁产生的必要条件
(1)互斥使用资源 (2)占有并等待资源 (3)不可剥夺资源 (4)循环等待资源
处理死锁的基本方法 预防死锁 避免死锁 —— 银行家算法 检测死锁解除死锁
避免死锁 —— 银行家算法 【基本思想】用例图(Use case diagram) 从用户角度描述系统功能,并指出各功能的操作者。
静态图(Static diagram),表示系统的静态结构。包括类图、对象图、包图。
行为图(Behavior diagram),描述系统的动态模型和组成对象间的交互关系。包括状态图、活动图。图名称 图定义 图性质
1 类图 一组类、接口、协作及它们的关系静态图
2 对象图 一组对象及它们的关系 静态图
3 用例图 一组用例、参与者及它们的关系 静态图
4 顺序图 一个交互,强调消息的时间顺序 动态图
5 协作图 一个交互,强调消息发送和接受的对象的结构组织 动态图
6 状态图 一个状态机,强调对象按事件排序的行为动态图
7 活动图 一个状态机,强调从活动到活动的流动 动态图
8 构件图 一组构件及关系 静态图
9 配置图 (实施图) 一组接点及它们的关系 静态图Flynn分类:根据不同指令流—数据流组织方式把计算机系统分成4类。
(重点理解) 指令流:机器指令的执行序列;
数据流:由指令流调用的数据序列,包括输入数据和中间结果;多倍性:在系统性能的瓶颈部件上同时处于同样执行阶段的指令和数据的最大可能个数;
I. 单指令流单数据流SISD——如单处理机 II.
单指令流多数据流SIMD——如相联处理机 III.
多指令流单数据流MISD——如流水线计算机
IV. 多指令流多数据流MIMD——如多处理机
常用的寻址方式有立即寻址、直接寻址、间接寻址、寄存器寻址、基址寻址、变址寻址、相对寻址。
指令的执行过程
1.计算下一条要执行的指令的地址; 2.从该地址读取指令; 3.对指令译码以确定其所要实现的功能; 4.计算操作数的地址; 5.从该地址读取操作数; 6.执行操作; 7.保存结果;
在汇编语言中,MOV指令是数据传送指令,也是最基本的编程指令,用于将一个数据从源地址传送到目标地址(寄存器间的数据传送本质上也是一样的)。其特点是不破坏源地址单元的内容。 例如: MOV AX,2000H;将16位数据2000H传送到AX寄存器 MOV AL,20H;将8位数据20H传送到AL寄存器 MOV AX,BX;将BX寄存器的16位数据传送到AX寄存器 MOV AL,[2000H];将2000H单元的内容传送到AL寄存器
1. 立即寻址方式* —— 操作数在指令中给出
MOV AL, 5
MOV AX, 3064H
2. 寄存器寻址方式* —— 操作数在指定的寄存器中
MOV AX, BX
MOV AL, BH
3. 直接寻址方式* —— 有效地址EA由指令直接给出
有效地址EA:操作数的偏移地址
物理地址PA = 16d ? (DS) + EA
例:MOV AX, [2000H]
EA=2000H, 假设(DS)=3000H, 那么(PA)=32000H
用算法设计方法 算法设计是一件非常困难的工作,经常采用的算法设计技术主要有迭代法、穷举搜索法、递推法、贪婪法、回溯法、分治法、动态规划法等等。另外,为了更简洁的形式设计和藐视算法,在算法设计时又常常采用递归技术,用递归描述算法。
一、迭代法 迭代法是用于求方程或方程组近似根的一种常用的算法设计方法。
二、穷举搜索法
穷举搜索法是对可能是解的众多候选解按某种顺序进行逐一枚举和检验,并从众找出那 些符合要求的候选解作为问题的解。
三、递推法 递推法是利用问题本身所具有的一种递推关系求问题解的一种方法。
四、递归 采用递归描述的算法通常有这样的特征:为求解规模为N的问题,设法将它分解成规模 较小的问题,然后从这些小问题的解方便地构造出大问题的解,并且这些规模较小的问题也能采用同样的分解和综合方法,分解成规模更小的问题,并从这些更小问题的解构造出规模较大问题的解。特别地,当规模N=1时,能直接得解。
五、回溯法 回溯法也称为试探法,该方法首先暂时放弃关于问题规模大小的限制,并将问题的候选解按某种顺序逐一枚举和检验。
六、贪婪法 贪婪法是一种不追求最优解,只希望得到较为满意解的方法。贪婪法一般可以快速得到满意的解,因为它省去了为找最优解要穷尽所有可能而必须耗费的大量时间。贪婪法常以当前情况为基础作最优选择,而不考虑各种可能的整体情况,所以贪婪法不要回溯。
七、分治法 1、分治法的基本思想 任何一个可以用计算机求解的问题所需的计算时间都与其规模N有关。问题的规模越小,越容易直接求解,解题所需的计算时间也越少。 分治法的设计思想是,将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。
2、分治法的适用条件 分治法所能解决的问题一般具有以下几个特征: (1)该问题的规模缩小到一定的程度就可以容易地解决; (2)该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质; (3)利用该问题分解出的子问题的解可以合并为该问题的解; (4)该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子子问题。
3、分治法的基本步骤 分治法在每一层递归上都有三个步骤: (1)分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题; (2)解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题; (3)合并:将各个子问题的解合并为原问题的解。
八、动态规划法 为了节约重复求相同子问题的时间,引入一个数组,不管它们是否对最终解有用,把所有子问题的解存于该数组中,这就是动态规划法所采用的基本方法。
java的23种设计模式 创建型模式
1.工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。
2.建造模式:将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。建造模式使得产品内部表象可以独立的变化,客户不必知道产品内部组成的细节。建造模式可以强制实行一种分步骤进行的建造过程。
3.工厂方法模式:核心工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做,成为一个抽象工厂角色,仅负责给出具体工厂类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节。
4. 原始模型模式:通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的方法创建出更多同类型的对象。原始模型模式允许动态的增加或减少产品类,产品类不需要非得有任何事先确定的等级结构,原始模型模式适用于任何的等级结构。缺点是每一个类都必须配备一个克隆方法。
5. 单例模式:单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例单例模式。单例模式只应在有真正的“单一实例”的需求时才可使用。 结构型模式
6.适配器(变压器)模式:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口原因不匹配而无法一起工作的两个类能够一起工作。适配类可以根据参数返还一个合适的实例给客户端。8.合成模式:合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式就是一个处理对象的树结构的模式。合成模式把部分与整体的关系用树结构表示出来。合成模式使得客户端把一个个单独的成分对象和由他们复合而成的合成对象同等看待。
9.装饰模式:装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案,提供比继承更多的灵活性。
10.门面模式:外部与一个子系统的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。每一个子系统只有一个门面类,而且此门面类只有一个实例,也就是说它是一个单例模式。但整个系统可以有多个门面类。11.享元模式:以共享的方式高效的支持大量的细粒度对象。享元模式能做到共享的关键是区分内蕴状态和外蕴状态。内蕴状态存储在享元内部,不会随环境的改变而有所不同。外蕴状态是随环境的改变而改变的。外蕴状态和内蕴状态是相互独立的。
23、访问者模式:访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构可以保持不变。访问者模式适用于数据结构相对未定的系统,它把数据结构和作用于结构上的操作之间的耦合解脱开,使得操作集合可以相对自由的演化。访问者模式使得增加新的操作变的很容易,就是增加一个新的访问者类。访问者模式将有关的行为集中到一个访问者对象中,而不是分散到一个个的节点类中。当使用访问者模式时,要将尽可能多的对象浏览逻辑放在访问者类中,而不是放到它的子类中。访问者模式可以跨过几个类的等级结构访问属于不同的等级结构的成员类。
某进程有5个页面,页号为0~4,页面变换表如下所示。表中状态位等于0和1分别表示页面不在内存或在内存。若系统给该进程分配了3个存储块,当访问的页面3不在内存时,应该淘汰表中页号为 (9) 的页面。假定页而大小为4K,逻辑地址为十六进制2C25H,该地址经过变换后,其物理地址应为十六进制(10) 。
(10)处填()。
A.2C25H
B.4096H
C.4C25H
D.8C25H
[要点解析] 页面变换表中状态位等于0和1分别表示页面不在内存或在内存,所以0、2和4号页面在内存。当访问的页面3不在内存时,系统应该首先淘汰未被访问的页面,因为根据程序的局部性原理,最近未被访问的页面下次被访问的概率更小;如果页面最近都被访问过,应该先淘汰未修改过的页面,因为未修改过的页面内存与辅存一致,故淘汰时无需写回辅存,使系统页而置换代价小。经上述分析,0、2和4号页面都是最近被访问过的,但2和4号页面都被修改过而0号页面未修改过,故应该淘汰0号页面。
根据题意,页面大小为4KB,逻辑地址为十六进制2C25H,其页号为2,页内地址为C25H,查页表后可知页帧号(物理块号)为4,该地址经过变换后,其物理地址应为页帧号4拼上页内地址C25H,即十六进制4C25H。
直接地址所以:顾名思义就是在计算机中采用最最直接的方式来存储数据块;
间接地址索引:它有几个分类,一级间接地址索引、二级间接地址索引、三级间接地址索引……,它的变现形式就是根据具体有几次间接索引来命名的。
2010年下半年真题:
27-28;某文件系统采用多级索引结构,若磁盘块的大小为512字节,每个块号需占3字节,那么根索引采用一级索引时的文件最大长度为——KB;采用二级索引时的文件最大长度为——KB。
根据题意:我们能够知道一个磁盘块可以存放 512 / 3 = 170 个块号。
采用一级索引效果如下:
由指令流调用的数据序列
采用二级索引效果如下:
所以采用二级索引的话能够表示的文件最大长度为:
170 * 170 * 512 / 1024 = 14450 KB。
33kb
519kb
1057kb
16513kb
计算机音乐主要有调频FM和波形表WaveTable两种方式。
波形表合成技术的乐音更真实。
表现媒体指实现信息输入和输出的媒体,如键盘,鼠标,扫描仪,话筒等为输入媒体;显示器打印机喇叭,表示输出媒体。
硬盘属于存储媒体,光纤属于存储媒体,图像属于感觉媒体。
表示媒体指传输感觉媒体,即用于数据交换的编码如文本编码,声音编码和图像编码等。
矢量图使用数学的方式(算法和特征)来描述一幅图形图像,在处理图形图像时根据图元对应的数学表达式,进行编辑和处理。
用户A获取用户B的数字证书后通过验证CA的签名来确认数字证书的有效性。验证CA签名时使用的是CA的公钥。
宏病毒感染
数字证书用CA私钥可以获得用户的公钥。
PKI为保障数字证书不被篡改,而且要发送到证书主人手中,需要用CA的私钥对数字证书签名,防伪造,不可抵赖。
数字签名不能验证接收者的合法性。接受者可以验证消息来源的真实性,发送者无法否认发送过该消息,
接收者无法伪造和篡改消息。
桥接(Bridge)模式将抽象部分与其实现部分分离,使他们都可以独立的变化。
适配器(adapter)模式将类的接口转换成客户希望的另一个接口。即是类结构模式,又是对象结构模式。
代码(proxy)模式通过提供与对象相同的接口来控制对这个对象的访问,使得在确实需要这个对象,才对他进行创建和初始化。
组合(Composite)模式描述了如何构造一个类层次结果。将对象组合成树型结构以表示"部分-整体"的层次结构,使得用户对单个对象和组合对象的使用具有一致性。
装饰器(Decorator)模式动态的给一个对象添加职责。
抽象工厂(abstractFactory)模式提供一个创建一系列相关或者相互依赖对象的接口,而无需指定他们具体的类。
适用于一个系统要独立于他的产品创建、组合和表示时,一个系统要由多个产品系列中的一个来配置时,当要强调一系列相关产品对象的设计以便联合使用时:当提供一个产品类库,而只是想要显示他们的接口而不是实现时。
生成器模式(builder)将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。生成器模式适合于创建复杂对象的算法应该独立于该对象的组成部分以及他们的装配方式时,当构造过程必须允许被构造的对象有不同的表示时。
工厂方法(Factory)定义一个用于创建对象的接口,让子类决定将那一个类实例化,是一个类的实例化延迟到子类。工厂方法模式适用于当一个类不知道他所必须创建的对象的类的时候:当一个类希望由他的子类来制定他所创建对象的时候。
原型模式(Prototype)适用于用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。
适用于:当一个系统应该独立于他的层产品创建、构成和表示时,当要实例化的类要在运行时指定时。
Visitor模式,一个visitor对象是一个多态的accept操作的参数,这个操作作用于该visitor对象
访问的对象。
面向对象设计系统主要步骤有面向对象分析、面向对象设计、面向对象程序设计和面向对象测试。
面向对象分析主要有认定对象、组织对象、描述对象间的相互作用、定义对象的操作、定义对象的内部信息。
面向对象设计是设计分析模型和实现相应源代码。
面向对象程序设计是选择合适的面向对象程序设计语言,将程序组织和相互对象的集合。每个对象表示每个类的实例,类通过
继承关系组织。
关系包括四种:依赖、关联、泛化和实现。
依赖(Dependency)是两个事物间语义关系,其中一个事物(独立事物)发生变化影响另一个事物(依赖事物)的语义。
关联(Association)是一种结构关系,描述了一组链,链是对象之间的链接。
泛化(Generalization)是一种一般/特殊关系,
优先队列通常使用堆实现,对应大顶堆和小顶堆,存在最大优先队列和最小优先队列。
快速排序输入数据有序反而使其效率最低。
若数据基本有序则插入排序是最佳选择。
折半查找法无论元素是否在数组中,最多与表中4个元素相比较。如果不在数组中,最多与表中的4个元素比较。