联系客服·网站地图·收藏本页·设为首页
软件工程当前位置:中国论文库 > 计算机论文 > 软件工程> 正文

产生软件产品可靠性问题的主要因素与解决方法

时间:2011-09-17作者:周荣波来源:中国论文库
字号:T|T

  摘要:进行软件产品的可靠性分析与评估,在提高可靠性的同时,确定合适的可靠性目标就显得尤为重要,本文从影响软件可靠性的因素、软件失效的原因等方面对软件产品的可

标签:

  摘要:进行软件产品的可靠性分析与评估,在提高可靠性的同时,确定合适的可靠性目标就显得尤为重要,本文从影响软件可靠性的因素、软件失效的原因等方面对软件产品的可靠性进行了分析,最后提出了解决软件可靠性问题的方法。

  关键词:软件可靠性;影响因素;解决方法

  1、软件可靠性的定义

  软件可靠性表明了一个程序按照用户的要求和设计的目标,执行其功能的正确程度。这要求一个可靠的程序应是正确的、完整的、一致的和健壮的。但在现实中,一个程序要达到安全可靠是不实际的,要精确地度量它也不现实。

  在一般情形下只能通过程序的测试,去度量程序的可靠性。基于这点,软件的可靠性定义为:“软件可靠性是软件在给定时间间隔及给定的环境条件下,按设计要求,成功地运行程序的概率。”在此定义中,明确地包含了以下几个因素。

  1.1环境条件

  在定义中,环境条件指的是软件的使用环境。它涉及该软件运行时需要的支持系统及有关的因素。规定软件的使用环境,是判定失效的责任在用户还是在软件的关键,也是给出准确可靠性度量的依据。

  所以,严格地说,描述软件可靠性所要求的使用环境,主要是描述对输入数据的要求及计算机当时的配置状态(即软件环境),同时假定其他一切支持系统及因素对该软件来说都是理想的,不会影响软件的运行。

  1.2规定的时间

  软件的可靠性体现于软件的运行阶段,因此,在软件的可靠性的定义中,一般采用“运行时间”t作为时间的测量。在这里,定义运行时间t为软件系统一旦投入运行后的计算机挂起(开启但空闲)与工作的积累时间。但计算机的停机时间不包括在运行时间t内。

  1.3规定的功能

  在考虑软件的可靠性时,首先应明确软件的功能是什么,哪些功能是主要的,哪些功能是次要的。一般从软件的需求说明书和设计说明书中可以了解这些情况。

  1.4“成功地运行程序”的定义

  这里的成功地运行是指不仅程序能正确地运行满足用户对它的要求,而且当程序一旦受到意外的伤害,或系统错误时,能尽快恢复,仍能正常的运行。

  2、软件生命周期与寿命的关系

  一切有生命的东西都有一个“寿命”,即它们从出生到死亡为止所经历的时间。

  “寿命”这个概念也可以延伸到对非生命产品的质量评价上来。

  例如一个电子产品的寿命就是指该产品从出厂到丧失使用价值的持续时间。但是,软件是一种信息产品,它不同于机械、电子等产品,不存在物理上的磨损报废,因此,软件产品的“寿命”,与硬件产品不同。

  软件产品的寿命是指软件的整个生命周期。这个生命周期主要包括软件规划、需求分析、设计、编码及单元调试、测试,以及运行、维护阶段。

  从软件用户的角度来看,更关心的是软件在交付使用后的情况如何,也就是需要一个从可靠性角度来理解的“寿命”。即希望有一个类似于硬件中平均失效间隔时间MTBF(Mean Time Between Failure)这样的指标来表明,在规定的要求和条件下,能在多大的程度上依赖这个软件来完成任务。

  我们把在使用其间能够正常工作的持续时间叫做软件的使用寿命。

  软件的使用寿命与输入环境有关。例如,有一个存在缺陷的编译程序,当用于学生做简单练习时,MTBF可能很长,而做一个大课题时,由于程序连续出错,MTBF就会变得很短。所以,MTBF可以看做是对软件可靠性做估计的样本数据,但不能看做是依据。

  软件生存期与软件使用寿命的关系如下:2.1软件生命周期主要包括三个阶段,即软件定义阶段、软件开发阶段和软件运行维护阶段。而软件的使用寿命是描述软件在使用期内执行规定任务的一个可供参考的可靠性指标。

  在使用期间,允许软件运行结果出错(称之为软件失效),但只要软件的平均失效间隔时间MTBF大于某个预先规定的值,就不认为软件死亡。如果在费用允许的情况下将软件修正,是该软件的可靠性可比以前有所提高。

  2.2软件生命周期是软件工程中的术语,软件使用寿命是软件可靠性工程中的术语。软件生命周期中靠软件开发质量来提高软件的可靠性,着重在开发过程,而软件可靠性工程则偏重于可靠性的实际提高和可靠性指标的评估。

  2.3软件产品的可靠性如何,直接影响软件的使用寿命。而软件可靠性的优劣是由软件生命周期各个阶段的工作质量决定的。然而生命周期各个阶段对软件质量和可靠性的影响是不一样的。

  如图1所示,在软件各个阶段产生的错误中,设计阶段产生的错误占大多数。进一步从图2可知,修正一个软件错误所需的费用将随着软件生命周期的进展而上升。错误发现的越早,修正它所需的费用越少,反之,错误发现的越晚,修正它的费用就越高,而且是呈指数增长。转贴于中国论文库 http://www.lwkoo.com

相关阅读

推荐论文

热门

最新

推荐