论文部分内容阅读
【摘 要】在介绍软件可靠性模型按随机性过程分类的基础上,分别对J-M模型、G-O模型和Musa模型及其参数估计进行对比分析,通过可靠性预测结果实验,得到了与其实际可靠性数值的相关结论。
【关键词】软件可靠性 随机过程模型 对比分析
一、前言
经过近半个世纪的研究发展,软件可靠性已成为计算机学科探讨研究的一个重要方向,在软件质量指标体系中,可靠性是其最重要的固有特性,实验表明,不考虑软件系统可靠性所得出的系统可靠性结果和实际情况相差甚远。
二、软件可靠性模型研究发展
软件可靠性研究的主要目的就是保证和提高软件可靠性,伴随信息技术和可靠性工程的发展研究,按年代顺序大致可以将可靠性模型的发展分为四个时期。
(一)萌芽时期
上世纪70年代以前,在计算机硬件技术和软件技术飞快发展的同时,软件可靠性问题被人们冷落,软件危机由此产生。后来逐步认识到软件可靠性问题是客观存在的,可以借用硬件可靠性模型的研究方法来推动软件可靠性研究。
(二)发展时期
上世纪70年代,软件可靠性模型研究取得了全面的、突飞猛进的发展,出现了众多软件可靠性模型,这个时期的特点分别为:软件可靠性分析应以正确性验证为目的;对故障过程的分析开始采用随机建模方法;对故障数据引人了统计分析技术。
(三)改进时期。80年代时期的特点表现为,软件可靠性研究模型面向工程应用取得了大量经验数据;软件可靠性模型进一步深化,相继出现了一大批新模型;评述性文章侧重于模型存在缺陷的研究,开始编写模型软件。
(四)成熟时期。90年代至今,软件可靠性逐步全面实现工程化、实用化。软件可靠性的度量、评价以及定量化的预计、评估、分析技术向着工程化和实用化迈进。
三、软件可靠性模型分类
软件可靠性模型的主要分类方法有按随机性分类法、按模型参数的估计分类法、按模型使用时间分类法、按修复过程分类法、按软件结构分类法等。根据模型的假设条件、测试环境以及概率统计参数,将模型分为随机过程类模型和非随机过程类模型。另外,因Musa的执行时间属于泊松过程模型,将它单独作为执行时间类型。
在软件测试过程中,一旦出现错误就会被查出,然后进行排错。因此,随着测试工作的推进,软件中的错误不断被排除,于是软件的可靠性就不断提高,现有的软件可靠性模型都是基于数学模型的增长性模型。随机过程类的软件可靠性模型主要包括马科夫过程模型和非齐次泊松过程模型。首先假设错误出现率在软件无改动的区间内是常数,并且随着错误数目的减少而下降,这样的模型属于马尔科夫过程模型,J-M模型是最具代表性。另外,在排错过程中的累计错误数目作为事件的函数,在一定条件下可以近似为一个非齐次泊松过程,这一类数学模型属于非其次泊松过程模型,G-O模型是最著名的NHPP模型。Musa的执行时间模型,其实质应划入马科夫过程类,但因为其以程序的执行时间,即CPU时间为基本的测度,所以把它单独作为一类模型予以比较研究。
四、典型随机过程模型对比分析
从1972年第一个软件可靠性模型发表至今,软件可靠性模型已经出现了上百种。面对如此众多的模型,如何为一个软件系统选择一个合适的模型一直是困扰软件可靠性研究人员的主要问题。对不同模型的应用研究表明,目前为止仍没有一个对所有软件产品皆行之有效的通用模型。本文通过三种典型的随机过程模型分析来讨论研究。
(一)典型随机模型
1.J-M模型
Jelinski和Moranda在1972年提出了一个软件可靠性增长模型即J-M模型,其基本思想是假设软件当前的故障率正比于错误残留数,在一个错误被修改到下一个错误被发现的时间段内故障率保持为常数,每当一个错误被修改后,故障率都将降低一固定值,即每个错误对故障率改善的影响是相同的。
其模型参数的最大似然估计表述如下:
在模型公式中有两个未知参数和,如果在测试过程中测得的失效间隔时间为,则参数和的似然函数为:
通过极大似然参数估计解的特性的分析可以实现该计算方法。
2.G-O模型
G-O模型是由Goel A L和Okumoto K在1979年提出的关于连续时间的NHPP模型,它假设排错过程是完美的,即在排错过程的过程中不会引入新的故障。模型中的函数是一个有界的单调函数,用来预测时间点可观察到的故障数。当时间趋近无穷大时,该函数接近上界,最终可能被检测出故障总数的期望值。
在应用G-O模型进行实际观测、分析软件故障数据时,首先要推定模型中的均值函数中的未定参数和。下面我们用最大似然估计法估计和的值。
3.Musa模型
Musa模型由Musa于1975年提出,此后获得了较为广泛的应用。该模型以实际的执行时间(CPU时间)为基础描述程序的可靠性特征,建立了CPU时间与日历时间的联系,并建立了程序的可靠性特征与测试过程资源消耗的关系。
在测试的初期,可用的数据量很少,难于对模型参数值做出准确的估计,这种情况下参数的初始值可由其他具有相似性质的程序获得。随着测试的发展,数据占有量逐渐增加,可以修正或重新估计参数值,建议错误减少系数的初始值取值范围为0.94~1.00。
(二) 典型模型比较
采用实际的车载导航软件项目数据进行测试,验证三个典型可靠性模型对软件累积故障数的预测结果,参数设置如表1所示。
得到失效数据的典型可靠性模型故障累积函数分别为:
1.J-M模型:M(t)=2.1221t0.6532
2.G-O模型:M(t)=1.0976(1-e-0.486t)
3.Musa模型:M(t)=0.7911{1-[1+13.7296t+(13.7296t)2/2]e-13.7296t}
对软件运行190天的可靠性预测结果进行对比分析,可以发现模型中,用J-M模型预测的软件可靠性比实际可靠性低很多,而G-O模型与Musa模型预测的软件可靠性在后阶段均比实际可靠性高,其中Musa模型的预测结果更为接近实际可靠数值。不仅仅是对车载导航系统软件,其他类型的软件也可以基于上述思路进行可靠性模型的分析对比使用。
五、软件可靠性模型研究方向
软件可靠性建模是一个复杂的过程,模型选择需要考虑多个方面的因素,到目前为止,如何综合利用模型的评价准则进行模型选择并未有较好的策略。同时,在模型选择过程中如何考虑那些难以量化的因素,如测试过程、开发模式等也是亟待解决的问题。
参考文献:
[1] 邱邦清.国外软件可靠性模型研究与发展综述[J].质量可靠性,1994.
[2] 孙勇.软件可靠性模型应用研究[硕士学位论文].东南大学,2004.
[3] 杨玉丽.软件可靠性研究现状与展望[J].电脑知识与技术,2010.
[4] 尹晶杰.软件可靠性模型算法分析与评价[毕业论文],河北工程学院,2010.
[5] 谢尚飞,孙志礼,杨丽.经典软件可靠性模型分析[J].软件工程,2012.
作者简介:
李芳(1979-),女,山东人,在读博士,讲师,主要研究方向计算机网络及网络安全技术、软件可信技术等。
丁丽丽(1982-),女,重庆人,研究生,讲师,主要研究方向计算机网络及网络安全技术、软件可信技术等。
中央财政支持专业发展项目软件技术专业。
【关键词】软件可靠性 随机过程模型 对比分析
一、前言
经过近半个世纪的研究发展,软件可靠性已成为计算机学科探讨研究的一个重要方向,在软件质量指标体系中,可靠性是其最重要的固有特性,实验表明,不考虑软件系统可靠性所得出的系统可靠性结果和实际情况相差甚远。
二、软件可靠性模型研究发展
软件可靠性研究的主要目的就是保证和提高软件可靠性,伴随信息技术和可靠性工程的发展研究,按年代顺序大致可以将可靠性模型的发展分为四个时期。
(一)萌芽时期
上世纪70年代以前,在计算机硬件技术和软件技术飞快发展的同时,软件可靠性问题被人们冷落,软件危机由此产生。后来逐步认识到软件可靠性问题是客观存在的,可以借用硬件可靠性模型的研究方法来推动软件可靠性研究。
(二)发展时期
上世纪70年代,软件可靠性模型研究取得了全面的、突飞猛进的发展,出现了众多软件可靠性模型,这个时期的特点分别为:软件可靠性分析应以正确性验证为目的;对故障过程的分析开始采用随机建模方法;对故障数据引人了统计分析技术。
(三)改进时期。80年代时期的特点表现为,软件可靠性研究模型面向工程应用取得了大量经验数据;软件可靠性模型进一步深化,相继出现了一大批新模型;评述性文章侧重于模型存在缺陷的研究,开始编写模型软件。
(四)成熟时期。90年代至今,软件可靠性逐步全面实现工程化、实用化。软件可靠性的度量、评价以及定量化的预计、评估、分析技术向着工程化和实用化迈进。
三、软件可靠性模型分类
软件可靠性模型的主要分类方法有按随机性分类法、按模型参数的估计分类法、按模型使用时间分类法、按修复过程分类法、按软件结构分类法等。根据模型的假设条件、测试环境以及概率统计参数,将模型分为随机过程类模型和非随机过程类模型。另外,因Musa的执行时间属于泊松过程模型,将它单独作为执行时间类型。
在软件测试过程中,一旦出现错误就会被查出,然后进行排错。因此,随着测试工作的推进,软件中的错误不断被排除,于是软件的可靠性就不断提高,现有的软件可靠性模型都是基于数学模型的增长性模型。随机过程类的软件可靠性模型主要包括马科夫过程模型和非齐次泊松过程模型。首先假设错误出现率在软件无改动的区间内是常数,并且随着错误数目的减少而下降,这样的模型属于马尔科夫过程模型,J-M模型是最具代表性。另外,在排错过程中的累计错误数目作为事件的函数,在一定条件下可以近似为一个非齐次泊松过程,这一类数学模型属于非其次泊松过程模型,G-O模型是最著名的NHPP模型。Musa的执行时间模型,其实质应划入马科夫过程类,但因为其以程序的执行时间,即CPU时间为基本的测度,所以把它单独作为一类模型予以比较研究。
四、典型随机过程模型对比分析
从1972年第一个软件可靠性模型发表至今,软件可靠性模型已经出现了上百种。面对如此众多的模型,如何为一个软件系统选择一个合适的模型一直是困扰软件可靠性研究人员的主要问题。对不同模型的应用研究表明,目前为止仍没有一个对所有软件产品皆行之有效的通用模型。本文通过三种典型的随机过程模型分析来讨论研究。
(一)典型随机模型
1.J-M模型
Jelinski和Moranda在1972年提出了一个软件可靠性增长模型即J-M模型,其基本思想是假设软件当前的故障率正比于错误残留数,在一个错误被修改到下一个错误被发现的时间段内故障率保持为常数,每当一个错误被修改后,故障率都将降低一固定值,即每个错误对故障率改善的影响是相同的。
其模型参数的最大似然估计表述如下:
在模型公式中有两个未知参数和,如果在测试过程中测得的失效间隔时间为,则参数和的似然函数为:
通过极大似然参数估计解的特性的分析可以实现该计算方法。
2.G-O模型
G-O模型是由Goel A L和Okumoto K在1979年提出的关于连续时间的NHPP模型,它假设排错过程是完美的,即在排错过程的过程中不会引入新的故障。模型中的函数是一个有界的单调函数,用来预测时间点可观察到的故障数。当时间趋近无穷大时,该函数接近上界,最终可能被检测出故障总数的期望值。
在应用G-O模型进行实际观测、分析软件故障数据时,首先要推定模型中的均值函数中的未定参数和。下面我们用最大似然估计法估计和的值。
3.Musa模型
Musa模型由Musa于1975年提出,此后获得了较为广泛的应用。该模型以实际的执行时间(CPU时间)为基础描述程序的可靠性特征,建立了CPU时间与日历时间的联系,并建立了程序的可靠性特征与测试过程资源消耗的关系。
在测试的初期,可用的数据量很少,难于对模型参数值做出准确的估计,这种情况下参数的初始值可由其他具有相似性质的程序获得。随着测试的发展,数据占有量逐渐增加,可以修正或重新估计参数值,建议错误减少系数的初始值取值范围为0.94~1.00。
(二) 典型模型比较
采用实际的车载导航软件项目数据进行测试,验证三个典型可靠性模型对软件累积故障数的预测结果,参数设置如表1所示。
得到失效数据的典型可靠性模型故障累积函数分别为:
1.J-M模型:M(t)=2.1221t0.6532
2.G-O模型:M(t)=1.0976(1-e-0.486t)
3.Musa模型:M(t)=0.7911{1-[1+13.7296t+(13.7296t)2/2]e-13.7296t}
对软件运行190天的可靠性预测结果进行对比分析,可以发现模型中,用J-M模型预测的软件可靠性比实际可靠性低很多,而G-O模型与Musa模型预测的软件可靠性在后阶段均比实际可靠性高,其中Musa模型的预测结果更为接近实际可靠数值。不仅仅是对车载导航系统软件,其他类型的软件也可以基于上述思路进行可靠性模型的分析对比使用。
五、软件可靠性模型研究方向
软件可靠性建模是一个复杂的过程,模型选择需要考虑多个方面的因素,到目前为止,如何综合利用模型的评价准则进行模型选择并未有较好的策略。同时,在模型选择过程中如何考虑那些难以量化的因素,如测试过程、开发模式等也是亟待解决的问题。
参考文献:
[1] 邱邦清.国外软件可靠性模型研究与发展综述[J].质量可靠性,1994.
[2] 孙勇.软件可靠性模型应用研究[硕士学位论文].东南大学,2004.
[3] 杨玉丽.软件可靠性研究现状与展望[J].电脑知识与技术,2010.
[4] 尹晶杰.软件可靠性模型算法分析与评价[毕业论文],河北工程学院,2010.
[5] 谢尚飞,孙志礼,杨丽.经典软件可靠性模型分析[J].软件工程,2012.
作者简介:
李芳(1979-),女,山东人,在读博士,讲师,主要研究方向计算机网络及网络安全技术、软件可信技术等。
丁丽丽(1982-),女,重庆人,研究生,讲师,主要研究方向计算机网络及网络安全技术、软件可信技术等。
中央财政支持专业发展项目软件技术专业。