软件可靠性问题已被越来越多的软件工程专家所重视,人们已开始投入大量的人力、物力去研究软件可靠性的设计、评估和测试等课题。以下多个方面可以反映出软件可靠性问题对软件工程实践,乃至对生产活动和社会活动产生的深远影响。
(1)软件失效可能造成灾难性的后果。一个最显著的例子就是由于控制系统的Fortran 程序中少了个逗点,致使控制系统未能发出正确的指令,最终使美国的一次宇宙飞行失败。而目前由于计算机和软件在各行各业中应用的日益广泛和深入,例如军用作战系统、民航指挥系统、银行支付系统和交通调控系统等,一旦发生严重级别的软件失效,轻则造成经济损失,重则危及人们的生命安全,危害国家安全。
(2)软件的失效在整个计算机系统失效中的比例较高。某研究机构曾经作过统计,在计算机系统的失效中,有80%和软件有关。原因是软件系统的内容结构太复杂了,一个较简单的程序,其所有的路径数就可能是一个天文数字。在软件开发的过程中,很难用全路径覆盖方式的测试去发现软件系统中隐藏的所有缺陷,也就是说,很难完全排除软件缺陷。
(3)相比硬件可靠性技术,软件可靠性技术很不成熟,这就加剧了软件可靠性问题的重要性。例如在硬件可靠性领域,故障树分析(Fault Tree Analysis,FTA)、失效模式与效应分析(Failure Made And Effect Analysis,FMEA)等技术比较成熟,容错技术也有广泛应用,但在软件可靠性领域,这些技术似乎尚未定型。
(4)与硬件元器件成本急剧下降形成鲜明对比的是,软件费用呈有增无减的势头,而软件可靠性问题是造成费用增长的主要原因之一。
(5)计算机技术获得日益广泛的应用,随着计算机应用系统中软件成分的不断增加,使得系统对于软件的依赖性越来越强,软件对生产活动和社会
生活的影响越来越大,从而增加了软件可靠性问题在软件工程领域乃至整个计算机工程领域的重要性。
软件可靠性问题的重要性凸显了发展以发现软件可靠性缺陷为目的的可靠性设计与测试技术的迫切性。
领取专属 10元无门槛券
私享最新 技术干货