📜  软件工程 | Goel-Okumoto 模型

📅  最后修改于: 2022-05-13 01:56:59.473000             🧑  作者: Mango

软件工程 | Goel-Okumoto 模型

Goel-Okumoto 模型(也称为指数 NHPP 模型)基于以下假设:

  1. 从故障检测的角度来看,程序中的所有故障都是相互独立的。
  2. 任何时候检测到的故障数量与程序中当前的故障数量成正比。这意味着实际发生(即检测到)故障的故障概率是恒定的。
  3. 隔离的故障在未来的测试场合之前被移除。
  4. 每次发生软件故障时,立即消除导致该故障的软件错误,并且不会引入新的错误。

这显示在以下微分方程中:

    $$\frac{\partial m(t)}{\partial t} = b[a-m(t)]$$  \null\hfill    Eqn(1)

其中a是测试前软件中存在的预期故障总数,b是故障检测率或故障的故障强度。

    定理:

微分方程 1 的均值函数解由下式给出

    $$m(t) = a(1-e^{-bt})$$

该模型被称为Goel-Okumoto 模型

对于 Type-I 数据,使用 MLE 方法对 Goel-Okumoto 模型的参数 a 和 b 的估计值可以通过同时求解以下方程获得:

    $$a= \frac{y_n}{(1-e^{-bt_n})}\\$$ $$\frac{y_nt_ne^{-bt_n}}{1-e^{-bt_n}} = \sum_{k=1}^n  \frac{(y_k-y_{k-1})(t_ke^{-bt_k}-t_{k-1}e^{-bt_{k-1}})}{(e^{-bt_{k-1}}-e^{-bt_k})}  \\ $$

类似地,对于 Type-II 数据,使用 MLE 估计参数 a 和 b
方法可以通过求解以下方程得到:

    $$a= \frac{n}{(1-e^{-bS_n})}\\$$ $$\frac{n}{b} = \sum_{k=1}^n S_i + \frac{nS_ne^{(-bS_n)}}{1-e^{-bS_n})}  \\ $$

 $\hat{a}$ $ \hat{b} $ 分别是参数 a 和 b 的 MLE。然后我们可以得到均值函数(MVF)和可靠性函数的 MLE,如下所示:

    $$\hat{m} (t)=\hat{a} [1-e^{-\hat{b}t}]$$ $$ \hat{R} (x|t)=e^{-\hat{a}[e^{-\hat{b}t}-e^{-\hat{b}(t+x)}]}$$

确定在时间 t 的故障次数 N(t) 的可变性是有意义的。可以根据泊松分布近似获得 N(t) 的置信区间为

    $$\hat{m}-z_{\alpha} \sqrt{\hat{m}(t)}\leq N(t)\leq \hat{m}(t) + z_{\alpha}  \sqrt{\hat{m}(t)}  $$

在哪里$z_a$$100(1+\alpha)/2$标准正态分布的百分位数,即 N(0, 1)。