background image

  

(7)许多软件的开发和运行涉及机构、体制和管理方式等问题,还会涉及到人们的观念

和心理。这些人的因素,常常成为软件开发的困难所在,直接影响到项目的成败。
  基于上述软件的特性,美国国防部中大量的软件系统其可靠性得不到保证,几乎没有
不存在错误的软件系统。尽管人们在软件开发过程中采用各种软件工程方法,应用各种软件
测试技术,但他们只能尽量发现错误、减少错误,却不可能彻底消除错误,无法实现真正意
义上的无错软件,百分之百的可靠。
  现今计算机硬件技术的发展,使得在计算机系统中的硬件可靠性越来越高,而软件可
靠性的问题变得日益突出。在一些关键的应用领域,如航空、航天等,对软件可靠性的要求
尤为重要。如在银行等服务性行业,其软件系统的可靠性也直接关系到自身的声誉和生存发
展竞争能力。由于软件中存在缺陷、错误和故障使软件失效很有可能造成巨大的损失或惨重
的灾难。研究结果表明:由于软件开发出现问题引起的系统失效与由于硬件设计或使用引起
的失效之比是

10:1。由此可见,软件在计算机系统中占有绝对重要的地位。于是,人们借

鉴硬件可靠性理论,提出了

“软件可靠性”概念,不再追求软件无错,而以统计的观点去判

断软件满足用户使用要求的程度。
  

1、软件可靠性

  软件可靠性借鉴了硬件可靠性的概念,即软件按规定的条件,在规定的时间内运行而
不发生故障的能力。软件可靠性与硬件可靠性不同的是:软件可靠性不但与软件中存在的缺
陷有关,而且与系统输入和系统使用有关。
  从定义上看,评价或测试一个软件的可靠性,最主要的是要确定系统怎样输入、如何使
用一整套的方法和策略。另一方面,软件可靠性是软件质量特性中重要的固有特性和关键因
素,软件可靠性反映了用户的质量观点。而软件的故障是由于软件的质量存在问题

——即它

固有的缺陷导致错误,进而使系统的输出不满足预定的要求,造成系统的故障。所谓按规定
的条件主要是指软件的运行

(使用)环境,它涉及软件运行所需要的一切支持系统及有关的

因素。如支持硬件、网络、操作系统及其它支持软件、输入数据、操作规程等。
  尽管当前的软件可靠性定义借用了硬件可靠性的定义,但事实上软件可靠性因软件的
特性它与硬件可靠性相比较是有很大的差别的,如:
  

(1) 硬件有老化损耗现象,硬件失效是物理故障,是器件物理变化的必然结果。软件不

发生变化,没有磨损现象,但软件由于长期使用软件性能下降,甚至完全失效的故障也是
有的。例如,无休止的线程、无释放的文件锁闭、数据污染、存储空间的彻底分裂与积聚差错

;

  

(2) 硬件可靠性的决定因素是时间,受设计、生产、运用的所有过程影响,软件可靠性的

决定因素是与输入数据有关的软件差错,是输入数据和程序内部状态的函数,更多地决定
于人

.