CN108733407A - 一种基于屏蔽数据的开源软件可靠性评估方法 - Google Patents
一种基于屏蔽数据的开源软件可靠性评估方法 Download PDFInfo
- Publication number
- CN108733407A CN108733407A CN201810395045.1A CN201810395045A CN108733407A CN 108733407 A CN108733407 A CN 108733407A CN 201810395045 A CN201810395045 A CN 201810395045A CN 108733407 A CN108733407 A CN 108733407A
- Authority
- CN
- China
- Prior art keywords
- open source
- source software
- data
- function
- software system
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/77—Software metrics
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种基于屏蔽数据的开源软件可靠性评估方法,根据屏蔽数据的特征,利用可叠加的非齐次泊松过程理论,计算开源软件系统的累计失效函数和失效率,进一步评估开源软件系统的可靠性。本发明通过使用EM(Expectation Maximization)算法,可以解决一般屏蔽数据下开源软件可靠性评估中的极大似然估计难以实施的问题,能够及时给出开源软件可靠性的评估结果,从而满足实时快速评估软件可靠性的需求。
Description
技术领域
本发明涉及一种基于屏蔽数据的开源软件可靠性评估方法,属于开源软件可靠性计算方法技术领域。
背景技术
软件公司为了开发出高质量、高安全、让用户满意的产品,花费大量的开发成本对软件进行测试,排除故障,提高软件的可靠性。自上世纪90年代以来,开源软件得到了快速发展,随着下一代互联网、移动互联网的发展,开源软件的理念将与软件服务化(SaaS)的理念更加契合。开源软件这种基于集市开发、同行评审、社区开发等特点决定了它与传统商业软件开发模式的巨大差别。
屏蔽数据是指引起系统失效的真实原因不得而知,即失效原因可能是系统组件(对象、子系统、模块)的某个子集。在实际软件开发过程中,由于受软件测试策略及测试费用等问题的影响,使得完整的失效数据很难获得或者需要耗费大量的资源,因此软件的失效数据中出现了屏蔽现象,即导致系统失效的原因不能确定或者某些失效类型不能判断。
目前,开源软件可靠性的评估方法大多采用非齐次泊松过程和随机微分方程理论来进行计算,这些计算方法中很少涉及到屏蔽失效的现象,因此,已有的可靠性评估方法无法解决软件测试过程中的失效屏蔽现象,不能更好的利用子系统的失效数据,从而不能实时精确的评估系统的可靠性。
发明内容
为解决上述技术问题,本发明提供了一种基于屏蔽数据的开源软件可靠性评估方法,该基于屏蔽数据的开源软件可靠性评估方法能够处理失效数据中的屏蔽现象,从而能够满足实时精确的可靠性评估的需要。
本发明通过以下技术方案得以实现。
本发明提供的一种基于屏蔽数据的开源软件可靠性评估方法,包括以下步骤:
①分析开源软件系统包含的模块,并收集模块中包含屏蔽现象的失效数据;
②根据失效数据,检验每个模块和开源软件系统的失效过程是否服从非齐次泊松过程;
③是,则根据可叠加的非齐次泊松过程,计算开源软件系统的累计故障函数m(t),否,则跳转步骤①;
④采用极大似然估计法计算累计函数中的未知参数,并利用EM算法优化非线性复杂的似然函数,获取未知参数。
⑤根据步骤③和④,计算开源软件系统的失效强度函数λ(t)和可靠度函数R(t),对开源软件系统进行可靠性评估。
所述可叠加的非齐次泊松过程的计算公式为:
其中,N(t)为开源软件系统的累计失效数,Ni(t)为第i个模块的累计失效数据,其中i的取值范围为1、2...k,k为开源软件系统所包含的模块数。
所述累计故障函数m(t)的计算公式为:
其中,mi(t)为第i个模块的故障均值函数,其中i的取值范围为1、2...k。
所述失效强度函数λ(t)的计算公式为:
其中,λi(t)为第i个模块的失效强度函数,其中i的取值范围为1、2...k。
所述可靠度函数R(t)的计算公式为:
R(Δt|t)=P{N(t+Δt)-N(t)=0}=exp{-m[t+Δt]-m(t)};
其中,(t,t+Δt)为开源软件系统可靠性反映没有发生失效的时间段。
所述EM算法的步骤如下:
A.当步骤①中的失效数据存在时,开源软件系统的失效数据包括可观测的数据Xobs和缺失的数据Xmiss两个;
B.根据可观测的数据Xobs、缺失的数据Xmiss、参数向量θ和当前的估计值θl,计算对数似然函数的条件期望;
C.通过计算条件期望的最大值,找到未知参数向量θ的新估计值θl+1。
所述条件期望E(θl,θ)的计算公式如下:
其中,l的取值范围为{1、2……n},n为自然数,E为条件期望,为θl的条件期望。
本发明的有益效果在于:通过使用EM(Expectation Maximization)算法,可以解决一般屏蔽数据下开源软件可靠性评估中的极大似然估计难以实施的问题,能够及时给出开源软件可靠性的评估结果,从而满足实时快速评估软件可靠性的需求。
附图说明
图1是本发明的流程图;
图2是本发明实施例的开源软件系统失效过程中的屏蔽失效现象特例图。
具体实施方式
下面进一步描述本发明的技术方案,但要求保护的范围并不局限于所述。
如图1所示,一种基于屏蔽数据的开源软件可靠性评估方法,包括以下步骤:
①分析开源软件系统包含的模块,并收集模块中包含屏蔽现象的失效数据;
②根据失效数据,检验每个模块和开源软件系统的失效过程是否服从非齐次泊松过程;
③是,则根据可叠加的非齐次泊松过程,计算开源软件系统的累计故障函数m(t),否,则跳转步骤①;
④采用极大似然估计法计算累计函数中的未知参数,并利用EM算法优化非线性复杂的似然函数,获取未知参数。
⑤根据步骤③和④,计算开源软件系统的失效强度函数λ(t)和可靠度函数R(t),对开源软件系统进行可靠性评估。
所述可叠加的非齐次泊松过程的计算公式为:
其中,N(t)为开源软件系统的累计失效数,Ni(t)为第i个模块的累计失效数据,即步骤①中采集到的失效数据,其中i的取值范围为1、2…k,k为系统所包含的模块数。
所述累计故障函数m(t)的计算公式为:
其中,mi(t)为第i个模块的故障均值函数,其中i的取值范围为1、2…k,k为系统所包含的模块数。
所述失效强度函数λ(t)的计算公式为:
其中,λi(t)为第i个模块的失效强度函数,其中i的取值范围为1、2...k,k为系统所包含的模块数。
所述可靠度函数R(t)的计算公式为:
R(Δt|t)=p{N(t+Δt)-N(t)=0}=exp{-m[t+Δt]-m(t)};
其中,(t,t+Δt)为开源软件系统可靠性反映没有发生失效的时间段。
所述EM算法的步骤如下:
A.当步骤①中的失效数据存在时,开源软件系统的失效数据包括可观测的数据Xobs和缺失的数据Xmiss两个;
B.根据可观测的数据Xobs、缺失的数据Xmiss、数向量θ和当前的估计值θl,计算对数似然函数的条件期望;
C.通过计算条件期望的最大值,找到未知参数向量θ的新估计值θl+1。
所述条件期望E(θl,θ)的计算公式如下:
其中,为θl的条件期望,E为条件期望,I的取值范围为{1、2......n},n为自然数。
进一步地,序列{θl,l=1、2.........}将收敛于未知参数的极大似然估计值。
实施例
如上所述,从开源软件系统的在线缺陷跟踪系统中收集故障数据,该故障数据中包含了一般屏蔽失效数据,然后根据屏蔽数据的特征,利用可叠加的非齐次泊松过程理论,计算开源软件系统的累计失效函数和失效率,进一步评估开源软件系统的可靠性。
进一步地,一般屏蔽数据的定义如下:
假设开源软件系统包含k个对象,由此k个对象的索引构成了一个对象集合U={1,2,…,k},若系统在tj(j=1,2,…)时刻发生一次失效,记Sj为tj时刻软件系统失效原因的对象集合,定义形如(k,tj,Sj)结构的数据为一般屏蔽数据。
若开源软件系统包含k个子系统(组件或模块),为了说明本发明的实施过程,本发明以一个包含3个组件的开源软件系统为案例,如图2所示,来评估系统的可靠性。
通过开源软件系统的缺陷跟踪管理系统,可以得到类似表1所示的屏蔽失效数据。
表1
以经典的G-O模型为例来说明该发明的实施过程,G-O模型的累计故障均值函数为m(t)=1-exp(-bit),不同的模型有不同的故障值函数。
根据G-O模型,可以计算开源软件系统的累计故障函数和失效强度函数λ(t)=m'(t),其中ai和bi为未知参数。
当屏蔽数据的存在时,参数的极大似然过程非常复杂,因为似然函数是一个复杂的非线性函数,一般的要利用数值算法对其求解。本发明利用EM算法对其求解,得到未知参数的估计值和该方法大大降低了极大似然估计的复杂度。
根据已经得到的估计值和进一步可得开源软件系统的可靠度函数为:
Claims (7)
1.一种基于屏蔽数据的开源软件可靠性评估方法,其特征在于:包括以下步骤:
①分析开源软件系统包含的模块,并收集模块中包含屏蔽现象的失效数据;
②根据失效数据,检验每个模块和开源软件系统的失效过程是否服从非齐次泊松过程;
③是,则根据可叠加的非齐次泊松过程,计算开源软件系统的累计故障函数m(t),否,则跳转步骤①;
④采用极大似然估计法计算累计函数中的未知参数,并利用EM算法优化非线性复杂的似然函数,获取未知参数。
⑤根据步骤③和④,计算开源软件系统的失效强度函数λ(t)和可靠度函数R(t),对开源软件系统进行可靠性评估。
2.如权利要求1所述的基于屏蔽数据的开源软件可靠性评估方法,其特征在于:所述可叠加的非齐次泊松过程的计算公式为:
其中,N(t)为开源软件系统的累计失效数,Ni(t)为第i个模块的累计失效数据,其中i的取值范围为1、2…k,k为开源软件系统所包含的模块数。
3.如权利要求1所述的基于屏蔽数据的开源软件可靠性评估方法,其特征在于:所述累计故障函数m(t)的计算公式为:
其中,mi(t)为第i个模块的故障均值函数,其中i的取值范围为1、2...k。
4.如权利要求1所述的基于屏蔽数据的开源软件可靠性评估方法,其特征在于:所述失效强度函数λ(t)的计算公式为:
其中,λi(t)为第i个模块的失效强度函数,其中i的取值范围为1、2...k。
5.如权利要求1所述的基于屏蔽数据的开源软件可靠性评估方法,其特征在于:所述可靠度函数R(t)的计算公式为:
R(Δt|t)=P{N(t+Δt)-N(t)=0}=exp{-m[t+Δt]-m(t)};
其中,(t,t+Δt)为开源软件系统可靠性反映没有发生失效的时间段。
6.如权利要求1所述的基于屏蔽数据的开源软件可靠性评估方法,其特征在于:所述EM算法的步骤如下:
A.当步骤①中的失效数据存在时,开源软件系统的失效数据包括可观测的数据Xobs和缺失的数据Xmiss两个;
B.根据可观测的数据Xobs、缺失的数据Xmiss、参数向量θ和当前的估计值θl,计算对数似然函数的条件期望;
C.通过计算条件期望的最大值,找到未知参数向量θ的新估计值θl+1。
7.如权利要求6所述的基于屏蔽数据的开源软件可靠性评估方法,其特征在于:所述条件期望E(θl,θ)的计算公式如下:
其中,l的取值范围为{1、2……n},n为自然数,E为条件期望,为θl的条件期望。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810395045.1A CN108733407A (zh) | 2018-04-27 | 2018-04-27 | 一种基于屏蔽数据的开源软件可靠性评估方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810395045.1A CN108733407A (zh) | 2018-04-27 | 2018-04-27 | 一种基于屏蔽数据的开源软件可靠性评估方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108733407A true CN108733407A (zh) | 2018-11-02 |
Family
ID=63940082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810395045.1A Pending CN108733407A (zh) | 2018-04-27 | 2018-04-27 | 一种基于屏蔽数据的开源软件可靠性评估方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108733407A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109871323A (zh) * | 2019-01-29 | 2019-06-11 | 山西大学 | 一种基于信息熵的二维软件可靠性增长模型 |
CN113407428A (zh) * | 2021-06-22 | 2021-09-17 | 贵州理工学院 | 人工智能系统的可靠性评估方法、装置和计算机设备 |
CN113535546A (zh) * | 2021-06-17 | 2021-10-22 | 深圳开源互联网安全技术有限公司 | 一种开源组件评估方法、装置及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063375A (zh) * | 2011-01-13 | 2011-05-18 | 北京航空航天大学 | 一种基于混合测试的软件可靠性评估方法及其装置 |
US20150025872A1 (en) * | 2013-07-16 | 2015-01-22 | Raytheon Company | System, method, and apparatus for modeling project reliability |
CN106021097A (zh) * | 2016-05-09 | 2016-10-12 | 北京航空航天大学 | 基于测试特征的软件可靠性指标区间估计方法 |
-
2018
- 2018-04-27 CN CN201810395045.1A patent/CN108733407A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063375A (zh) * | 2011-01-13 | 2011-05-18 | 北京航空航天大学 | 一种基于混合测试的软件可靠性评估方法及其装置 |
US20150025872A1 (en) * | 2013-07-16 | 2015-01-22 | Raytheon Company | System, method, and apparatus for modeling project reliability |
CN106021097A (zh) * | 2016-05-09 | 2016-10-12 | 北京航空航天大学 | 基于测试特征的软件可靠性指标区间估计方法 |
Non-Patent Citations (5)
Title |
---|
JIANFENG YANG等: ""Modeling and analysis of reliability of multi-release open source software incorporating both fault detection and correction processes"", 《JOURNAL OF SYSTEMS AND SOFTWARE》 * |
YANG JIAN-FENG等: ""Reliability estimation for component-based software using general masking grouped data"", 《JOURNAL OF DONGHUA UNIVERSITY (ENGLISH EDITION)》 * |
ZHAO M.等: ""EM algorithms for estimating software reliability based on masked data"", 《MICROELECTRONICS RELIABILITYV》 * |
徐高潮 等: ""引入关联缺陷的软件可靠性评估模型"", 《软件学报》 * |
杨剑锋 等: ""屏蔽数据下软件可靠性的极大似然估计"", 《系统工程与电子技术》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109871323A (zh) * | 2019-01-29 | 2019-06-11 | 山西大学 | 一种基于信息熵的二维软件可靠性增长模型 |
CN109871323B (zh) * | 2019-01-29 | 2021-07-02 | 山西大学 | 一种基于信息熵的二维软件可靠性增长模型的建立方法 |
CN113535546A (zh) * | 2021-06-17 | 2021-10-22 | 深圳开源互联网安全技术有限公司 | 一种开源组件评估方法、装置及计算机可读存储介质 |
CN113535546B (zh) * | 2021-06-17 | 2023-09-08 | 深圳开源互联网安全技术有限公司 | 一种开源组件评估方法、装置及计算机可读存储介质 |
CN113407428A (zh) * | 2021-06-22 | 2021-09-17 | 贵州理工学院 | 人工智能系统的可靠性评估方法、装置和计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108375715B (zh) | 一种配电网线路故障风险日预测方法及系统 | |
CN109271374A (zh) | 一种基于机器学习的数据库健康度打分方法和打分系统 | |
CN111143097B (zh) | 面向gnss定位服务的故障治理系统和方法 | |
CN108733407A (zh) | 一种基于屏蔽数据的开源软件可靠性评估方法 | |
CN107423181A (zh) | 一种统一存储设备的自动化测试方法及装置 | |
CN107992410B (zh) | 软件质量监测方法、装置、计算机设备和存储介质 | |
CN107633155A (zh) | 用于组件故障树的基于计算机的生成的方法和设备 | |
CN109308225B (zh) | 一种虚拟机异常检测方法、装置、设备及存储介质 | |
CN106022912A (zh) | 评价模型的更新方法及系统 | |
CN113407723A (zh) | 多源异构电力负荷数据融合方法、装置、设备和存储介质 | |
CN106125713B (zh) | 一种区间删失情况下可靠性增长的评估与预测方法 | |
CN112183555B (zh) | 焊接质量的检测方法、系统、电子设备和存储介质 | |
CN117520184A (zh) | 一种计算机软件开发用测试系统 | |
Dai Vu et al. | Deep learning-based fault prediction in cloud system | |
CN111045938B (zh) | 基于Pareto分布故障引进开源软件可靠性建模方法 | |
CN106202162B (zh) | 一种用于测试推荐房间数据列表的测试系统及方法 | |
Bala et al. | Use of the multiple imputation strategy to deal with missing data in the ISBSG repository | |
CN116402325A (zh) | 业务流程自动化处理方法及装置 | |
CN115935795A (zh) | 一种电力系统暂态电压稳定评估模型构建方法及评估方法 | |
CN112162528B (zh) | 一种数控机床的故障诊断方法、装置、设备和存储介质 | |
CN114783538A (zh) | 一种煤炭灰分预测方法及装置 | |
CN104572455B (zh) | 一种基于马尔科夫链的构件化软件可靠性评估方法 | |
Qu et al. | Detection of False Data Injection Attack in Power System Based on Hellinger Distance | |
CN107102543A (zh) | 一种能量路由器抗干扰控制器的形成方法及装置 | |
CN111291464A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181102 |
|
RJ01 | Rejection of invention patent application after publication |