星载软件可靠性模型应用研究及实践
2013-08-07石柱,郑重
石 柱,郑 重
星载软件可靠性模型应用研究及实践
石 柱,郑 重
为定量评估软件的可靠性指标,介绍了利用软件可靠性模型评估软件可靠性的过程和方法;针对某星载嵌入式软件的失效趋势,根据模型的选择原则和方法,以及模型的预测质量的对比,最终选择了指数模型作为可靠性评估模型。对该软件在轨运行情况进行了可靠性评估,开展了基于该软件可靠性测试数据的可靠性评估,评估结果给出了该软件的可靠性水平。
软件可靠性;软件可靠性评估;软件可靠性模型
1 引言
利用软件可靠性模型评估可靠性是进行软件可靠性预测的一个重要方法,它根据软件的失效数据,以统计的方法对软件的可靠性进行度量、评估和预测,这些模型主要输入的是软件运行时的失效数或失效间隔时间。基于对软件系统和故障特点的不同假定,研究人员提出了各种可靠性模型,并用它来分析软件的可靠性。如:基于马尔可夫过程的Jelinski-Moranda模型、基于非齐次泊松过程的Goel-Okumoto模型、Musa执行时间模型、基于贝叶斯估计的Littlewood-Verrall模型等[1-2]。
尽管这些软件可靠性模型被广泛用来预测软件可靠性,但在实际使用过程中存在模型的不一致问题。事实上,以往很多软件可靠性研究项目揭示出这些模型往往只对一组或一段失效数据具有较高的预测精度,而且不同模型对同一组失效数据的预测结果差别很大,没有一个模型能对所有的数据做出最好的预测和评价,这种情况会造成软件可靠性管理人员得出错误的结论。因此,如何在实际应用中选择和使用这些模型,便成为软件可靠性工程研究的重点问题之一[3-5]。
本文从对现有模型的研究出发,给出了利用软件可靠性模型评估软件可靠性的过程,并在某星载软件中进行实际应用,最后给出了评估的结果。
2 软件可靠性评估过程
2.1 评估的一般过程
根据现有的研究成果,利用软件可靠性模型定量评估可靠性的一般过程如下[6-7](见图1):
(1)收集和分析失效数据
软件失效数据的类型从时间上划分,可分为失效间隔时间和失效计数时间。
①失效间隔时间是指相邻两次失效间的运行时间;
②失效计数时间是指在规定时间内发生失效的个数,此类型数据较为容易获得,适用于测试和维护阶段,并能转化为失效间隔时间。
失效数据的收集是一个艰难工作,需要记录使用环境,要分清记录方式是失效间隔时间还是给定时间内的失效数,是用了日历时间还是执行时间,其次要对失效数据进行分析。
(2)选择恰当的可靠性模型
根据实测收集到的数据和对数据的分析以及各模型的假设、分布类型,从中选择一种比较恰当的模型。
(3)参数估计
根据失效数据的性质选择合适的方法进行参数估计,常用的方法包括:线形回归、最大似然估计和最小二乘法;最后根据估计的参数建立最终拟合的模型。
(4)拟合程度检验
通过已知数据计算预测数据,以便检验所建立的模型的拟合度。如果拟合很好,说明模型可以很好反映软件的失效情况,如果不拟合,则需要检查或更新更恰当的模型。可通过以下三个指标来评估模型的预测质量:
①预测精度(序列似然度比率),比率值越小,表示模型的预测精度越大,预测质量越高;
②偏差(U-结构图),值越小,表示模型与实际值的偏差越小,预测质量越高;
③偏差趋势(Y-结构图),值越小,表示模型的偏差趋势越小,预测质量越高。
(5)评估软件可靠性
通过建立的可靠性模型对当前软件的可靠度进行定量的评估,以判断软件是否需要继续进行测试或交付。
图1 软件可靠性评估过程图
2.2 模型的选择原则
现有的软件可靠性模型很多,但至今没有一个模型被证明对各类数据都广泛适用,造成该问题的根本原因是缺乏模型的选择依据。
目前,工程人员在进行可靠性评估时经常盲目选择模型,当选择多个模型进行评估时,不同可靠性模型的评价结果存在较大差异,从而无法获得唯一或一致的结论。另外,由于模型构造时假设的失效行为规律各不同,因此,在进行可靠性预计时,如果不考虑失效行为而盲目选择模型,会降低评价结果的可信性和准确性[8]。
因此,在实际使用可靠性模型进行评估时,首先面临模型的选择问题,这时可以从以下几个方面考虑[9-11]。
(1)如果有该软件的以往失效数据,应对失效数据应进行趋势分析,了解可靠性的变化状况,为模型的选取提供指导,避免盲目性。在无法获得失效数据的情况下,不能只选用一个模型,而应选用多个模型进行比较选用。
(2)无论应用何种模型,都要对预计的质量进行分析,以确认结果的有效性。
(3)模型的理论假设是否接近于软件的实际运行环境。
(4)模型所需要的数据是否易于收集,在数据收集阶段是否能比较容易地获得模型所需要的数据。
(5)在进行数据分析和可靠性评估预测时,模型在数学上是否容易处理。
(6)模型成熟度的高低,即模型使用频度的高低,成熟度的高低从一定程度上反映出模型的认可程度。
2.3 评估对象
本次可靠性评估的对象是某星载嵌入式软件,该软件产品在设计上存在一些亟待解决的可靠性问题。例如,软件不定期复位(复位间隔几周或几个月)、计算精度下降等,这些问题严重影响了空间飞行器任务的顺利执行。
针对这些问题,开发人员对软件进行了修改。本次可靠性评估的目的是利用可靠性模型对软件可靠性测试数据进行拟合,从而验证修改后的软件是否满足预期的可靠性指标要求。在进行可靠性测试之前,需要评估该软件修改前的可靠性水平,也即该软件在轨运行时的失效情况。
3 基于在轨失效数据的可靠性评估
根据前文建立的软件可靠性评估的过程,进行该软件基于在轨失效数据的可靠性评估。
3.1 定义失效
进行软件可靠性评估之前,首先需要明确定义软件失效。由于失效的定义是面向用户的,因此,应该定义软件的何种表现被认为是一个失效,以及失效的严重程度,便于数据的收集。经过与研制方的沟通,此次评估的失效定义为:
(1)软件复位。发生主动复位或被动复位。
(2)无定位数据。连续半小时不能提供有效导航定位数据,软件也未复位。
3.2 失效数据的收集
由于用户选择平均失效前时间作为可靠性指标要求,所以选择收集失效间隔时间较为合适。由于该软件是每秒完成一次任务,所以,应该以1 s为时间收集的最小间隔。
通过对软件实际运行情况的监测,在6个月时间内共发生28次复位,但由于有些复位较为集中(在1天之内发生),经初步判定造成这些复位的原因相同,故可假定这些复位算作一次失效。因此经初步判断,在6个月时间内共发生5次失效,软件在轨失效情况见表1。
根据表1可得出,该软件最长无失效连续运行时间为78天,平均失效间隔为38.2天。
3.3 模型的选择
根据2.2节模型的选择原则,以及对该软件失效趋势的初步判定,本次评估初步选择指数模型和正态分布模型作为评估模型。通过应用两种可靠性模型(指数分布模型、正态分布模型),拟合了该软件实际在轨运行失效数据,MTBF(Mean Time Between Failures)评估结果见表2。
表1 被测软件在轨失效情况统计表
表2 被测软件MTBF评估
由表2可见,正态分布的优点在于考虑失效间隔,并且如果失效发生是稳定的,正态分布可以很好地拟合失效数据。但是通过实际观测得到的数据来看,指数分布模型的预测质量比正态分布模型好,因此使用正态分布模型拟合软件失效率是不合适的。尽管指数模型存在误差,但是相比于正态分布模型的估计结果,指数模型存在误差是可以接受的。因此,该软件的失效规律更符合指数分布模型,即选择指数分布模型的预测值作为此次度量的结果,失效率为0.894,平均失效间隔时间是22.945天。
3.4 评估结果分析
从以上可靠性评估数据可以看出,增长前该软件的可靠性水平还达不到用户的指标要求。该软件不能满足卫星总体对该软件提出的可靠性要求(平均无故障时间MTBF大于6个月,置信度大于0.6),而且随着该软件关键等级的提高,以及新的应用需求,对该产品的可靠性提出了更高的要求。
4 基于可靠性测试的评估
通过上文可知,在对该软件在轨失效情况进行可靠性评估后发现:该软件不能满足卫星总体对该软件提出的可靠性要求。在经过一系列可靠性分析和测试后,研制单位对该软件进行了修改,接下来,需要验证修改后的软件是否实现了可靠性增长,是否能达到规定的可靠性指标要求。因此,需要开展对该软件的可靠性测试。
根据用户需求,本次可靠性测试采用无失效考核方案,即根据该软件的可靠性定量指标——平均无失效运行前时间(MTBF),确定一个预定的可靠性测试连续无失效的累积时间(设为T′),然后进行可靠性测试。若实际的累积连续无失效测试时间(设为T)超过T′,即T<T′,在给定的置信水平γ下认为达到了可靠性要求;如未达到要求,即T<T′,则软件需要修改,那么在修改后仍需重新按无失效考核方案进行测试。
由上文可知,该星载软件的失效趋势进服从指数分布,在这种情况下,无失效考核时间与MTBF时间比计算公式为:
由置信度γ=0.6可以计算得到:无失效考核时间为MTBF的0.916 29倍;由MTBF=0.5年得到,如果投入一台被测件进行测试,其无失效执行测试时间为:0.5年×0.916 29= 0.458 145年(即168天),即本次可靠性测试最少执行的时间是168天,在168天内如果没有发生一次失效,则可认为该软件达到了要求的可靠性水平。
为保证测试接近于软件真实运行状态和环境,本次测试构造了使用剖面,搭建了测试环境,执行测试用例并分析测试数据。最终确定被测件的无失效考核时间为168天,亦即该软件的MTBF达到了180天,能够满足规定的可靠性指标要求。
以上过程、方法和结果适用于该软件在该使用剖面下的运行情况。
5 结束语
通过对某星载嵌入式软件在轨失效情况和可靠性测试数据的分析,选择了合适的可靠性模型对该软件进行可靠性评估,给出了软件的可靠性水平,为该软件最终的评价和验收工作提供了决策依据和数据支持。从评估过程和结果也可看出,针对同一组数据,每一步预计都要根据预测质量分析选择最适合的模型,而不是采用单一模型,此过程和方法提高了可靠性模型的适用性和实用性。
[1]Lyu M R.Hand book of software reliability engineering[M]. New York:IEEE Computer Society Press and McGraw-Hill,1996:168-189.
[2]石柱.基于模糊技术的软件质量评价及可靠性评估[D].北京:北京航空航天大学,2000.
[3]徐仁佐.谢旻.郑人杰.软件可靠性模型及应用[M].北京:清华大学出版社,1994.
[4]陆民燕.航空宇航系统软件可靠性度量研究[D].北京:北京航空航天大学,2003.
[5]赵修平,季立庆,李田科.导弹发射装置软件可靠性模型应用研究[J].航天发射技术,2010(4):26-30.
[6]Shibata K,Rinsaka K,Dohi T.Metrics-based software reliability modelsusing non-homogeneouspoisson processes[C]// Proceedings of the 17th International Symposium on Software Reliability Engineering,2006.
[7]Krajcuskova Z.Software reliability models[J].IEEE Journal,2007(1).
[8]Almering V,van Genuchten M,Cloudt G,et al.Using software reliability growth models in practice[J].IEEE Software,2007,24(6):82-88.
[9]IEEE Std 982.1-2005 IEEE standard dictionary of measures of the software aspects of dependability[S].New York:IEEE Computer Society Press,2005.
[10]Ehrlich W K,Keith S,Molisani R H,et al.Applying reliability measurement:a case study[J].IEEE Software,1990,7 (3):56-64.
[11]石柱,郑重.软件可靠性度量实例研究[J].系统工程与电子技术,2011,33(1):239-242.
SHI Zhu,ZHENG Zhong
中国航天科技集团公司 软件评测中心,北京 100048
Software Evaluation and Testing Center,China Aerospace Science and Technology Corporation,Beijing 100048,China
To quantify software reliability,this paper introduces the progresses and methods of using software reliability models to evaluate software reliability,chooses the exponential model to evaluate reliability,according to the trend of failure of a spaceborne embedded software,the principles and methods of choosing models,and the comparison of prediction quality of those models.It executes reliability evaluation based on the software reliability test,and the results of evaluation present the reliability level of this software.
software reliability;software reliability evaluation;software reliability models
A
TP311.5
10.3778/j.issn.1002-8331.1207-0313
SHI Zhu,ZHENG Zhong.Study and practice on applications of software reliability models.Computer Engineering and Applications,2013,49(7):52-54.
国防科技工业局民用航天科研预先研究项目(No.B2120080307)。
石柱(1963—),男,博士,研究员,研究领域为软件工程,软件可靠性,软件安全性和软件过程改进;郑重(1984—),男,工程师,研究方向为软件可靠性度量,软件可靠性测试。E-mail:218zz@163.com
2012-07-23
2012-09-28
1002-8331(2013)07-0052-03
CNKI出版日期:2012-11-05 http://www.cnki.net/kcms/detail/11.2127.TP.20121105.1414.006.html