浅谈软件系统可靠性

上传人:飞*** 文档编号:47769997 上传时间:2018-07-04 格式:PDF 页数:4 大小:24.14KB
返回 下载 相关 举报
浅谈软件系统可靠性_第1页
第1页 / 共4页
浅谈软件系统可靠性_第2页
第2页 / 共4页
浅谈软件系统可靠性_第3页
第3页 / 共4页
浅谈软件系统可靠性_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《浅谈软件系统可靠性》由会员分享,可在线阅读,更多相关《浅谈软件系统可靠性(4页珍藏版)》请在金锄头文库上搜索。

1、浅谈软件系统可靠性1 概述近年来,随着计算机在军用与民用产品上的应用日益增多,软件缺陷所引发的产品故障,甚至灾难性事故也越来越严重,软件故障已成为高新技术产品发展的瓶颈。 在这种情况下, 一旦计算机系统发生故障, 则其效益就会大幅度地消减,甚至完全丧失, 从而使社会生产和经济活动陷入不可收拾的混乱状态。因此可以说,计算机系统的高可靠性是实现信息化社会的关键。计算机系统硬件可靠性方面已有六十余年的发展历史,冗余技术、差错控制、故障自动检测、容错技术和避错技术等可靠性设计技术已经成熟。相比之下, 软件可靠性的研究只有三十几年的发展历史,加上软件生产基本上仍处于作坊式的手工制作,其提高软件可靠性的技

2、术与管理措施还处于十分不完善的状况。20 世纪70 年代末至 80 年代初,软件可靠性的研究集中于对软件可靠性模型进行比较和选择。 90 年代以来,软件可靠性研究工作进展较快,主要集中在软件可靠性设计、软件可靠性测试与管理以及软件可靠性数据的收集这三个方面。2 软件可靠性的基本概念2.1 软件可靠性的定义 1983年,美国 IEEE计算机学会软件工程技术委员会对软件可靠性的定义如下:a) 在规定的条件下,在规定的时间内,软件不引起系统失效的概率,该概率是系统输入和系统使用的函数,也是软件中存在的错误的函数; 系统输入将确定是否会遇到已存在的错误。b) 在规定的时间周期内,在所述条件下程序执行所

3、要求的功能的能力。软件可靠性定义中提到的“规定的条件”和“规定的时间”,在工程中有重要的意义。定义中的“时间”有 3种度量。第一种是日历时间,指日常生活中使用的日、周、月和年等计时单元; 第二种是时钟时间, 指从程序运行开始到运行结束所用的时、分、秒;第三种是执行时间, 指计算机在执行程序时实际占用的CPU 时间。定义中所指的“条件”,是指环境条件,包括了与程序存储、运行有关的计算机及其操作系统。2.2 影响软件可靠性的主要因素软件可靠性表明了一个程序按照用户的需求和设计的目标,执行其功能的正确程度 。这要求一个可靠的程序应是正确的、完整的 、一致的和健壮的 。软件可靠性的决定因素是与输入数据

4、有关的软件差错,正是因为软件中的差错引起了软件故障,使软件不能满足需求。影响软件可靠性的因素主要包括:1 、软件开发的支持环境;2、软件的开发方法;3、软件对实际需求表述上的符合度;4、软件可靠性设计技术,软件可靠性设计技术是指软件设计阶段中采用的,用以保证和提高软件可靠性的为主要目的软件技术;5、软件的测试与投放方式等;6、软件的规模和内部结构即软件复杂度,随着软件规模结构复杂度的增加,软件可靠性的问题越来越突出;7、软件开发人员的能力和经验。2.3 软件可靠性的度量 对软件产品具有可靠性程度的定量评价被称为软件可靠性度量。软件可靠性度量参数是指表示软件可靠性的一个或几个变量。软件可靠性指标

5、是指从用户的角度对产品的可靠性参数应达到的目标值所作的规定。软件可靠性很难用一个度量参数表示。对于不同的软件、不同的应用,可能使用不同的参数。和硬件可靠性度量一样, 软件可靠性度量也可应用概率论和数理统计的方法、技术,因为软件的失效呈现出随机性。软件可靠性度量可以分为两类, 主要从技术度量的角度阐述软件可靠性的度量指标。a) 初始故障数测试开始时软件中的故障个数。 通过程序容量或可靠性模型对这一度量进行估计。b) 剩余故障数经测试和故障排除后, 尚残留在软件中的故障数。 通常它是根据测试的故障数据和可靠性模型来进行估计的,这是一种较为直观的度量方式。c) 可靠度一般用 R (t )度量,指在t

6、=0 时系统正常的条件下系统在时间区间0 ,t 内能正常运行的概率。d) 失效概率 F(t )是失效时间少于或等于t 的概率,根据其定义可知它和可靠度 R(t )之间存在如下联系:F (t ) =1-R (t )e) 失效强度 f (t ) :失效强度是失效概率的密度函数,如果F(t )是可微分的, 失效强度 f (t )是F(t )关于时间的一阶导数。f) 失效率 (t ) :又称风险函数( hazard function ) ,它的数学定义是软件在t 时刻没有发生失效的条件下, 在t 时刻后单位时间内发生失效的概率。失效率是失效概率 F(t )的条件概率密度,又称条件失效强度。g) 平均无

7、失效时间 MTTF :指当前时间到下一次失效时间的均值。h) 平均失效间隔时间 MTBF :指2 次相邻失效时间间隔的均值。当软件从时刻T1工作到时刻 T2,若发生了 n 次失效,则:MTBF= (T1-T2) / (n+1)3 软件可靠性模型3.1 软件可靠性模型的概念软件可靠性工程中使用的模型有两大类型。第一类是可靠性结构模型, 是指用于反映系统结构逻辑关系的数学方程。借助这类模型, 在掌握软件单元可靠性特征的基础上,可以对系统的可靠性特征及其发展变化规律做出评价。 软件可靠性结构模型包括串联系统模型、并联系统模型,以及硬软件复合系统模型等。 软件可靠性结构模型是软件系统可靠性分析的重要工

8、具, 既可以用于软件系统的可靠性综合,也可用于软件系统的可靠性分解。第二类模型是可靠性预计模型, 本质上是一些描述软件失效与软件错误的关系,描述软件失效与运行剖面的关系的数学方程。借助这类模型, 可以对软件的可靠性特征做出定量的预计或评价。例如:可以预计开发过程中的可靠性增长,预计或评价软件在预定工作时间的可靠度,预计软件在任意时刻的失效数的平均值、 软件在规定的时间间隔内发生失效次数的平均值、软件在任意时刻的失效率、软件失效时间间隔的概率分布和软件预期的交付时间等。评价和预计是两个有区别又有联系的概念。 评价是指对软件现有的可靠性水平做出评价。预计是指对软件未来的可靠性特征进行预测。 预测未

9、来的前提是认识现状, 所以二者难以截然分开。必须指出,在使用数学模型进行预计时,蕴含的假定是,事物发展规律在未来的一段时间内保持不变。 对于短期预测这个假设是合理的。但是,随着预测期的延长,其近似性减弱。用可靠性模型进行预计时,为了得到较准确的结果,如果发现软件的失效规律有明显的改变,应该对参数加以修正或重新收集失效数据,重新确定模型参数。3.2 建模原理软件可靠性建模的目的是: 根据与软件可靠性有关的数据, 以统计方法给出软件可靠性的估计值或预测值。 软件可靠性模型说明了失效过程对影响它的主要因素的通用依赖形式:错误引入、错误消除、操作环境。软件可靠性建模技术通过统计结果预测失效率曲线。其目

10、的有两个: 1) 预测达到规定目标还需要多个测试时间;2) 预测测试结束时软件的期望可靠性。3.3 建模的一般过程软件可靠性建模是试图以数学模型来模拟软件的可靠性行为,并对这一可靠性行为给出一种或多种定量的估计或预测。建模过程通常由以下几个部分组成:a)模型假设在软件可靠性建模时都要作出某些假设,其原因主要在于目前人们对软件可靠性行为中的某些特征还无法确知,或者某些特征本来就具有不确定性;其次是为了数学上处理的便利性。b)确定度量方式在直接的、间接的、甚至辅助的各种度量中,根据需要,选择其中一种或多种度量来估计软件的可靠性。c)建立数学模型将已经选择的可靠性度量,表示为软件产品的某些特性的函数

11、。d)进行参数估计对于某些通过模型无法直接获得的度量或参数,则需要使用某种参数估计方法来确定它们的值。d)确定数据输入域通过收集故障数据来确定模型中的未知参数,而故障数据的收集是以软件运行为前提的,因此需要确定数据输入域。4 软件测试与可靠性评价的关系软件测试是“为了发现故障而执行程序的过程”,其根本目的是以尽可能少的时间和人力发现并改正软件中潜在的各种故障及缺陷。因此,软件测试与软件可靠性评价有着密切的关系。一方面,软件测试是软件可靠性评价的基础,软件可靠性模型利用软件测试所提供的有关软件系统的故障数据,估算软件的可靠性, 对软件将来的故障行为进行预测,以协助开发人员监督软件开发过程,辅助软

12、件过程管理。因此,软件测试是保证软件质量,提高软件可靠性的主要手段。另一方面,软件可靠性评价又可以为软件测试服务。只有当经过可靠性评价后得到的可靠性定量指标达到预定的要求时,对软件进行的测试工作才是比较充分的测试。如果度量指标尚未达到预定的要求, 说明软件中还存在着较多的故障,需要继续对软件进行测试。 也就是说,可以用可靠性度量指标来衡量软件测试工作的充分性。实际上,测试工作一直对准软件中隐含的各种故障,所有的测试方法和手段都是以找出软件中隐含的故障为目的。软件中隐藏的故障数目, 直接决定软件的可靠性。如果不能将软件中隐含的故障及时排除,一旦暴露出来就会给使用者和维护者带来不同程度的严重后果,势必导致软件的可靠性差。 所以,软件测试必须在软件投入生产运行之前进行,以尽可能多地发现软件中的故障,提高软件可靠性。 5 结论软件可靠性问题对于安全关键软件而言具有非常重要的意义,目前软件工程主要通过软件管理和软件测试来保证软件和提高软件的可靠性。没有软件工程, 便没有软件可靠性。 软件可靠性必须贯穿于软件的整个生存周期,必须在认真实施软件工程的基础上,专门开展一些软件可靠性的技术和治理活动,系统地考虑软件生存周期全过程。通过采用正确的方法、技术和工具,以得到一个错误少、可靠性高的软件。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号