是最早的软件可靠性模型之一-read.ppt

  1. 1、本文档共79页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
是最早的软件可靠性模型之一-read

第三单元 软件可靠性 2007年8月12日 软件可靠性问题的提出 20世纪中期是计算机硬件飞速发展的阶段,但软件开发尚处于低级阶段,软件的重要性还不显著。 随着软件的大量使用和软件规模的迅速增长,软件可靠性低的问题日益显著,并作为“软件危机”的主要问题之一于1968年被提了出来。 据了解,美国航天飞机上飞行软件有50多万行源代码;而F一22战斗机上的飞行软件的源代码数更是高达150多万行。 另据美国军方的统计,美国军方在武器装备作战使用中遇到的问题,软件问题约占到70%左右。 由于软件故障造成的重大事故不乏其例 美国空军的范登堡中心在60年代后期发生过多次导弹试射失败的事故,事后发现几乎都是由软件错误造成的; F一18战斗机在海湾战争中,飞行控制软件共发生了500多次故障; 我国某型号飞机首飞前航空电子系统在地面测试中测出的故障共800多个,其中软件故障就达600多个,约占75%; 由于软件故障造成的重大事故不乏其例 1990年1月15日,美国一通信中转系统新投入使用的软件发生了错误,导致主干线远程网大规模崩溃; 美国的Therac-25放射性治疗仪由于软件存在缺陷导致几个癌症病人受到非常严重的过量放射性治疗,其中4个人因此死亡; 2002年11月28日,欧洲的亚里安娜5型火箭因发动机控制系统软件的错误而导致飞行试验失败。 软件可靠性的发展 在20世纪50年代末60年代初,计算机硬件从晶体管到集成电路,得到了飞速的发展.而软件开发仍处于很低级的阶段,极大地依赖于开发人员的编程技巧,且主要关注的是软件的功能。1968年在西德召开的国际软件工程会议上提出的“软件危机”的主要问题之一,就是软件可靠性低,经常出故障。从那时起,才开始认识到软件可靠性的重要性。据统计,计算机系统中,由于软件错误引起的故障占所有故障的65%。美国贝尔(Bell)实验室曾对一个ATT运行支持系统作了统计,发现80%的故障与软件有关。究其原因是软件太复杂了,一个小小的程序,其可能的路径可以是天文数字,以致于在软件开发过程中难以对其作穷尽的测试,或者说难于完全排除软件缺陷。 调用路径太多 软件与硬件的不同 (1)故障机理 硬件产生故障的原因有四个方面:即设计问题、生产过程中的问题、超载及耗损。硬件故障主要是由于耗损(物理退化)所致的,而软件不存在物理退化现象。这就决定了软件正确性与软件可靠性密切相关,一个正确的软件任何时刻均可靠;然而一个正确的硬件元器件或系统则可能在某个时刻故障。软件没有耗损问题并不等于没有可靠性问题,因在开发过程中常有一些随机因素,不可避免地会在软件中留下缺陷,因而软件也有可靠性问题。所以硬件的故障机理是耗损,而软件的故障机理就是残留缺陷在一定环境下造成的软件错误。 (2)复杂性 软件内部逻辑高度复杂,而硬件内部逻辑较为简单,这就在很大程度上决定了设计错误是导致软件故障的主要原因,而导致硬件故障的可能性则很小。 (3)唯一性 软件是唯一的,软件拷贝不改变软件本身,而任何两个硬件不可能绝对相同。 软件可靠性的核心是“思考”问题,软件中不可能象硬件那样分解成元部件,它只有语句。语言本身造成的软件故障较少,且通过静态测试(目测或编译)可加修正。软件错误来源主要是软件设计者的思维错误及软件的复杂性,这是难以控制的。故软件可靠性的提高需从人的思维正确性和减少软件的复杂性两方面着手。这正如我们用汉语写文章,观点有错误不能归咎于语言本身不好,而应归咎于人的思想。 软件故障 由于软件内部逻辑复杂,运行环境动态变化,且不同的软件差异可能很大,因而软件故障机理可能有不同的表现形式。譬如有的故障过程比较简单,易于追踪分析,而有的故障过程可能非常复杂,难于甚至不可能加以详尽描述和分析,尤其是运行于高度复杂实时环境中的大型软件。但总的说来,软件故障机理可描述为:软件缺陷→软件错误→软件故障。 (1)软件缺陷 软件缺陷(Default):软件开发中残留的内在缺陷称为软件缺陷。这些缺陷可以在软件生存期的各个阶段被引入。在软件开发的各阶段,软件始终离不开人的参与,而人难免会犯错误,这样就必然给软件留下不良的痕迹。例如一段程序进行某些数据处理,若在处理过程中就产生软件错误,则说明这段程序存在缺陷或缺少一个程序段。软件缺陷是一个静止的现象,只在一定的输入条件下才能被激活导致软件错误,而且软件错误也不一定导致软件故障,比如容错软件中的错误就可以被检测出来并可纠正或避免,而不导致故障。 (2)软件错误 软件错误(Error):软件缺陷在一定条件下暴露并导致系统在运行中出现可感知的不正常、不正确、不按规范执行的内部状态,则认为软件出现“错误”,简称出错。所谓不正确的内部状态,是指在此状态下,当正常的算

文档评论(0)

wangyueyue + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档