北邮信息安全专业容错计算技术课件第6章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《北邮信息安全专业容错计算技术课件第6章.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息 安全 专业 容错 计算 技术 课件
- 资源描述:
-
1、第六章 软件容错技术 软件冗余.软件容错技术n概述n软件可靠性的基本概念n软件避错技术n软件容错技术n软件N版本设计技术n软件恢复技术n软件可靠性模型.概述n软件危机的产生n软件老化问题n软件可靠性技术的兴起.软件危机n1962年,“水手1号”因其机舱计算机导航程序差错未能到达进行,这是早期人类从软件差错中得到的重大教训n20世纪60年代后期,计算机用户首先意识到了软件危机:n软件产品迟迟不能交付、软件质量低劣、维护代价高昂;软件开发人员感到力不从心,对软件的正确性缺乏信心;高软件需求和低生产效率导致软件费用急剧上涨n1998年的软件工程NATO会议上,科学界和实业界终于一致承认了软件危机的存
2、在.软件故障的根源n软件错误n导致产生含有缺陷的软件的人为行动(国标GB/T 11457-1995)n软件误差n存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差n人为操作失误n软件运行过程中的非法输入.软件老化(Software aging)n软件老化是指软件系统运行速度的降低,或者是由于操作系统资源的耗尽、碎片以及错误的积累导致的程序突然崩溃 n主要是由于软件系统资源的损耗因其的,原因包括内存泄露、未释放的文件操作符、数字舍入错误、操作环境的数据损坏等n软件的缺陷等因素都会导致软件老化现象的产生,有效地方式是主动式容错策略,比如软件再生技术n软件再生技术:定期主动停止运行程序,
3、清理程序的内部环境,清除积累错误,然后重新启动软件使之进入一个正常的初始状态,从而避免因软件老化引起的突发性失效,提高软件系统的可靠性和可用性.软件可靠性的兴起n管理技术n程序设计方法学n验证技术.管理技术n软件行业管理n包括有关软件的政策、法律和标准化等问题n项目管理n针对一个具体软件开发项目进行n过程包括:制定开发目标和验收标准,以及阶段目标。根据软件生存周期(要求、说明、设计、实现、验证、运行和维护),在每一阶段具有标准文件,通过对文件的管理控制项目的管理n组织管理n通过合理分配项目成员的工作,使每个成员能动性充分发挥并使乘员减达到良好的协调.组织管理n主程序员负责制n主程序员负责指挥整
4、个项目开发组。主程序员负责设计任务和关键代码、对外交流等。n后备主程序员,负责备选方案。同时参与计划、设计、编码和测试等工作n其他成员是编程人员,负责管理程序库、文件、测试数据和测试结果n实践表明,主程序员负责制是生产高可靠软件产品的合理体制n编程秘书制n集体编程制.软件可靠性的兴起n管理技术n程序设计方法学n包括结构程序设计、程序综合、程序推导、函数程序设计、递归程序设计以及有关的形式说明和程序变换技术n这些技术是程序具有易于理解和验证的良好结构,但以运行效率为代价n为此,可以先设计一个良好结构的程序作为理解和验证的文本,然后用程序变换技术把它变换成一个高效运行的程序,最后运行n验证技术.软
5、件可靠性的兴起n管理技术n程序设计方法学n验证技术n程序测试:以发现差错为目的的过程,通过对被测试的结构分析(静态测试)或实际运行(动态测试)来实现n程序正确性证明:在不考虑程序运行环境条件下的确认程序正确性。方法包括Floyd-Manner的不变式推理方法、MchMarchy的递归归纳法、Horare的公理化方法和Dijkstra的弱谓词变换方法.软件容错技术n概述n软件可靠性的基本概念n软件避错技术n软件容错技术n软件N版本设计技术n软件恢复技术n软件可靠性模型.软件可靠性的基本概念n软件可靠性n主要指标n软件故障、失效和错误.n软件可靠性 1983年,IEEE对出如下定义:n在规定的条件
6、下,在规定的时间内,软件不引起系统失效的概率n在规定的时间周期内,在所述条件下程序执行所要求的功能的能力n经美国标准化研究所批准作为美国的国家标准n1989年我国国标GB/T-11457采用了这个定义.n几个概念n正确性n软件系统本身没有故障,并能证明它完全符合要求n健壮性n在硬件发生故障或输入不正常或环境发生异常情况等条件下,软件仍能进行适当工作n可靠性.第一节 软件可靠性的基本概念软件可靠性主要指标软件故障、失效和错误.n主要指标n软件可靠度函数R(t)n软件失效分布函数F(t)对于一个系统,如果只考虑系统成功与失败tetR)(0)0(1)()(FtFtR.n主要指标n失效密度函数f(t)
7、系统在t时刻单位时间内的失效概率.n主要指标n软件失效率函数 取一个不太长的时间t,可以假设)(ttetR)()()(常数t.)(t软件 和硬件 的比较)(t.软件失效率.第一节 软件可靠性的基本概念软件可靠性主要指标软件故障、失效和错误.n软件故障、失效和错误n故障(fault):软件的内在缺陷称为故障,可能在软件生存期的各个阶段产生n错误(error):故障所造成的后果,亦即导致运行中出现的异常状态n失效(failure):错误造成系统的输出不满足最初对软件的要求和说明.n软件故障的性质n对人的依赖性n固有性n对环境的敏感性n传播性.软件可靠性技术的架构.软件容错技术n概述n软件可靠性的基
8、本概念n软件避错技术n软件容错技术n软件N版本设计技术n软件恢复技术n软件可靠性模型.软件避错技术n形式说明n可靠性程序设计的基本技术n程序验证技术.软件避错技术-形式说明n软件开发的目标是要把问题用一种严格的、数据化或逻辑化的语言把问题描述出来,得到问题的形式说明n形式说明是程序设计和验证的基础n分类:n描述问题功能性质的说明,通常把问题描述成一个函数,问题的输入对应于函数的参数,输出则对应于函数的值n描述问题逻辑性质的说明,通常把问题描述成一个过程、流程图或方框图.功能说明n功能说明有限制输入取值范围的输入说明和规定输出结果的输出说明组成n例:求自然数的阶乘Function f(n:Int
9、eger,n=0):Integer;f:=n!;Return;.逻辑说明n对有些问题,给出问题的逻辑描述更容易,或者给出逻辑描述后,换换成程序更容易,在此情况下需要给出问题的逻辑说明n例计算一个整数集合中大与整数a的元素个数.可靠程序设计的基本技术n程序综合技术n首先把形式说明变为解的存在性定理,容纳后寻找这个存在性定理的构造型证明,最后把证明过程转换为程序n递归程序设计技术n软件结构化设计技术)!)(0:)(nffnIntegernn.递归程序设计技术n步骤1、定义参数上的一个良序集合,以便程序一定能中止2、对参数进行适当的分析,其中必须包括一种易于计算的特殊情形作为结束条件(非递归分支)3
10、、计算出特殊情况下的函数值4、找出一般情况下函数值与具有较小参数的函数值之间的等式关系,得到递归分支5、把所有分支用条件表达式综合为一个程序.软件结构化设计技术n结构化设计存在于软件生存期的说明、设计和实现阶段n设计阶段的数据流设计n设计阶段的数据结构设计技术n实现阶段的结构化程序设计技术.数据流设计n1974年作为软件系统设计的自顶向下方法有Constantine提出,突出了模块化的设计思想,力图在软件设计的开始就把所设计的系统划分为若干相互独立的模块,使每个模块要完成的任务明确而单纯,达到程序设计简单、易于理解、调试和修改的目的n数据流设计以加强模块的独立性为基础,要求模块间的联系尽可能弱
11、,信息和数据交流尽可能少,模块内部联系尽可能强,信息和数据交流尽可能多,几所谓的弱耦合性和强内聚性设计n为获得耦合性弱和内聚性强的模块划分,需要按层次来组织模块,顶层模块负责主要功能变换,顶层模块下属输入、输出和变换模块。当需要输入数据时,顶层模块调用其下属输入模块,。,之所以需要经过模块传递和变换输入、输出信息,是为了保证设计的弱耦合性和强内聚性.数据结构设计n数据结构设计方法由Jackson提出,这种方法试图把描述问题的数据结构映射为程序结构,因为形式说明中的数据结构通常是定义明确的,所以,从同样的形式说明出发,用此方法可以得到类似的程序结构.结构化程序设计n结构:顺序型、条件选择型和循环
12、型n结构定理:任何一个适当程序在功能上等价于一个结构化程序,而且,这个结构化程序可以使用原来程序中的函数、谓词以及赋值语句、条件测试语句n定理中的适当程序满足:n具有一个入口和一个出口n对于程序中的每一条语句都存在一个合法输入,使得程序控制流从输入出发经过这个语句然后达到输出结构化程序的实质是取消转移语句goto.软件避错技术n形式说明n可靠性程序设计的基本技术n程序验证技术.程序验证技术n可靠程序设计技术可以减少软件故障的发生,但像任何设计过程一样,不能避免设计故障的发生。程序验证技术通过检查程序与其说明的符合性来发现故障、消除故障,从而提高软件可靠性.程序验证技术n程序正确性证明n程序的自
展开阅读全文