软件可靠性介绍
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
❖ 从那时起,业界才开始认识到软件可靠性的重要 性。
软件故障
软件可靠性
软件故障的特点
激活软件 缺陷的数据
软件缺陷
输入域
软件
不可接受的结果 (软件故障) 输出域
举例——由于软件故障造成的重大事故
❖ 美国空军的范登堡中心在60年代后期发生过多次导 弹试射失败的事故,事后发现几乎都是由软件错误 造成的;
软件危机的具体体现
❖ 5. 软件产品难以维护
软件产品本质上是开发人员的代码化的逻辑思 维活动,他人难以替代。除非是开发者本人,否 则很难及时检测、排除系统故障。
为使系统适应新的硬件环境,或根据用户的需 要在原系统中增加一些新的功能,又有可能增加 系统中的错误。
软件危机的具体体现
❖ 6. 软件缺少适当的文档资料
在双方互不充分了解的情况下,就仓促上阵设 计系统、匆忙着手编写程序,这种“闭门造车” 的开发方式必然导致最终的产品不符合用户的实 际需要。
软件危机的具体体现
❖ 4. 软件产品质量无法保证
系统中的错误难以消除。软件是逻辑产品,质 量问题很难以统一的标准度量,因而造成质量控 制困难。
软件产品并不是没有错误,而是盲目检测很难 发现错误,而隐藏下来的错误往往是造成重大事 故的隐患。
软件可靠性介绍
目录
❖一、软件危机介绍 ❖二、软件可靠性概述 ❖三、软件可靠性的检测方法 ❖四、提高软件可靠性的方法
一、软件危机介绍
什么是软件危机
❖ 软件危机(software crisis),是指落后 的软件生产方式无法满足迅速增长的计算 机软件需求,从而导致软件开发与维护过 程中出现一系列严重问题的现象。
软件可靠性定义
❖ “在规定的条件下,在规定的时间内,软件不引起失 效的概率”。
❖ 规定的条件:
软件运行的软、硬件环境 软件操作剖面:软件运行的输入空间及其概率分布
❖ 规定的时间:
日历时间 时钟时间 执行时间
软件可靠性问题的提出
❖ 1968年在联邦德国召开的北大西洋公约组织国际 软件工程会议上提出的“软件危机”的主要问题 之一,就是软件可靠性低,经常出故障。
软件危机的背景
❖ 20 世纪60年代以前,计算机刚刚投入实际使用,软件设计往 往只是为了一个特定的应用而在指定的计算机上设计和编制, 采用密切依赖于计算机的机器代码或汇编语言;软件的规模比 较小,文档资料通常也不存在,很少使用系统化的开发方法; 设计软件往往等同于编制程序,基本上是个人设计、个人使用、 个人操作、自给自足的私人化的软件生产方式。
❖ 60年代中期,大容量、高速度计算机的出现,使计算机的应 用范围迅速扩大,软件开发急剧增长。高级语言开始出现;操 作系统的发展引起了计算机应用方式的变化;大量数据处理导 致第一代数据库管理系统的诞生。软件系统的规模越来越大, 复杂程度越来越高,软件可靠性问题也越来越突出。原来的个 人设计、个人使用的方式不再能满足要求,迫切需要改变软件 生产方式,提高软件生产率,软件危机开始爆发 。
❖ 硬件生产率大幅提高
❖ 软件规模增大,复杂度增大
以美国宇航局的软件系统为例:
1963年 水星计划系统
200万条指令
1967年 双子星座计划系统 400万条指令
1973年 阿波罗计划系统 1000万条指令
1979年 哥伦比亚航天飞机系统 4000万条指令
❖ 软件生产率很低
❖ 硬、软件供需失衡
软件危机的具体体现
❖ 1. 软件开发进度难以预测
拖延工期几个月甚至几年的现象并不罕见,这 种现象降低了软件开发组织的信誉。
以丹佛新国际机场为例:
该机场规模是曼哈顿机场的两倍,宽为希思机场的10 倍,可以全天侯同时起降三架喷气式客机;投资1.93亿 美元建立了一个地下行李传送系统,总长21英里,有 4000台遥控车,可按不同线路在20家不同的航空公司柜 台、登机门和行李领取处之间发送和传递行李;支持该 系统的是5000个电子眼、400台无线电接受机、56台条 形码扫描仪和100台计算机。按原定计划要在1993年万 圣节前启用,但一直到1994年6月,机场的计划者还无 法预测行李系统何时能达到可使机场开放的稳定程度。
缺乏必要的文档资料或者文档资料不合格,将 给软件开发和维护带来许多严重的困难和问题。
最典型失败系统的例子是:
IBM公司开发OS/360系统,共有4000多个模 块,约100万条指令,投入5000人年,耗资数 亿美元,结果还是延期交付。在交付使Байду номын сангаас后的系 统中仍发现大量(2000个以上)的错误。
二、软件可靠性概述
软件危机的具体体现
❖ 2. 软件开发成本难以控制
投资一再追加,令人难于置信。往往是实际成 本比预算成本高出一个数量级。而为了赶进度和 节约成本所采取的一些权宜之计又往往损害了软 件产品的质量,从而不可避免地会引起用户的不 满。
软件危机的具体体现
❖ 3. 用户对产品功能难以满足
开发人员和用户之间很难沟通、矛盾很难统一。 往往是软件开发人员不能真正了解用户的需求, 而用户又不了解计算机求解问题的模式和能力, 双方无法用共同熟悉的语言进行交流和描述。
事故原因分析
❖ 据统计,计算机系统中,由于软件错误引起的故障 占所有故障的65%。
❖ 美国贝尔(Bell)实验室曾对一个AT&T运行支持 系统作了统计,发现80%的故障与软件有关。
❖ 究其原因是软件太复杂了,一个小小的程序,其可 能的路径可以是天文数字,以致于在软件开发过程 中难以对其作穷尽的测试,或者说难于完全排除软 件缺陷。
❖ 我国某型号飞机首飞前航空电子系统在地面测试中 测出的故障共800多个,其中软件故障就达600多个, 约占75%;
❖ 美国的Therac-25放射性治疗仪由于软件存在缺陷 导致几个癌症病人受到非常严重的过量放射性治疗, 其中4个人因此死亡;
❖ 2002年11月28日,欧洲的亚里安娜5型火箭因发动 机控制系统软件的错误而导致飞行试验失败。
软件危机的提出
❖ 1968年北大西洋公约组织的计算机科学家在联 邦德国召开国际会议,第一次讨论软件危机问题。
❖ 会上提出,软件危机的主要问题之一就是软件可 靠性低,经常出故障。
❖ 会上正式提出“软件工程”一词,从此一门新兴 的工程学科——软件工程学——为研究和克服软 件危机应运而生。
软件危机的形成原因
软件故障
软件可靠性
软件故障的特点
激活软件 缺陷的数据
软件缺陷
输入域
软件
不可接受的结果 (软件故障) 输出域
举例——由于软件故障造成的重大事故
❖ 美国空军的范登堡中心在60年代后期发生过多次导 弹试射失败的事故,事后发现几乎都是由软件错误 造成的;
软件危机的具体体现
❖ 5. 软件产品难以维护
软件产品本质上是开发人员的代码化的逻辑思 维活动,他人难以替代。除非是开发者本人,否 则很难及时检测、排除系统故障。
为使系统适应新的硬件环境,或根据用户的需 要在原系统中增加一些新的功能,又有可能增加 系统中的错误。
软件危机的具体体现
❖ 6. 软件缺少适当的文档资料
在双方互不充分了解的情况下,就仓促上阵设 计系统、匆忙着手编写程序,这种“闭门造车” 的开发方式必然导致最终的产品不符合用户的实 际需要。
软件危机的具体体现
❖ 4. 软件产品质量无法保证
系统中的错误难以消除。软件是逻辑产品,质 量问题很难以统一的标准度量,因而造成质量控 制困难。
软件产品并不是没有错误,而是盲目检测很难 发现错误,而隐藏下来的错误往往是造成重大事 故的隐患。
软件可靠性介绍
目录
❖一、软件危机介绍 ❖二、软件可靠性概述 ❖三、软件可靠性的检测方法 ❖四、提高软件可靠性的方法
一、软件危机介绍
什么是软件危机
❖ 软件危机(software crisis),是指落后 的软件生产方式无法满足迅速增长的计算 机软件需求,从而导致软件开发与维护过 程中出现一系列严重问题的现象。
软件可靠性定义
❖ “在规定的条件下,在规定的时间内,软件不引起失 效的概率”。
❖ 规定的条件:
软件运行的软、硬件环境 软件操作剖面:软件运行的输入空间及其概率分布
❖ 规定的时间:
日历时间 时钟时间 执行时间
软件可靠性问题的提出
❖ 1968年在联邦德国召开的北大西洋公约组织国际 软件工程会议上提出的“软件危机”的主要问题 之一,就是软件可靠性低,经常出故障。
软件危机的背景
❖ 20 世纪60年代以前,计算机刚刚投入实际使用,软件设计往 往只是为了一个特定的应用而在指定的计算机上设计和编制, 采用密切依赖于计算机的机器代码或汇编语言;软件的规模比 较小,文档资料通常也不存在,很少使用系统化的开发方法; 设计软件往往等同于编制程序,基本上是个人设计、个人使用、 个人操作、自给自足的私人化的软件生产方式。
❖ 60年代中期,大容量、高速度计算机的出现,使计算机的应 用范围迅速扩大,软件开发急剧增长。高级语言开始出现;操 作系统的发展引起了计算机应用方式的变化;大量数据处理导 致第一代数据库管理系统的诞生。软件系统的规模越来越大, 复杂程度越来越高,软件可靠性问题也越来越突出。原来的个 人设计、个人使用的方式不再能满足要求,迫切需要改变软件 生产方式,提高软件生产率,软件危机开始爆发 。
❖ 硬件生产率大幅提高
❖ 软件规模增大,复杂度增大
以美国宇航局的软件系统为例:
1963年 水星计划系统
200万条指令
1967年 双子星座计划系统 400万条指令
1973年 阿波罗计划系统 1000万条指令
1979年 哥伦比亚航天飞机系统 4000万条指令
❖ 软件生产率很低
❖ 硬、软件供需失衡
软件危机的具体体现
❖ 1. 软件开发进度难以预测
拖延工期几个月甚至几年的现象并不罕见,这 种现象降低了软件开发组织的信誉。
以丹佛新国际机场为例:
该机场规模是曼哈顿机场的两倍,宽为希思机场的10 倍,可以全天侯同时起降三架喷气式客机;投资1.93亿 美元建立了一个地下行李传送系统,总长21英里,有 4000台遥控车,可按不同线路在20家不同的航空公司柜 台、登机门和行李领取处之间发送和传递行李;支持该 系统的是5000个电子眼、400台无线电接受机、56台条 形码扫描仪和100台计算机。按原定计划要在1993年万 圣节前启用,但一直到1994年6月,机场的计划者还无 法预测行李系统何时能达到可使机场开放的稳定程度。
缺乏必要的文档资料或者文档资料不合格,将 给软件开发和维护带来许多严重的困难和问题。
最典型失败系统的例子是:
IBM公司开发OS/360系统,共有4000多个模 块,约100万条指令,投入5000人年,耗资数 亿美元,结果还是延期交付。在交付使Байду номын сангаас后的系 统中仍发现大量(2000个以上)的错误。
二、软件可靠性概述
软件危机的具体体现
❖ 2. 软件开发成本难以控制
投资一再追加,令人难于置信。往往是实际成 本比预算成本高出一个数量级。而为了赶进度和 节约成本所采取的一些权宜之计又往往损害了软 件产品的质量,从而不可避免地会引起用户的不 满。
软件危机的具体体现
❖ 3. 用户对产品功能难以满足
开发人员和用户之间很难沟通、矛盾很难统一。 往往是软件开发人员不能真正了解用户的需求, 而用户又不了解计算机求解问题的模式和能力, 双方无法用共同熟悉的语言进行交流和描述。
事故原因分析
❖ 据统计,计算机系统中,由于软件错误引起的故障 占所有故障的65%。
❖ 美国贝尔(Bell)实验室曾对一个AT&T运行支持 系统作了统计,发现80%的故障与软件有关。
❖ 究其原因是软件太复杂了,一个小小的程序,其可 能的路径可以是天文数字,以致于在软件开发过程 中难以对其作穷尽的测试,或者说难于完全排除软 件缺陷。
❖ 我国某型号飞机首飞前航空电子系统在地面测试中 测出的故障共800多个,其中软件故障就达600多个, 约占75%;
❖ 美国的Therac-25放射性治疗仪由于软件存在缺陷 导致几个癌症病人受到非常严重的过量放射性治疗, 其中4个人因此死亡;
❖ 2002年11月28日,欧洲的亚里安娜5型火箭因发动 机控制系统软件的错误而导致飞行试验失败。
软件危机的提出
❖ 1968年北大西洋公约组织的计算机科学家在联 邦德国召开国际会议,第一次讨论软件危机问题。
❖ 会上提出,软件危机的主要问题之一就是软件可 靠性低,经常出故障。
❖ 会上正式提出“软件工程”一词,从此一门新兴 的工程学科——软件工程学——为研究和克服软 件危机应运而生。
软件危机的形成原因