CN113609009B - 一种基于多版本的开源软件可靠性建模方法 - Google Patents
一种基于多版本的开源软件可靠性建模方法 Download PDFInfo
- Publication number
- CN113609009B CN113609009B CN202110866232.5A CN202110866232A CN113609009B CN 113609009 B CN113609009 B CN 113609009B CN 202110866232 A CN202110866232 A CN 202110866232A CN 113609009 B CN113609009 B CN 113609009B
- Authority
- CN
- China
- Prior art keywords
- open source
- source software
- faults
- version
- release
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000001514 detection method Methods 0.000 claims abstract description 40
- 230000001186 cumulative effect Effects 0.000 claims description 27
- 230000008569 process Effects 0.000 claims description 18
- 238000012360 testing method Methods 0.000 claims description 17
- 238000011161 development Methods 0.000 claims description 16
- 238000005315 distribution function Methods 0.000 claims description 15
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 claims description 3
- 230000004069 differentiation Effects 0.000 claims description 3
- 230000001052 transient effect Effects 0.000 claims description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 24
- 230000006870 function Effects 0.000 description 15
- SUBDBMMJDZJVOS-UHFFFAOYSA-N 5-methoxy-2-{[(4-methoxy-3,5-dimethylpyridin-2-yl)methyl]sulfinyl}-1H-benzimidazole Chemical compound N=1C2=CC(OC)=CC=C2NC=1S(=O)CC1=NC=C(C)C(OC)=C1C SUBDBMMJDZJVOS-UHFFFAOYSA-N 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 238000010206 sensitivity analysis Methods 0.000 description 5
- 238000011156 evaluation Methods 0.000 description 3
- 230000035945 sensitivity Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
- G06F17/12—Simultaneous equations, e.g. systems of linear equations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
- G06F17/13—Differential equations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Operations Research (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本发明属于计算机软件技术领域,公开了一种基于多版本的开源软件可靠性建模方法。针对开源软件故障检测存在的各种变化,提出了故障检测服从三参数寿命分布的开源软件可靠性模型。利用两个开源软件故障数据集、五个模型比较准则和五个开源软件可靠性模型进行了相应的模型性能比较实验。实验结果表明,与其他开源软件可靠性模型相比,本发明开源软件可靠性模型具有更好的拟合性能和预测性能。此外,该模型能更好地适应各种开源软件故障检测环境,并能帮助开发人员对开源软件的可靠性进行评估。
Description
技术领域
本发明属于计算机软件技术领域,具体为一种基于多版本的开源软件可靠性建模方法。
背景技术
开源软件(Open Source Software,OSS)在过去的几十年中被广泛使用。由于开源软件的开发和测试主要由世界各地的志愿者和用户来完成,其可靠性成为一个热门话题。为了解决开源软件的可靠性问题,一般采用“早发布,常发布”的方法来提高和增强开源软件的可靠性,保持开源软件对社区贡献者的吸引力,满足用户不断变化的需求。
一方面,早发布和频繁发布的方法可以在一定条件下提高开源软件的可靠性。另一方面,由于开源软件发布的主观性和随意性很强,这种方法能否有效提高开源软件的可靠性受到广泛质疑。另外,由于开源软件开发和测试环境的复杂性,故障检测也呈现出多样性和复杂性。而且,由于开源社区志愿者和用户的不断动态变化,开源软件的故障检测也呈现出多种特点。
现有的开源软件可靠性建模研究主要集中在开源软件开发测试的单一特性和特定条件下的可靠性建模。虽然上述开源软件可靠性模型能够有效地评估开源软件在一定条件下的可靠性,但复杂的开发环境和不确定的开发过程使其无法适应实际的开源软件可靠性评估。由于开源软件开发环境的复杂性和开发过程的不确定性,其故障检测率会发生很大的变化。例如,故障检测率随着时间的推移而降低;随着时间的推移,故障检测率先上升后下降;由于开源软件社区的学习,故障检测率随着时间的推移而增加;故障检测率是一个常数;或故障检出率呈浴缸状曲线。因此,考虑到开源软件开发测试过程的单一特点和具体情况,由此建立的开源软件可靠性模型不能适应开源软件测试过程中故障检测的多样性和复杂性。
发明内容
针对开源软件开发环境的复杂性和开发过程的不确定性导致故障检测率会发生很大变化的问题,本发明提供了一种基于多版本的开源软件可靠性建模方法。
为了达到上述目的,本发明采用了下列技术方案:
一种基于多版本的开源软件可靠性建模方法,包括以下步骤:
步骤1,基于多版本的开源软件可靠性模型的建立
开源软件的开发过程可以看作是非齐次泊松过程,表示为下式:
其中,P{·}表示概率,N(t)表示计数过程,ψ(t)表示到t时刻为止,期望检测出故障的累计数量,也称为均值函数,t表示时间变量;k表示故障数量,k=1,2,...,n;
考虑到开源软件开发和测试的特点和复杂性,假设:
1)开源软件的故障检测服从三参数寿命分布;
2)在开源软件中,前一版本中的剩余故障与当前版本中新生成的故障有关;
3)开源软件检测到的瞬时故障与软件中的剩余故障有关;
4)当检测到开源软件中的故障时,会立即将其去除,不会引入新的故障;
根据假设1)和3)可得:
其中,c>0和d>0表示形状参数;b>0表示尺度参数;η(t)表示故障检测率函数,ω表示期望最初检测出故障总的数量;
对公式(2)解微分方程组,可以得出:
ψ(t)=ω[1-exp(1-(1+btc)d)] (3)
将公式(3)转换成下式,
其中,F(t)表示三参数寿命分布函数;
一般来说,开源软件是多版本软件,当前版本中的故障包括新生成的故障和前一版本中的剩余故障,从假设2)中可以得出基于多版本的开源软件的可靠性模型如下:
发布1:
ψ1(t)=ω1F1(t)0≤t<t1 (5)
发布2:
ψ2(t)=(ω2+ω1(1-F1(t1)))F2(t-t1),t1≤t<t2 (6)
发布3:
ψ3(t)=(ω3+(ω2+ω1(1-F1(t1)))(1-F2(t2)))F3(t-t2),t2≤t<t3 (7)
发布n:
其中,ψ1(t)表示在第一发布中,到t时刻为止,期望检测出故障的累计数量,也成为均值函数;F1(t)表示在第一次发布中,故障检测服从的分布函数;ψ2(t)表示在第二发布中,到t时刻为止,期望检测出故障的累计数量,也称为均值函数;F2(t)表示在第二次发布中,故障检测服从的分布函数;ψ3(t)表示在第三次发布中,到t时刻为止,期望检测出故障的累计数量,也成为均值函数;F3(t)表示在第三次发布中,故障检测服从的分布函数;ψn(t)表示在第n次发布中,到t时刻为止,期望检测出故障的累计数量,也成为均值函数;Fn(t)表示在第n次发布中,故障检测服从的分布函数;ti表示第i次发布故障检测结束时间,ωi表示在第i版本的开源软件中,期望最初检测出故障总的数量;
由公式(8)可知,本发明提出的基于多版本的开源软件可靠性模型充分考虑了当前版本剩余故障的影响,故障检测服从三参数寿命分布。而三参数寿命分布能够模拟开源软件的各种故障检测现象,因此本发明提出的可靠性模型能够更好地适应开源软件开发和测试的复杂环境。
步骤2,基于多版本的开源软件可靠性模型的参数估计
用最小二乘法对开源软件可靠性模型的参数进行估计,最小二乘法可以表示为:
其中,ξi表示第i版本的开源软件最小二乘法表达式,ψi(t)表示第i版本的开源软件可靠性模型,即,到t时刻为止,期望检测出故障的累计数量;表示在第i版本的开源软件中,到t时刻为止,观察到的故障数量;
针对步骤1中的开源软件可靠性模型的参数,对公式(9)两边取偏微分建立方程如下:
其中,表示偏微分符号;
解方程组式(10),即可得出基于多版本的开源软件可靠性模型的参数值。
与现有技术相比本发明具有以下优点:
1、针对开源软件开发环境的复杂性和开发过程的不确定性导致故障检测率会发生很大变化的问题,本发明建立了一种基于多版本的开源软件可靠性模型,通过与其它4种模型的性能比较,表明该模型的拟合性能和预测性能最优,且本发明可靠性模型的拟合性能和预测性能随着开发和测试环境的变化相对稳定,此外,本发明的可靠性模型服从三参数寿命期分布,可以捕捉到开源软件测试过程中故障检测的主要变化,具有良好的适应性、鲁棒性和稳定性。
2、通过对本发明可靠性模型进行参数估计和参数敏感性分析,表明本发明可靠性模型的四个参数都是敏感性参数,这充分说明了在开源软件开发和测试环境中,本发明可靠性模型能够很好地满足开源软件开发和测试的规则和特点。在开源软件复杂的开发和测试环境中,可以有效地评估软件的可靠性,预测开源软件中剩余故障的数量,并能帮助开发人员对开源软件的可靠性进行评估。
附图说明
图1为服从三参数寿命分布的故障检测率函数随测试时间的变化情况。
图2为开源软件可靠性模型的拟合和预测性能比较。图2(a)、图2(b)和图2(c)分别表示使用100%的DS1-1、DS1-2和DS1-3的开源软件可靠性模型的拟合性能比较。图2(d)、图2(e)和图2(f)分别表示使用90%的DS2-1、DS2-2和DS2-3的开源软件可靠性模型的预测性能比较。
图3为本发明开源软件可靠性模型的参数敏感性分析。图(a)、图(b)、图(c)和图(d)表示本发明开源软件的可靠性模型分别使用100%的故障数据(DS1-1)进行参数敏感分析时,模型的参数变化情况。
具体实施方式
下面结合本发明实施例和附图,对本发明实施例中的技术方案进行具体、详细的说明。应当指出,对于本领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干变型和改进,这些也应视为属于本发明的保护范围。
实施例1
一种基于多版本的开源软件可靠性建模方法,具体包括以下步骤:
步骤1,基于多版本的开源软件可靠性模型的建立
开源软件的开发过程可以看作是非齐次泊松过程,表示为下式:
其中,P{·}表示概率,N(t)表示计数过程,ψ(t)表示到t时刻为止,期望检测出故障的累计数量,也称为均值函数,t表示时间变量;k表示故障数量,k=1,2,...,n;
考虑到开源软件开发和测试的特点和复杂性,假设:
1)开源软件的故障检测服从三参数寿命分布;
2)在开源软件中,前一版本中的剩余故障与当前版本中新生成的故障有关;
3)开源软件检测到的瞬时故障与软件中的剩余故障有关;
4)当检测到开源软件中的故障时,会立即将其去除,不会引入新的故障;
需要注意的是,新产生的故障和新引入的故障的区别在于,前者表示由于开源软件功能和需求的变化,在新发布的软件中产生了新的故障。后者意味着新的故障被引入,当检测到的故障被去除时。
根据假设1)和3)可得:
其中,c>0和d>0表示形状参数;b>0表示尺度参数;η(t)表示故障检测率函数,ω表示期望最初检测出故障总的数量;
对公式(2)解微分方程组,可以得出:
ψ(t)=ω[1-exp(1-(1+btc)d)] (3)
将公式(3)转换成下式,
其中,F(t)表示三参数寿命分布函数;
一般来说,开源软件是多版本软件,当前版本中的故障包括新生成的故障和前一版本中的剩余故障,从假设2)中可以得出基于多版本的开源软件的可靠性模型如下:
发布1:
ψ1(t)=ω1F1(t) 0≤t<t1 (5)
发布2:
ψ2(t)=(ω2+ω1(1-F1(t1)))F2(t-t1),t1≤t<t2 (6)
发布3:
ψ3(t)=(ω3+(ω2+ω1(1-F1(t1)))(1-F2(t2)))F3(t-t2),t2≤t<t3 (7)
发布n:
其中,ψ1(t)表示在第一发布中,到t时刻为止,期望检测出故障的累计数量,也成为均值函数;F1(t)表示在第一次发布中,故障检测服从的分布函数;ψ2(t)表示在第二发布中,到t时刻为止,期望检测出故障的累计数量,也称为均值函数;F2(t)表示在第二次发布中,故障检测服从的分布函数;ψ3(t)表示在第三次发布中,到t时刻为止,期望检测出故障的累计数量,也成为均值函数;F3(t)表示在第三次发布中,故障检测服从的分布函数;ψn(t)表示在第n次发布中,到t时刻为止,期望检测出故障的累计数量,也成为均值函数;Fn(t)表示在第n次发布中,故障检测服从的分布函数;ti表示第i次发布故障检测结束时间;ωi表示在第i版本的开源软件中,期望最初检测出故障总的数量。
步骤2,基于多版本的开源软件可靠性模型的参数估计
用最小二乘法对开源软件可靠性模型的参数进行估计,最小二乘法可以表示为:
其中,ξi表示第i版本的开源软件最小二乘法表达式,ψi(t)表示第i版本的开源软件可靠性模型,即,到t时刻为止,期望检测出故障的累计数量;表示在第i版本的开源软件中,到t时刻为止,观察到的故障数量;
针对步骤1中的开源软件可靠性模型的参数,对公式(9)两边取偏微分建立方程如下:
其中,表示偏微分符号;
解方程组式(10),即可得出基于多版本的开源软件可靠性模型的参数值。
实施例2
基于多版本的开源软件可靠性模型的性能分析
故障数据集:
使用了网站bug跟踪系统中两个开源软件项目的故障数据集(https://issues.apache.org/),分别是apache omid(Omid)和Gobblin(Gobblin)项目。每个项目选择3个连续发布的软件作为开源软件故障数据采集的对象。对于Apache Omid项目,Omid0.9.0.0、Omid 1.0.0和Omid 1.0.1版本分别被重命名为第一个故障数据集(DS1)的Release-1(DS1-1)、Release-2(DS1-2)、Release-3(DS1-3)。对于Gobblin项目,Gobblin0.12.0、Gobblin 0.13.0和Gobblin0.14.0版本分别重命名为第二个故障数据集(DS2)的Release-1(DS2-1)、Release-2(DS2-2)、Release-3(DS2-3)。
在bug跟踪系统中,每个故障(问题,Issues)报告都有一些属性,如故障类型、故障关键字、故障id、故障总结、故障分配者、故障报告人、故障优先级、故障状态、故障解决方法、故障创建和故障更新等。在收集开源软件的故障数据时,我们去除了一些故障解决方法标注为重复、没有问题、无效、无法修复的故障。本发明将影响开源软件质量的因素称为故障(Faults)。2014年4月至2018年4月,DS1-1共检测到故障37处,2017年6月至2018年10月,DS1-2共采集到故障31处,2018年12月至2019年4月,DS1-3共采集到故障14处,2017年3月至2018年3月,在DS2-1中检测到55个故障。2017年7月至2018年7月,在DS2-1中收集了56个故障。2017年7月至2018年11月,在DS2-3中获得了73个故障。表1详细列出了故障数据集。
表1.开源软件故障数据集
比较标准:
本实施例采用下列5种经典的软件可靠性模型评价标准:均方误差(MSE)、平方误差预测和(PSSE)、R2、Theil统计(TS)和方差(Variance)。其中采用MSE、R2、TS和Variance对开源软件可靠性模型的拟合性能进行比较;采用PSSE、TS和Variance对开源软件可靠性模型的预测性能进行比较。
1)MSE可以被定义为下式:
式中,ψ(tj)表示均值函数,即,到tj时刻为止,期望检测出故障的累计数量;表示到tj时刻为止,观察到的故障数量;n表示故障数据集的样本大小;
2)R2可以被表示为下式:
3)PSSE可以表示为:
用t1到tn-k个时间点来估计模型的参数值;用tn-k+1到tn个时间点来预测模型的性能,k=1,2,3...,n-2
4)TS可以定义为:
TS表示模型估计值与实际观测到的故障数量之间的平均偏差百分比。
5)Variance可以表示为下式:
Variance是实际观测值和模型估计值的标准差。
MSE、PSSE、TS和Variance越小,模型的性能越好,R2越小,模型的拟合性能越差。
用于开源软件的可靠性模型比较的模型:
为了比较本发明模型的性能。选用其它四个开源软件可靠性模型,包括两个单发布(版本)开源软件可靠性模型(Li单发布模型和Wang单发布模型)、两个多发布(版本)开源软件可靠性模型(Yang多发布模型和Tandon多发布模型)
1、开源软件的可靠性模型的拟合性能比较
用100%的故障数据,比较了Li单发布(版本)模型、Wang单发布(版本)模型、Yang多发布(版本)模型、Tang多发布(版本)模型和本发明可靠性模型的拟合性能。结果如表2-4及图2(a)-(c)所示。
表2.用100%的DS1-1(OMID 0.9.0.0)进行开源软件可靠性模型的拟合性能比较
在表2的release-1中,本发明可靠性模型的MSE、TS和Variance均小于其它四种可靠性模型。而且本发明可靠性模型的R2大于其它四种可靠性模型。表明本发明在Release-1(DS1-1)数据集下,本发明可靠性模型的拟合性能优于其它四种模型。
表3.用100%的DS1-2(OMID 1.0.0)进行开源软件可靠性模型的拟合性能比较
在表3中,本发明可靠性模型的MSE、TS和Variance均小于其它四种可靠性模型。而且本发明可靠性模型的R2大于其它四种可靠性模型。表明本发明在Release-2(DS1-2)数据集下,本发明可靠性模型的拟合性能优于其它四种模型。Li单发布(版本)模型的拟合性能最差,Wang单发布(版本)模型的拟合性能与Yang多发布(版本)模型的拟合性能基本相当。
表4.用100%的DS1-3(OMID 1.0.1)进行开源软件可靠性模型的拟合性能比较
表4中,本发明可靠性模型的MSE、TS和Variance均小于其它四种可靠性模型。而且本发明可靠性模型的R2大于其它四种可靠性模型。表明本发明在Release-3(DS1-3)数据集下,本发明可靠性模型的拟合性能优于其它四种模型。Tandon多发布(版本)模型的拟合性能优于Li单发布(版本)模型、Wang单发布(版本)模型和Yang多发布(版本)模型。Li单发布(版本)模型是所有模型中最差的。
综合可得,本发明可靠性模型的拟合性能最好,除了本发明的可靠性模型外,Tandon多发布(版本)模型的拟合性能优于其它模型。图2(a)-(c)表明,本发明的可靠性模型的拟合性能排在第一位,其次是Tandon多发布(版本)模型。Wang单发布(版本)模型与Yang多发布(版本)模型等价。Li单发布(版本)模型是所有模型中最差的。
2、开源软件的可靠性模型的预测性能比较
用90%的DS2(DS2-1、DS2-2和DS2-3)故障数据集来估计模型的参数值,用剩余的DS2故障数据来比较模型的预测性能。实验结果如表5-7及图2(d)-(f)所示。
表5.用100%的DS2-1(GOBBLIN 0.12.0)进行开源软件可靠性模型的预测性能比较
在表5中,本发明可靠性模型的MSE、TS和Variance均小于其它四种可靠性模型,表明本发明可靠性模型的预测性能优于其它四种模型。Wang单发布(版本)模型的预测性能优于Li单发布(版本)模型、Yang多发布(版本)模型和Tandon多发布(版本)模型,在release-1中,Yang多发布(版本)模型和Tandon多发布(版本)模型大致相等。图2(d)显示了它们的比较结果。
表6.用100%的DS2-2(GOBBLIN 0.13.0)进行开源软件可靠性模型的预测性能比较
从表6可以看出,本发明可靠性模型的MSE、TS和Variance均小于其它四种可靠性模型,表明本发明可靠性模型的预测性能优于其它四种模型。Tandon多发布(版本)模型的预测性能优于Li单发布(版本)模型、Wang单发布(版本)模型的预测性能和Yang多发布(版本)模型的预测性能。Li单发布(版本)模型优于Wang单发布(版本)模型和Yang多发布(版本)模型,但Li单发布(版本)模型的TS远大于Wang单发布(版本)模型和Yang多发布(版本)模型。图2(e)显示了本发明的可靠性模型的预测性能最好。
表7.用100%的DS2-3(GOBBLIN 0.14.0)进行开源软件可靠性模型的预测性能比较
在表7中,本发明可靠性模型的MSE、TS和Variance均小于其它四种可靠性模型,表明本发明可靠性模型的预测性能优于其它四种模型。除了本发明的可靠性模型外,Tandon多发布(版本)模型的预测性能优于Li单发布(版本)模型。其中,Li单发布(版本)模型和Yang多发布(版本)模型的预测能力相当,从图2(f)可以看出,本发明可靠性模型的预测性能最好。
综上所述,本发明可靠性模型的拟合性能和预测性能相对稳定,而其它模型随着开发和测试环境的变化而变化。因此,在开源开发环境下,其它模型的适应性和稳定性较差,而本发明的可靠性模型服从三参数寿命期分布,可以捕捉到开源软件测试过程中故障检测的主要变化,具有良好的适应性、鲁棒性和稳定性。
3、开源软件可靠性模型的参数敏感性分析
使用100%的DS1(DS1-1、DS1-2和DS1-3)和90%的DS2(DS2-1、DS2-2和DS2-3)故障数据集进行本发明可靠性模型的参数值估计。表8列出了分别使用100%的DS1(DS1-1、DS1-2和DS1-3)和90%的DS2(DS2-1、DS2-2和DS2-3)故障数据集进行本发明模型的参数值估计。
表8.本发明的可靠性模型估计的参数值
参数敏感性分析是在改变一个参数值的同时,保持模型的其它参数值不变,进而观察模型的变化情况。从图3(a)-图(d)可以看出,本发明可靠性模型的四个参数都是敏感性参数。这充分说明了在开源软件开发和测试环境中,本发明的可靠性模型能够很好地满足开源软件开发和测试的规则和特点。在开源软件复杂的开发和测试环境中,它可以有效地评估软件的可靠性,预测开源软件中剩余故障的数量。此外,复杂的开源软件开发和测试环境也使得开源软件可靠性模型难以构建。本发明的可靠性模型的各参数对开源软件的可靠性评估和剩余失效预测都有重要作用。
Claims (1)
1.一种基于多版本的开源软件可靠性建模方法,其特征在于,包括以下步骤:
步骤1,基于多版本的开源软件可靠性模型的建立
开源软件的开发过程可以看作是非齐次泊松过程,表示为下式:
其中,P{·}表示概率;N(t)表示计数过程;ψ(t)表示到t时刻为止,期望检测出故障的累计数量,也称为均值函数;t表示时间变量;k表示故障数量;
针对开源软件开发和测试的特点和复杂性,假设:
1)开源软件的故障检测服从三参数寿命分布;
2)在开源软件中,前一版本中的剩余故障与当前版本中新生成的故障有关;
3)开源软件检测到的瞬时故障与软件中的剩余故障有关;
4)当检测到开源软件中的故障时,会立即将其去除,不会引入新的故障;
根据假设1)和3)可得:
其中,c>0和d>0表示形状参数;b>0表示尺度参数;η(t)表示故障检测率函数;ω表示期望最初检测出故障总的数量;
对公式(2)解微分方程组,可以得出:
ψ(t)=ω[1-exp(1-(1+btc)d)] (3)
将公式(3)转换成下式,
其中,F(t)表示三参数寿命分布函数;
一般来说,开源软件是多版本软件,当前版本中得故障包括新生成得故障和前一版本中的剩余故障,从假设2)中可以得出基于多版本的开源软件可靠性模型如下:
发布1:
ψ1(t)=ω1F1(t) 0≤t<t1 (5)
发布2:
ψ2(t)=(ω2+ω1(1-F1(t1)))F2(t-t1),t1≤t<t2 (6)
发布3:
ψ3(t)=(ω3+(ω2+ω1(1-F1(t1)))(1-F2(t2)))F3(t-t2),t2≤t<t3 (7)
发布n:
其中,ψ1(t)表示在第一发布中,到t时刻为止,期望检测出故障的累计数量,也成为均值函数;F1(t)表示在第一次发布中,故障检测服从的分布函数;ψ2(t)表示在第二发布中,到t时刻为止,期望检测出故障的累计数量,也称为均值函数;F2(t)表示在第二次发布中,故障检测服从的分布函数;ψ3(t)表示在第三次发布中,到t时刻为止,期望检测出故障的累计数量,也成为均值函数;F3(t)表示在第三次发布中,故障检测服从的分布函数;ψn(t)表示在第n次发布中,到t时刻为止,期望检测出故障的累计数量,也成为均值函数;Fn(t)表示在第n次发布中,故障检测服从的分布函数;ti表示第i次发布故障检测结束时间;ωi表示在第i版本的开源软件中,期望最初检测出故障总的数量;
步骤2,基于多版本的开源软件可靠性模型的参数估计
用最小二乘法对开源软件可靠性模型的参数进行估计,最小二乘法可以表示为:
其中,ξi表示第i版本的开源软件最小二乘法表达式,ψi(t)表示第i版本的开源软件可靠性模型,即,到t时刻为止,期望检测出故障的累计数量;Oti表示在第i版本的开源软件中,到t时刻为止,观察到的故障数量;
针对步骤1中的开源软件可靠性模型的参数,对公式(9)两边取偏微分建立方程如下:
其中,表示偏微分符号;
解方程组式(10),即可得出基于多版本的开源软件可靠性模型的参数值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110866232.5A CN113609009B (zh) | 2021-07-29 | 2021-07-29 | 一种基于多版本的开源软件可靠性建模方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110866232.5A CN113609009B (zh) | 2021-07-29 | 2021-07-29 | 一种基于多版本的开源软件可靠性建模方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113609009A CN113609009A (zh) | 2021-11-05 |
CN113609009B true CN113609009B (zh) | 2023-09-22 |
Family
ID=78306046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110866232.5A Active CN113609009B (zh) | 2021-07-29 | 2021-07-29 | 一种基于多版本的开源软件可靠性建模方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113609009B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103383659A (zh) * | 2013-07-11 | 2013-11-06 | 哈尔滨工程大学 | 一种软件加速生命测试方法 |
US10346287B1 (en) * | 2018-06-06 | 2019-07-09 | The United States Of America, As Represented By The Secretary Of The Navy | Detection of degenerate software forms in object oriented code |
CN111045939A (zh) * | 2019-12-09 | 2020-04-21 | 山西大学 | Weibull分布的故障检测开源软件可靠性建模方法 |
CN111488281A (zh) * | 2020-05-28 | 2020-08-04 | 山西大学 | 一种基于随机引进故障的开源软件可靠性建模方法 |
-
2021
- 2021-07-29 CN CN202110866232.5A patent/CN113609009B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103383659A (zh) * | 2013-07-11 | 2013-11-06 | 哈尔滨工程大学 | 一种软件加速生命测试方法 |
US10346287B1 (en) * | 2018-06-06 | 2019-07-09 | The United States Of America, As Represented By The Secretary Of The Navy | Detection of degenerate software forms in object oriented code |
CN111045939A (zh) * | 2019-12-09 | 2020-04-21 | 山西大学 | Weibull分布的故障检测开源软件可靠性建模方法 |
CN111488281A (zh) * | 2020-05-28 | 2020-08-04 | 山西大学 | 一种基于随机引进故障的开源软件可靠性建模方法 |
Non-Patent Citations (1)
Title |
---|
Weibull分布引进故障的软件可靠性增长模型;王金勇;张策;米晓萍;郭新峰;李济洪;;软件学报(第06期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113609009A (zh) | 2021-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111459700B (zh) | 设备故障的诊断方法、诊断装置、诊断设备及存储介质 | |
Han et al. | Inference for a step-stress model with competing risks for failure from the generalized exponential distribution under type-I censoring | |
CN109062189B (zh) | 一种用于复杂故障的工业过程故障诊断方法 | |
Bollen et al. | Issues in the structural equation modeling of complex survey data | |
CN109857582B (zh) | 一种基于排错过程引进故障的开源软件可靠性建模方法 | |
CN111045939B (zh) | Weibull分布的故障检测开源软件可靠性建模方法 | |
CN107124289B (zh) | 网络日志时间对齐方法、装置及主机 | |
CN109271319B (zh) | 一种基于面板数据分析的软件故障的预测方法 | |
Parvez et al. | Real-time pattern matching and ranking for early prediction of industrial alarm floods | |
CN117008479B (zh) | 基于生物质气化炉的负碳排放优化控制方法及系统 | |
Gao et al. | Modeling probabilistic measurement correlations for problem determination in large-scale distributed systems | |
CN114978956A (zh) | 智慧城市网络设备性能异常突变点检测方法及装置 | |
WO2016031681A1 (ja) | ログ分析装置、ログ分析システム、ログ分析方法及びコンピュータプログラム | |
CN113609009B (zh) | 一种基于多版本的开源软件可靠性建模方法 | |
CN103885867A (zh) | 一种模拟电路性能的在线评价方法 | |
CN108241790A (zh) | 基于恒加试验数据的Weibull型产品可靠性估计方法 | |
CN111737113B (zh) | 故障检测和引进非线性变化的开源软件可靠性建模方法 | |
CN107169187B (zh) | 一种海洋平台重量预估方法 | |
CN110532122B (zh) | 故障分析方法及系统、电子设备、存储介质 | |
CN111045938B (zh) | 基于Pareto分布故障引进开源软件可靠性建模方法 | |
CN109857581B (zh) | 一种优化选择软件可靠性增长模型的方法 | |
KR101884907B1 (ko) | 빅데이터 분석 기반 신뢰도 예측 방법 | |
CN115118580A (zh) | 告警分析方法以及装置 | |
CN113778872B (zh) | 一种故障引进下降变化的开源软件可靠性建模方法 | |
CN108960332A (zh) | 一种基于多向主元素分析法的在线监测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |