软件可靠性学习.pptx

上传人:莉*** 文档编号:73623207 上传时间:2023-02-20 格式:PPTX 页数:50 大小:2.04MB
返回 下载 相关 举报
软件可靠性学习.pptx_第1页
第1页 / 共50页
软件可靠性学习.pptx_第2页
第2页 / 共50页
点击查看更多>>
资源描述

《软件可靠性学习.pptx》由会员分享,可在线阅读,更多相关《软件可靠性学习.pptx(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第1页/共50页提要:软件可靠性概念软件失效的内涵软件可靠性的发展第2页/共50页第一阶段:(1950-1967年)软件可靠性学科萌芽时期。软件可靠性发展至今可分为下列三个阶段:第二阶段:(1968-1987年)软件可靠性学科的形成时期。第三阶段:(1988年至今)软件可靠性向工程应用过渡的时期。第3页/共50页对软件可靠性的要求l软件应用广泛;l软件必须满足用户要求,又要稳定可靠的完 成用户的任务;l软件可靠性的重要程度依赖于风险成本;l软件规模、复杂性、重要性的增加给 软件可靠性带来挑战。第4页/共50页超高可靠性要求的领域l航空航天领域;l汽车发动机控制;l轨道、列车控制系统;l医疗设备

2、;l金融管理系统;第5页/共50页软件的状况l硬件飞速发展,软件不相适应,硬件越来越可靠,软件虽然采取了很多办法,但还是系统崩溃的主要原因;l大部分的软件不是很可靠。第6页/共50页软件不可靠性的因素l不完善的需求定义;l客户与开发人员缺乏沟通;l逻辑设计错误;l偏离软件需求;l缺少测试过程;l编码错误;l编码与文档不一致;第7页/共50页因软件设计故障与因计算机硬件设计故障而引发的系统失效的比例大约是:10:1 运行软件的驻留故障密度(每千行代码的故障数目):要求很高的关键财务或财产软件为:每千行代码 110个故障 关键的生命软件为:每千行代码0.011个故障 IEEE将软件可靠性定义为:系

3、统在特定环境下,在给定的时间内无故障运行的概率。软件可靠性是对软件在设计、开发以及所预定的环境下具有能力的置信度的一个度量,是衡量软件质量的主要参数之一。而软件测试则是保证软件质量、提高软件可靠性的最重要手段。软件可靠性问题第8页/共50页软件缺陷与故障1、软件缺陷和软件故障案例案例1 美国迪斯尼公司的狮子王游戏软件bug 兼容性问题案例2 美国航天局火星登陆事故 系统测试 衔接问题 案例3 跨世纪“千年虫”问题 案例4 爱国者导弹防御系统炸死自家人 系统时钟误差积累 案例5 Windows 2000 中文输入法漏洞案例6 金山词霸bug 上述所有实例中的软件问题在软件工程或软件测试中都被称为

4、软件缺陷或软件故障。第9页/共50页软件缺陷的定义至少满足下列5个规则之一才称发生了一个软件缺陷(software bug)1)软件未实现产品说明书要求的功能;2)软件出现了产品说明书指明不应该出现的错误;3)软件实现了产品说明书未提到的功能;4)软件未实现产品说明书未提及但应实现的功能;5)软件难以理解、不易使用、运行缓慢,用户评价不好。举例:计算器内的嵌入式软件举例:计算器内的嵌入式软件第10页/共50页“看不到”软件的特殊性决定了缺陷不易看到“看到但是抓不到”发现了缺陷,但不易找到问题发生的原因所在软件缺陷的特征第11页/共50页软件可靠性的基本知识软件可靠性的基本知识Contents:

5、软件可靠性的基本概念软件可靠性的基本概念 软件可靠性的基本特征量软件可靠性的基本特征量软件可靠性设计软件可靠性设计第12页/共50页软件可靠性的基本概念软件可靠性的基本概念一、软件的环境条件一、软件的环境条件 二、时间的度量二、时间的度量三、软件的故障三、软件的故障 四、影响软件可靠性因素四、影响软件可靠性因素软件可靠性的基本知识软件可靠性的基本知识软件可靠性的基本特征软件可靠性的基本特征(可靠性参数可靠性参数)1.1.系统不工作次数系统不工作次数 2.2.系统平均不工作间隔时间系统平均不工作间隔时间(MTBDMTBD)3.3.有效性有效性(A)4.(A)4.平均修复时间(平均修复时间(MTT

6、RMTTR)5.5.平均不工作时间(平均不工作时间(MDTMDT)6.6.初期故障率初期故障率7.7.偶然故障率偶然故障率 8.8.使用方误用率使用方误用率9.9.用户提出补充要求数用户提出补充要求数 10.10.处理能力处理能力第13页/共50页随着计算机软件的飞速发展,软件可靠性已变得随着计算机软件的飞速发展,软件可靠性已变得越来越重要。据统计,计算机系统中,越来越重要。据统计,计算机系统中,由于软件由于软件错误引起的故障占所有故障的错误引起的故障占所有故障的6565。究其原因究其原因是软件太复杂了,一个小小的程序,其是软件太复杂了,一个小小的程序,其可能的路径可以是天文数字,以致于在软件

7、开发可能的路径可以是天文数字,以致于在软件开发过程中难以对其作穷尽的测试,或者说难于完全过程中难以对其作穷尽的测试,或者说难于完全排除软件缺陷。排除软件缺陷。软件可靠性的基本知识软件可靠性的基本知识第14页/共50页为了说明软件的复杂性,让我们考虑一个由为了说明软件的复杂性,让我们考虑一个由1010至至2020条条高级语言构成的程序,其控制流程图如图所高级语言构成的程序,其控制流程图如图所示。示。软件可靠性的基本知识软件可靠性的基本知识第15页/共50页图中每个结点或圆圈代表一段可能以转移语句结束的图中每个结点或圆圈代表一段可能以转移语句结束的顺序执行语句,每条弧代表两段程序间的控制转移。顺序

8、执行语句,每条弧代表两段程序间的控制转移。假设程序含有一个最少重复假设程序含有一个最少重复2020次次的循环语句,而在循的循环语句,而在循环体内,则有一些嵌套的条件语句。环体内,则有一些嵌套的条件语句。假设程序中所有判断都是相互独立的,由于有假设程序中所有判断都是相互独立的,由于有5 5条贯穿条贯穿循环体的路径:循环体的路径:即即cdefhmcdefhm;cdefimcdefim;cdegjmcdegjm;cdegkmcdegkm;cdlmcdlm。软件可靠性的基本知识软件可靠性的基本知识第16页/共50页那么从点那么从点A A到点到点B B的所有独立路径数为:的所有独立路径数为:5 5202

9、0+5+51919+5+51 1,约为,约为10141014或或10161016亿。如果考亿。如果考虑程序输入数据的变化,那情况就更为复杂虑程序输入数据的变化,那情况就更为复杂了。了。可见,软件可靠性问题在软件工程实可见,软件可靠性问题在软件工程实践中极为重要,对软件可靠性问题的研究践中极为重要,对软件可靠性问题的研究在国际上已十分活跃。在国际上已十分活跃。软件可靠性的基本知识软件可靠性的基本知识第17页/共50页软件可靠性的基本概念软件可靠性的基本概念关于软件可靠性的确切定义,国际学术界曾经有过长期关于软件可靠性的确切定义,国际学术界曾经有过长期的争论。对软件可靠性定义的理解的争论。对软件可

10、靠性定义的理解有广义和狭义两种:有广义和狭义两种:广义的可靠性:广义的可靠性:是指一切旨在避免、减少、处理、度量软件故障是指一切旨在避免、减少、处理、度量软件故障(错误、缺陷、失效)的分析、设计、测试方法、(错误、缺陷、失效)的分析、设计、测试方法、技术和实践活动。技术和实践活动。软件可靠性的基本知识软件可靠性的基本知识第18页/共50页与之相关的内容有软件可靠性度量、软件可靠性设与之相关的内容有软件可靠性度量、软件可靠性设计、软件可靠性建模、软件可靠性测试和软件可靠计、软件可靠性建模、软件可靠性测试和软件可靠性管理等。性管理等。狭义的可靠性:是指软件无失效运行的定量度量。是指软件无失效运行的

11、定量度量。与之相关的内容有与之相关的内容有软件可靠性度、软件软件可靠性度、软件失效强度和软件平均失效时间失效强度和软件平均失效时间等。等。软件可靠性的基本知识软件可靠性的基本知识第19页/共50页软件可靠性的基本概念软件可靠性的基本概念一、软件的环境条件一、软件的环境条件 二、时间的度量二、时间的度量三、软件的故障三、软件的故障 四、影响软件可靠性因素四、影响软件可靠性因素软件可靠性的基本知识软件可靠性的基本知识第20页/共50页一、软件的环境条件一、软件的环境条件 环境条件包括与程序存储有关的环境条件包括与程序存储有关的计算机及其操作系计算机及其操作系统。统。例如计算机型号、字长、内存容量、

12、外存介质的数例如计算机型号、字长、内存容量、外存介质的数量及容量、输入和输出设备的数量、通信网络、操作系量及容量、输入和输出设备的数量、通信网络、操作系统和数据管理系统、编译程序及其他支持软件等。统和数据管理系统、编译程序及其他支持软件等。这些因素对程序的运行有很大的影响,这些因素对程序的运行有很大的影响,但在使用中但在使用中一般没有变化。一般没有变化。环境条件还包括环境条件还包括软件的输入分布。软件的输入分布。软件的输入软件的输入有外部和内部输入:有外部和内部输入:软件可靠性的基本知识软件可靠性的基本知识第21页/共50页程序在启动运行时,需要给变量赋值程序在启动运行时,需要给变量赋值,即给

13、程序提即给程序提供输入数据供输入数据,输入的数据可能由输入的数据可能由外部设备输入,外部设备输入,也也可能由早已存储在可能由早已存储在计算机内计算机内等待读取。等待读取。程序运行一次所需的输入数据构成程序输入空间程序运行一次所需的输入数据构成程序输入空间的一个元素,这个元素是一个多维向量。的一个元素,这个元素是一个多维向量。全部输入向量的集合构成程序的输入空间。全部输入向量的集合构成程序的输入空间。一组输入数据经过程序处理后得到一组输出数据,这一组输入数据经过程序处理后得到一组输出数据,这些输出数据构成一个输出向量,全部输出向量的集合些输出数据构成一个输出向量,全部输出向量的集合构成程序的输出

14、空间。构成程序的输出空间。软件可靠性的基本知识软件可靠性的基本知识第22页/共50页程序输入空间的元素数量非常庞大,程序运行中程序输入空间的元素数量非常庞大,程序运行中每个元素被选用的概率各不相同,形成一定的每个元素被选用的概率各不相同,形成一定的概概率分布,率分布,我们称此为我们称此为程序运行剖面,程序运行剖面,程序的不同程序的不同的运行状态,对应于不同的运行剖面。的运行状态,对应于不同的运行剖面。软件操作剖面:软件操作剖面:通常是指软件运行的通常是指软件运行的输入空间输入空间及及其概率分布。其概率分布。软件的输入空间软件的输入空间是指软件所有可能的输入值构是指软件所有可能的输入值构成的空间

15、。按照欧空局标准的定义,软件的操作成的空间。按照欧空局标准的定义,软件的操作剖面是指剖面是指“对系统使用条件的定义。即系统的输对系统使用条件的定义。即系统的输入值用其按时间的分布或按它们在可能输入范围入值用其按时间的分布或按它们在可能输入范围内的出现概率的分布来定义内的出现概率的分布来定义”。软件可靠性的基本知识软件可靠性的基本知识第23页/共50页二、时间的度量二、时间的度量1.1.日历时间日历时间软件的测试和运行以日、周、月、年等为计时单位。软件的测试和运行以日、周、月、年等为计时单位。2.2.时钟时间时钟时间软件从运行开始,到运行结束以时、分、秒为计时单软件从运行开始,到运行结束以时、分

16、、秒为计时单位。其中包括等待时间和其他辅助位。其中包括等待时间和其他辅助时间,但不包括停机占用时间。时间,但不包括停机占用时间。3.3.执行时间执行时间计算机在执行程序时,实际占用中心处计算机在执行程序时,实际占用中心处理器(理器(CPUCPU)的时间,又称)的时间,又称CPUCPU时间。时间。软件可靠性的基本知识软件可靠性的基本知识第24页/共50页三、软件的故障三、软件的故障软件可靠性工程的主要目标是保证提高软件可靠性。软件可靠性。为达到这一目标,显然首先要弄清软件为什么会出现故障。只有这样,才有可能在软件开发过程中减少导致软件故障的隐患,且一旦出现什么故障,有可能采取有效措施加以清除。弄

17、清软件故障机理故障机理是软件可靠性分析的根本目标。由于软件内部逻辑复杂,运行环境动态变化,且不同的软件差异可能很大,因而软件故障机理可能有不同的可能有不同的表现形式。表现形式。软件可靠性的基本知识软件可靠性的基本知识第25页/共50页譬如譬如有的故障过程比较简单,易于追踪分析,而有的故障过程比较简单,易于追踪分析,而有的故障过程可能非常复杂,难于甚至不可能加有的故障过程可能非常复杂,难于甚至不可能加以详尽描述和分析。尤其是运行于高度复杂实时以详尽描述和分析。尤其是运行于高度复杂实时环境中的大型软件。环境中的大型软件。但总的说来,软件故障机理可描述为:但总的说来,软件故障机理可描述为:软件失误、

18、软件缺陷、软件错误和软件故障。软件失误、软件缺陷、软件错误和软件故障。开发人员产生 在开发过程中 存在 在产品中 用户经历的 在运行时失误缺陷 失效产品有故障 在一定环境中软件可靠性的基本知识软件可靠性的基本知识第26页/共50页1 1软件缺陷软件缺陷软件开发中残留的内在缺陷称为软件缺陷。这些软件开发中残留的内在缺陷称为软件缺陷。这些缺陷可以在软件生存期的各个阶段被引入。缺陷可以在软件生存期的各个阶段被引入。软件可靠性的基本知识软件可靠性的基本知识第27页/共50页在软件开发的各阶段的各阶段,软件始终离不开人的参与,而人难免会犯错误,这样就必然给软件留下不良的痕迹。例如一段程序进行某些数据处理

19、,若在处理过程中就产生软件错误,则说明这段程序存在缺陷或缺少一个程序段。软件缺陷软件缺陷是一个静止的现象一个静止的现象,只在一定的输入条件下才能被激活导致软件错误,而且软件错误也不一定导致软件故障。比如容错软件中的错误就可以被检测出来并可纠正或避免,而不导致故障。软件可靠性的基本知识软件可靠性的基本知识第28页/共50页2 2软件错误软件错误软件缺陷在一定条件下暴露并导致系统在运行中软件缺陷在一定条件下暴露并导致系统在运行中出现可感知的不正常、不正确、不按规范执行的出现可感知的不正常、不正确、不按规范执行的内部状态内部状态,则认为软件出现,则认为软件出现“错误错误”,简称出错。,简称出错。所谓

20、不正确的内部状态,是指在此状态下,当所谓不正确的内部状态,是指在此状态下,当正常的算法继续下去时,就会发生软件故障。正常的算法继续下去时,就会发生软件故障。软件错误是由于软件缺陷造成的。软件错误是由于软件缺陷造成的。一个错误可能是多个故障源。一个错误可能是多个故障源。软件可靠性的基本知识软件可靠性的基本知识第29页/共50页3 3软件故障软件故障在对错误不作任何纠正和恢复的情况下,导致系统的在对错误不作任何纠正和恢复的情况下,导致系统的输出不满足用户提供的正式文件上指明的要求,或双输出不满足用户提供的正式文件上指明的要求,或双方协议的条款,称为方协议的条款,称为软件的一次故障。软件的一次故障。

21、软件故障软件故障是由于软存错误造成的是由于软存错误造成的一种外部表现,它一种外部表现,它是动态的、程序执行过程中出现的行为表现。是动态的、程序执行过程中出现的行为表现。软件可靠性的基本知识软件可靠性的基本知识第30页/共50页综上所述,软件缺陷是人为错误。综上所述,软件缺陷是人为错误。当一个软件当一个软件缺陷缺陷被激活时,便产生一被激活时,便产生一个或多个软件个或多个软件错误错误;当软件当软件错误错误不加以纠正时,便不可避不加以纠正时,便不可避免地产生免地产生软件故障软件故障。同一个软件缺陷下可能产生不同的软件故障。同一个软件缺陷下可能产生不同的软件故障。软件可靠性的基本知识软件可靠性的基本知

22、识第31页/共50页四、影响软件可靠性因素四、影响软件可靠性因素软件可靠性因素:软件生存期内影响软件可软件可靠性因素:软件生存期内影响软件可靠性的因素。靠性的因素。显然,有许许多多因素可以影响软件可靠性,显然,有许许多多因素可以影响软件可靠性,包括技术的、社会的、经济的、甚至文化的,包括技术的、社会的、经济的、甚至文化的,因为在软件生存期的各个阶段均有人的干预,因为在软件生存期的各个阶段均有人的干预,而人的行为受到各方面因素的影响。而人的行为受到各方面因素的影响。软件可靠性的基本知识软件可靠性的基本知识第32页/共50页但从但从技术角度技术角度来看,影响软件可靠性的来看,影响软件可靠性的因素主

23、要包括因素主要包括:1.1.运行环境运行环境(剖面剖面)软件可靠性定义相对于运行环境而言,同软件可靠性定义相对于运行环境而言,同一软件在不同运行剖面下,其可靠性行为可能一软件在不同运行剖面下,其可靠性行为可能极不相同。极不相同。软件可靠性的基本知识软件可靠性的基本知识第33页/共50页我们知道,软件故障是软件缺陷在一定我们知道,软件故障是软件缺陷在一定输入情况下被激活的结果。于是可以将软件输入情况下被激活的结果。于是可以将软件输入域划分为输入域划分为两个部分两个部分(G(G和和F)F):G G 中的输入中的输入不会激活不会激活软件的缺陷,软件的缺陷,F F 中的输入中的输入恒激活恒激活软件缺陷

24、。如果运行剖面软件缺陷。如果运行剖面不包含不包含F F中的中的输入,则软件不会出现故障,输入,则软件不会出现故障,其可靠性恒为其可靠性恒为1 1。反之,如果运行剖面反之,如果运行剖面不包含不包含G G中的输入,中的输入,则每一输入情况下均出现故障。如果没有容错则每一输入情况下均出现故障。如果没有容错措施,则导致软件故障,措施,则导致软件故障,软件可靠性恒为软件可靠性恒为0 0。软件可靠性的基本知识软件可靠性的基本知识第34页/共50页2.2.软件规模软件规模如果软件只含一条指令,那么谈论软件可靠性问如果软件只含一条指令,那么谈论软件可靠性问题便失去意义。随着软件规模的增大,软件可靠题便失去意义

25、。随着软件规模的增大,软件可靠性问题愈显突出。性问题愈显突出。在我们考虑软件可靠性问题时,软件一般是指在我们考虑软件可靠性问题时,软件一般是指中中型以上软件型以上软件(4000(400050005000条以上语句条以上语句),这时可靠,这时可靠性问题难以对付。性问题难以对付。软件可靠性的基本知识软件可靠性的基本知识第35页/共50页3.3.软件内部结构软件内部结构软件内部结构一般比较复杂,且动态变软件内部结构一般比较复杂,且动态变化,对可靠性的影响也不甚清楚。化,对可靠性的影响也不甚清楚。但总的说来,结构越复杂,软件复杂度越但总的说来,结构越复杂,软件复杂度越高,内含缺陷数越多,因而软件可靠度

26、越低。高,内含缺陷数越多,因而软件可靠度越低。软件可靠性的基本知识软件可靠性的基本知识第36页/共50页4.4.软件可靠性设计技术。软件可靠性设计技术。一般是指软件设计阶段中采用的用以采用的用以保证和提高软什可靠性为主要目标的软件技术。保证和提高软什可靠性为主要目标的软件技术。如故障模式与影响分析(FMECA)(FMECA)、故障故障树分析树分析(FTA)(FTA)等等。显然采用或不采用软件可靠性设计技术对软件可靠性必有影响。软件可靠性的基本知识软件可靠性的基本知识第37页/共50页5.软件可靠性测试研究表明,软件测试方法与资源投入对软件可靠性有不可忽视的影响。6.软件可靠性管理软件可靠性管理

27、软件可靠性管理旨在系统管理软件生存期各阶段软件生存期各阶段的可靠性活动。的可靠性活动。使之系统化、规范化、一体化,这样就可以避免许多人为错误,以提高软件可靠性.7.7.软件开发人员能力和经验软件开发人员能力和经验软件可靠性的基本知识软件可靠性的基本知识第38页/共50页软件工程表明,开发方法对软件可靠性有显著软件工程表明,开发方法对软件可靠性有显著影响。与非结构化方法比较,结构化方法可以影响。与非结构化方法比较,结构化方法可以明显减少软件缺陷数。明显减少软件缺陷数。8.8.软件开发方法软件开发方法研究表明,程序语言对软件可靠性有影响。研究表明,程序语言对软件可靠性有影响。譬如,结构化语言譬如,结构化语言AdaAda优于优于FortranFortran语言,而软语言,而软件测试工具优劣则影响测试效果。件测试工具优劣则影响测试效果。9.9.软件开发环境软件开发环境第39页/共50页软件可靠性的基本特征软件可靠性的基本特征(可靠性参数可靠性参数)第40页/共50页软件可靠性的基本特征软件可靠性的基本特征(可靠性参数可靠性参数)第41页/共50页第42页/共50页第43页/共50页第44页/共50页第45页/共50页第46页/共50页第47页/共50页第48页/共50页第49页/共50页感谢您的观看!第50页/共50页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁