您好,欢迎访问三七文档
软件可靠性设计内容提纲21软件可靠性设计概述2软件避错设计3软件容错设计4软件可靠性设计准则31软件可靠性设计概述4•软件可靠性设计的实质是在常规的软件设计中,应用各种必须的方法和技术,使程序设计在兼顾用户的各种需求时,全面满足软件的可靠性要求。•三点说明:--过程:软件的可靠性设计应和软件的常规设计紧密地结合,贯穿于常规设计过程的始终。--范畴:这里所指的设计是广义的设计,它包括了从需求分析开始,直至实现的全过程。--目的:设计可靠的软件5软件可靠性要求软件可靠性定性要求软件可靠性定量要求定性要求:采用非量化的形式来设计、评价和保证软件的可靠性。定量要求:规定软件的可靠性参数、指标和评估、验证方法、用定量方法组织实施软件的可靠性设计、分析、测试、验证和管理。定性要求:包括定性设计要求和定性分析要求。6软件可靠性定性要求-示例序号定性设计方法目的1可靠性设计准则将可靠性要求及使用约束条件转化为软件开发设计的边界条件,规定专门的技术要求和设计准则,规范和约束软件的可靠性设计过程及行为2简化设计在综合权衡的基础上,降低软件模块复杂性与结构复杂性以降低软件的总体复杂性,提高基本可靠性3重用设计通过软件重用,在确保软件各组成单元可靠性的前提下,提高软件系统可靠性4健壮性设计提高软件防止错误输入的能力以及在发生故障时能有效地控制故障的蔓延和扩散,确保软件的固有可靠性5容错设计通过N版本程序设计和恢复块技术等实现软件容错,提高软件任务可靠性72020年3月9日星期一软件缺陷是软件的根本属性之一•软件可靠性是软件的生命,是软件的重要属性之一•软件失效是影响软件可靠性的关键•软件缺陷是导致软件失效的根本原因软件可靠性设计的实质8软件可靠性设计的实质软件可靠性设计的目的:将可靠性设计到软件产品当中;软件可靠性设计的实质:在软件设计的全过程中与软件缺陷作斗争的过程。一方面:尽量减少缺陷二方面:避免缺陷暴露软件产品缺陷失效可靠性属性属性环境作用激发影响9软件可靠性设计的手段手段软件可靠性设计方法软件可靠性设计准则10软件可靠性设计的方法软件避错设计软件容错设计:尽量减少缺陷:避免缺陷暴露避错设计是使软件产品在设计过程中,不发生错误或少发生错误的一种设计方法。总的设计原则是控制和减少程序的复杂性。软件避错设计体现了以预防为主的思想。容错设计是指在设计中赋予程序某种特殊的功能,使程序存在缺陷的情况下,系统仍然具有正常运行能力的一种设计方法11软件可靠性设计准则什么是软件可靠性设计准则是一种设计规范,从软件可靠性角度出发,设计人员必须遵守的设计要求,是已有的、相似软件的工程经验的总结,并系统化、科学化、规范化而成。122软件避错设计2020年3月9日星期一2.1概述避错设计体现了以预防为主的思想避错设计适用于一切类型的软件,是软件可靠性设计的首要方法软件避错设计,必须:(1)贯彻软件工程化,采用合适的软件开发过程、开发方法及工具(2)贯彻软件避错设计原理(3)重点考虑抽象与逐步求精、模块独立与信息隐藏、健壮性设计、形式化方法2020年3月9日星期一软件开发过程软件生存周期模型是指开发软件项目的总体过程思路。目前有若干种软件生存周期模型:瀑布模型原型模型增量模型螺旋模型喷泉模型基于知识的模型和变换模型等。2020年3月9日星期一软件设计方法软件设计方法是一种使用早已定义好的技术集及符合表示习惯来组织软件开发过程的方法。目前,已经提出了多种软件开发方法和技术,如:结构化方法(SA:StructureMethod)Jackson方法维也纳开发方法面向对象设计法(OOD:Objected-OrientedSoftwareDevelopment)基于模型的软件开发方法设计模式等2020年3月9日星期一软件工具软件工具一般被称为支持软件人员开发和为何软件活动而使用的软件。目前,与软件开发相关的常用工具软件主要有:MicrosoftOfficeVisioRationalRoseMicrosoftOfficeProject、MicrosoftVisualStudioTogetherCASEStudioMicrosoftVisualSourcesafeMicrosoftTeamSuitClearCase等。软件开发遵循软件工程化是避错设计的前提2020年3月9日星期一2.2软件避错设计原理日本的日野克重提出了七个软件避错设计原理:•简单原理•同型原理•对称原理•层次原理•线型原理•易证原理•安全原理183软件容错设计为什么需要进行软件容错设计无缺陷很难实现1、无缺陷首先需要软件的正确设计设计是否正确可以通过正确性证明。它具有一系列的理论基础,但实际上很难实现;设计是否正确也可以使用测试来验证。但是穷举测试在大多数情况下是不现实的。目前,测试只能发现缺陷,即使没有发现缺陷也保证软件绝对正确。缺陷避免很难实现2、实现无缺陷的第二个因素是实现途径的无故障,包括使用的开发环境、工具等对于软件来说就是软件开发环境,例如软件编译系统、链接系统、加载调试系统等,同样,这样的环境是否完美,存在着对于这些系统的正确性证明和确认问题3、第三个因素是满足设计预先规定的使用环境,在实际的工程中是很难做到的必须有技术保证系统在出现故障的情况下也能运行-即具有容错特性软件冗余•实现容错技术的关键思想是冗余。•基本思路是采用增加多余资源获得高可靠性。•冗余数不是越多可靠性就越高。•冗余的含意是指当系统无故障时取消这些冗余措施不会影响正常的运行。那到底可以对哪些资源进行冗余呢软件冗余资源软件冗余资源TIS时间冗余通过软件指令的再执行实现冗余信息冗余通过对信息中外加的一部分信息码或将信息存放在多个内存单元或将信息进行备份等实现冗余结构冗余通过余度配置模块单元或软件配置项来实现冗余,结构冗余包括结构静态冗余、结构动态冗余和结构混合冗余•任何一个计算系统都具有无形的时间资源T、需要处理的信息资源I和驻留在硬件上的软件配置项(结构资源S)等三个要素。软件容错技术软件容错技术信息容错:是在数据(信息)中外加的一部分信息,以检查数据是否发生偏差,并在有偏差时纠正偏差。目的是消除一些重要的外界数据通信的外在故障时间容错:通过软件指令的再执行来诊断系统是否发生瞬时故障,并排除瞬时故障的影响。目的是为了解决由于外界随机干扰造成的外在故障结构容错:是指配置实现同一功能的相异性设计的软件资源,目的是为了解决软件本身的设计有误引起的内在故障软件容错任务软件故障判断软件故障处理:软件故障检测技术:软件故障处理技术软件容错的前提通常是在程序运行中发现故障,而故障检测指检测系统中是否发生故障,指示故障状态,所以故障检测是软件容错的第一步。故障检测技术故障检测有二个问题需要考虑:检测点设置问题?判断故障的准则问题?①软件功能检测法②合理性检测法③基于监视定时器的检测法④软件自测试⑤基于冗余模块的表决判定检测法①相互怀疑原则②立即检测原则软件故障处理技术系统的重要程度决定了故障处理的策略对于每个可识别的故障来说,可以有5种处理方法:改正恢复报告立即停机自动复位1)软件信息容错2)软件时间容错3)软件结构容错2020年3月9日星期一软件容错设计1)信息容错-方式一信息容错方式之一通过在数据中外加一部分冗余信息码以达到故障检测、故障屏蔽或容错的目的。这种方式一般用于数据通信软件系统中,外加的一部分信息常以编码的形式出现,称为检错码或纠错码。常使用的检错和纠错码有奇偶检验码、检验和、海明码、循环冗余校验码(CRC校验)。另外,对于容易受到外界干扰的重要信息也可用这种信息容错进行故障屏蔽,消除对软件的破坏。不得使用一位的逻辑“0”或“1”来表示“安全”或“危险”状态;其判定条件不得依赖于全“0”或全“1”的输入。一般而言,外加的信息位越多,其检错和纠错的能力也就越强,但也不能无限制的增加。举例-通信方面RS-232串行通信中,数据格式:信息头长度信息体编码信息尾编码:检验和(checksum)每当数据发送时,checksum随数据一起发送过程:数据发送前,发送方运用checksum的计算方法算出其值接受方接受到数据时,也按同样的方法计算checksum结果判断:将接受方的计算结果与发送方发送的checksum比较,若相等则说明数据通信没有错误;若不相等则说明数据通信有故障2)信息容错-方式二信息容错方式之二对随机存取存储器(RAM)中的程序和数据,应存储在三个或三个以上不同的地方,而访问这些程序和数据都通过表决判断的方式(一致表决或多数表决)来裁决,以防止因数据的偶然性故障造成不可挽回的损失。这种方式一般用于软件中某些重要的程序和数据中,如软件中某些关键标志如点火、起飞、级间分离等信息。3)信息容错-方式三信息容错方式之三建立软件系统运行日志和数据副本,设计较完备的数据备份和系统重构机制,以便在出现修改或删除等严重误操作、硬盘损坏、人为或病毒破坏及遭遇灾害时能恢复或重构系统。优点是不必增加过多的硬件或软件资源,缺点是增加了时间开销和存储开销,降低了系统在无故障情况下的运行效率。1)软件信息容错2)软件时间容错3)软件结构容错2020年3月9日星期一软件容错设计时间容错是通过时间冗余的手段实现的。时间容错主要是基于“失败后重做(Retry-on-Failure)”的思想,即重复执行相应的计算任务以实现检错与容错。时间容错是不惜以牺牲时间为代价来换取软件系统高可靠性的一种手段,常被采用而行之有效的方法。时间容错有两种基本形式:指令复执和程序卷回。2)时间容错2)时间容错-指令复执指令复执是当应用软件系统检查出正在执行的指令出错后,让当前指令重复执行n次(n=3),若故障是瞬时性的干扰,在指令重复执行时间内,故障有可能不再复现,这时程序就可以继续往前执行下去。指令复执是在指令(语句)级作重复计算。是最简单和传统的时间容错方式。For(i=0,i3,i++){…strData=ReadData(…);//读入数据if(strDataisTrue){…//exitFor}…}3.4时间容错-程序卷回程序卷回是当系统在运行过程中一经发现故障,便可进行程序卷回,返回到起始点或离故障点最近的预设恢复点重试。程序卷回是一种后向恢复技术,是以事先建立恢复点为基础的ti故障点ti-1恢复点t2t1t01)软件信息容错2)软件时间容错3)软件结构容错2020年3月9日星期一软件容错设计3.5结构容错-概述结构容错是通过结构冗余的手段实现的两个通常的结构容错软件方案是N-版本程序设计NVP(N-VersionProgramming)和恢复块法RB(RecoveryBlock)将NVP和RB以不同的方式组合即可产生一致性恢复块、接受表决和N自检程序设计结构容错是基于软件相异性设计原理:软件相异性设计即由一个初始需求规范出发,几个独立的工作组独立设计出满足系统要求、能完成预先定义的功能实体,形成一个系统结构容错-概述(1)软件相异性设计原理可以通过多种方法达到:不同人员进行设计与开发需要使用不同的设计方法来实现需求。使用不同的程序设计语言来完成实现。要求系统分别使用不同的开发工具,且在不同的开发环境中完成。明确要求在实现的某些部分使用不同的算法。测试程序的规范、测试方法、测试程序、测试组织,尽可能由不重复的相互独立的人员组开发。最终规范与最终设计、最终编程由不重复的审核人员进行审核。结构容错恢复块N版本程序设计恢复块法RB恢复块法RB:每次模块处理结束时都要检验运算结果,在找出故障后,通过代替模块进行再次运算以便实现容错的概念。•使用形式化的方式,一个功能模块在使用恢复块时的原理如下所示证明T正确BYPELSEBYQELSEBYR……ELSE故障恢复块法RBM1A1A2M2A3M3MNAN验收测试失效基本块替换块验收测试N故障输入验收测试1“正确”输出成功“正确”输出实现恢复块的难点和
本文标题:软件可靠性设计
链接地址:https://www.777doc.com/doc-4263915 .html