软件缺陷事件

来源:互联网 发布:linux上的tcpip协议栈 编辑:程序博客网 时间:2024/04/29 22:20

1.臭名昭著的软件错误用例

1.1.迪斯尼的狮子王---1994~1995

迪斯尼的狮子王是一款游戏。投入到市场的时候才被投诉玩家不能玩这款游戏,理由是在他们的系统上基本运行不起来。

后来证实,迪斯尼公司未能对市面上投入使用的许多不同类型的PC机进行广泛的测试,软件在极少数系统中运行正常--例如在迪斯尼程序员用来开发游戏的系统中运行正常,但在大多数公众使用的系统总却不能运行。

1.2.英特尔奔腾浮点除法缺陷---1994

弗吉利亚亚洲学院的博士发现了英特尔奔腾处理器这个除法错误(假如用该处理器计算(4195835/3145727) x 3145727-4195835结果不为零),他把问题发到因特网上,引起了一场风暴。英特尔推托这个精度的计算只在少数领域用到,大多数使用它们产品的用户不会有这个问题。但是这样的解释明显不能不能说服公众,连互联网媒体都把英特尔公司描绘成不关心客户和缺乏诚信者。最后,英特尔为自己处理软件缺陷的行为道歉并支付更换问题芯片的费用。

1.3.美国航天局火星基地“登录者号”探测器---1999

1999年12月3日,该探测器在试图在火星表面着陆的时候失踪了。经调查认定出现故障的原因极可能是一个数据位被意外置位(为什么不在内部测试的时候发现?)。登录探测器经过了多个小组测试。其中一个小组测试飞船的脚折叠过程,一个小组测试从后的招录过程。前一个小组不去注意着地数据位是否置位,后一个小组总是在开始测试之前复位计算机、清楚数据位。双方独立都做得很好,但是和在一起就不是这样了。

1.4.“爱国者”导弹防御系统---1991

爱国者导弹系统防御系统是里根总统提出的战略防御计划的缩略版本,尽管公众对于系统赞不绝口,但是它确实在实战中对抗几枚导弹失利,包括一次在沙特阿拉伯的多哈击毙了28名美国士兵。分析发现症结在于一个软件缺陷,系统时钟的一个很小的计时错误积累起来到14小时后,跟踪系统不再准确。

1.5.千年虫问题---1974

当年某个程序员为公司设计开发工资系统,使用的计算机存储空间很小,迫使他尽量节省每一个字节,其中有吧4位数年份缩减为2位数(例如1974直接用74表示)。因为工资系统相当于依赖日期的处理,所以他需要节省大量昂贵的存储空间。他简答地认为只有在到达2000年,那时的程序开始计算00,01这样的年份时问题才发生,而且他认为那以后系统肯定就升级了,现在可以忽略它。结果那一天到来了而他编写的这一道程序还在使用中,而这位程序员退休了,谁也不会想到如何深入到程序检查2000年兼容问题,更不用说修改了。后来估计通过修复,更换或升级来解决千年虫问题的费用达到数千亿美元。

 

0 0
原创粉丝点击