📜  软件工程| Jelinski和Moranda模型

📅  最后修改于: 2021-01-10 03:05:28             🧑  作者: Mango

杰林斯基和莫兰达模型

Jelinski-Moranda(JM)模型也是一个马尔可夫过程模型,已严重影响了许多后来的模型,这些模型实际上是对该简单模型的修改。

JM模型的特征

以下是JM模型的特征:

  • 是二项式模型
  • 它肯定是最早的,当然也是最著名的黑匣子模型之一。
  • JM模型始终会产生过分乐观的可靠性预测。
  • JM模型遵循完善的调试步骤,即,使用确定的简单模型消除检测到的故障。
  • 在第i个故障间隔内J?M模型的恒定软件故障率由下式给出:

λ(t i )= ϕ [N-(i-1)],i = 1,2 … N ………等式1

哪里

ϕ =比例常数,指示每个故障提供的故障率

N =软件中的初始错误数

T I =(I-1)和(i)故障之间的时间。

该模型属于二项式的平均值和故障强度方法可以通过分别将故障的固有数量乘以累积故障和概率密度函数(pdf)来获得:

μ(t i )= N(1-e -ϕt i )……..方程2

€(t i )= Nϕe -ϕt i ………….等式3

表中总结了这些特征以及JM模型的其他四个特征:

Measures of Reliability name Measures of Reliability formula
Probability density function f(ti)= ϕ[N-(i-1]e-ϕ[N-(i-1)]ti
Software Reliability function R(ti)= e-ϕ[N-(i-1)]ti
Failure rate function λ(ti)= ϕ[N-(i-1)]
Mean time to failure function Jelinski and Moranda Model
Mean value function µ(ti )=N(1-e-ϕti)
Failure Intensity function €(ti )=Nϕe-ϕti
Median m={ϕ[N-(i-1)]} -1 In2
Cumulative Distribution function f(ti)=1-e-ϕ[N-(i-1)]ti

假设条件

JM模型中所做的假设包括以下内容:

  • 初始软件错误的数量是未知的,但是是固定且恒定的。
  • 软件中的每个错误都是独立的,并且同样有可能在测试期间导致失败。
  • 故障发生之间的时间间隔是独立的,呈指数分布的随机变量。
  • 在发生故障的范围内,软件故障率保持固定。
  • 故障率与软件中剩余的故障数相对应。
  • 立即消除检测到的错误,并且在除去检测到的缺陷期间不会引入新的错误。
  • 只要出现故障,就可以确定地减少相应的故障。

JM模型的变化

JM模型是第一个突出的软件可靠性模型。现在,一些研究人员表现出了兴趣并修改了该模型,并使用了不同的参数,例如故障率,完美调试,不完善的调试,失败次数等。我们将讨论该模型的不同现有变体。

1. Jelinski-Moranda几何模型的Lipow修改版本

它允许在一个时间间隔内清除多个错误。程序失败率变为

λ(t i )= DK n i-1

其中n i-1是直到第(i-1)个时间间隔为止发现的错误的累积数量。

2. Sukert修正的Schick-Wolverton模型

Sukert修改了软件模型,以在每个时间间隔允许多个故障。程序失败率变为

其中n i-1是第(i-1)个故障间隔的累积故障数。

3.希克·沃尔弗顿模型

Schick和Wolverton (SW)模型JM模型相似,不同之处在于它进一步考虑到自上次调试以来,第i个时间间隔的故障率随时间增加。

假设条件

  • 错误是偶然发生的。
  • 在定义的时间间隔内,错误检测率是恒定的。
  • 错误是相互独立的。
  • 没有开发新的错误。
  • 检测到错误后,将对其进行纠正。

在该模型中,程序失败率方法是:

λ(t i )= ϕ [N-(i-1)] t i

其中φ是比例常数,N是程序中的错误的初始数量,并且t i是由于第(i-1)个故障的测试时间。

4. GO-不完美调试模型

Goel和Okumoto假设每次出现故障时都以概率p消除了错误,从而扩展了JM模型。第i个故障间隔的程序故障率是

λ(t i )= ϕ [Np(i-1)]
R(t i )= e -ϕ [Np(i-1)]-t i )

5. Jelinski-Moranda几何模型

该模型认为程序故障率函数最初为常数D,并在故障时以几何方式减小。第i个故障间隔的程序故障率和故障间隔时间的可靠性方法为

λ(t i )= DK i-1
R(t i )= e -DK i-1 t i )

其中k是几何函数的参数, 0

6. Little-Verrall贝叶斯模型

该模型认为,故障之间的时间是参数i = 1,2 …. n的独立指数随机变量,其本身具有参数Ψ(i)α,反映了编程人员的素质和函数难度,具有先验的伽马分布。

其中B代表故障减少因子

7. Shanthikumar通用马尔可夫模型

该模型认为故障强度随消除的故障数而变化,如下所示

λSG (n,t)=Ψ(t)(N 0 -n)

Ψ(t)是比例常数。

8.在软件开发过程中的应用程序错误检测模型

这种新模型的主要特征是可以适应正在开发的程序的可变(增长)大小,以便可以通过分析基本段来预测程序的质量。

假设条件

该模型具有以下假设以及JM模型假设:

  • 该程序的任何经过测试的初始部分均会针对其初始错误的数量和性质来描述整个程序。
  • 错误的可检测性不受最初测试的方法用新代码增强时产生的“稀释”的影响。
  • 随时存在的代码行数是已知的。
  • 增长函数和错误检测过程是独立的。

9. Langberg Singpurwalla模型

该模型显示了如何通过采用贝叶斯的观点来全面查看用于定义计算机软件可靠性的几种模型。

该模型使用冲击模型中的概念为常用模型提供了不同的动机。

10. Jewell贝叶斯软件可靠性模型

Jewell扩展了Langberg和Singpurwalla(1985)的结果,并扩展了Jelinski-Moranda模型。

假设条件

  • 授权测试协议运行固定的时间长度(可能但不一定)与故障时期一致。
  • 通过考虑参数本身是具有Beta先验分布的随机量,可以从一参数泊松分布中概括出未知短缺数量的分布。
  • 尽管对参数的后验分布的估计会导致复杂的表达式,但我们表明,未检测到的错误的预测分布的计算很简单。
  • 尽管现在确定了可靠性,增长的MLE可能是不稳定的,但我们表明,如果需要点估计量,则可以轻松计算预测模型,而无需先获取完整的分布。

11.对JM模型的量子修改

该模型取代了JM模型的假设,每个错误对软件的不可靠性都有相同的贡献,而新的假设是不同类型的错误可能对软件的故障率产生不同的影响。

失败率:

哪里

Q =软件固有的故障量子单位的初始数量

Ψ =与单个故障量子单位相对应的故障率

w j =第i个故障的故障量子单元数,即第i个故障量子的大小

12.基于马尔可夫软件可靠性模型的最优软件发布

在该模型中,软件故障检测方法通过吸收的马尔可夫出生过程来解释。本文通过考虑浪费软件测试时间来修改最佳软件发布策略。

13.基于云模型理论的Jelinski-Moranda软件可靠性增长模型的修正

一个新的未知参数θ包含在JM模型参数的估计,使得θɛ[θL,θ∪]。置信水平是与置信区间相关的概率值(1-α)。通常,如果达到了软件可靠性指标θ的置信区间,我们就可以估算虚拟云C(Ex,En,He)的数学特征,可以通过X条件云生成器将其转换为系统定性评估。

14.修改后的JM模型具有不完善的调试现象

修改后的JM模型通过放宽对完整调试过程和不完全删除类型的假设来扩展JM模型:

  • 没有引入新故障时,无法成功删除故障
  • 由于错误诊断而创建新故障时,无法成功删除故障。

假设条件

修改后的JM模型所做的假设包括以下内容:

  • 初始软件错误的数量是未知的,但是是固定且恒定的。
  • 软件中的每个错误都是独立的,并且同样可行,在测试期间会导致失败。
  • 故障发生之间的时间间隔是独立的,呈指数分布的随机变量。
  • 在故障发生之间的时间间隔内,软件故障率保持固定。
  • 故障率与软件中保留的错误数量成正比。
  • 每当发生故障时,以概率p消除检测到的错误,以概率q消除检测到的故障,并且以概率r生成新的故障。因此,显然p + q + r = 1且q≥r。

具有不完善调试现象的改进JM模型的各种特性列表

Measures of reliability name Measures of reliability formula
Software failure rate λ(ti=ϕ[N-(i-1)(p-r)]
Failure Density Function F(ti= ϕ[N-(i-1)(p-r)]exp(-ϕ[N-(i-1)(p-r)] ti)
Distribution Function Fi(ti)=1-exp(-ϕ[N-(i-1)(p-r)] ti)
Reliability function at the ith failure interval R(ti)=1-Fi (ti )=exp(-ϕ[N-(i-1)(p-r)] ti)
Mean time to failure function 1/ ϕ[N-(i-1)(p-r)]