一种基于移动点和不完美排错的软件可靠性建模方法

文档序号:9200210阅读:416来源:国知局
一种基于移动点和不完美排错的软件可靠性建模方法
【技术领域】
[0001] 本发明涉及软件可靠性增长模型研宄领域,具体是指一种基于移动点和不完美排 错的软件可靠性建模方法。
【背景技术】
[0002] 随着计算机技术的飞速发展,软件正日益广泛地应用于社会的各个领域,且规模 越来越大,复杂性越来越高。社会对具有高可靠性的软件的需求也在大幅度地增长,特别 是应用于尖端领域的软件,保障和预测其可靠性日益重要。软件工程的质量保证和评估 重点就是如何提高软件的可靠性。软件可靠性增长模型(Software Reliability Growth Model,简称SRGM)是在数理统计学的基础上预测和评估软件可靠性的重要手段。
[0003] 软件可靠性增长模型的实质是利用软件测试阶段的失效数据,对软件的运行情况 进行评估和预测,从而决定软件的可靠性水平是否达到用户的要求和是否可以发布使用。 故障检测过程和故障排除过程是软件测试阶段影响可靠性建模精度的两个重要因素。现有 的大多数模型对于故障检测过程的建模非常精确,只有少数文献对故障排除过程进行了研 宄。实际上,故障排除过程中存在不完美排错现象,在软件可靠性建模中该现象涉及到的影 响因素是故障排除率函数和故障引入率函数。由于软件测试人员的技术水平不同,故障的 结构和性质不同,故障的难易程度不同,故障排除率并不是1〇〇%,且为随测试时间变化的 函数;同时,在检测故障的过程中可能会有新的故障引入,即存在故障引入率,且为随测试 时间变化的函数。
[0004] 对于不完美排错现象,有的学者虽然同时考虑故障排除率和故障引入率,但为了 方便计算,简化故障引入率的函数表达形式,对此过程的建模并不精确,进而导致所提出的 软件可靠性增长模型精度降低。此外,检测过程中的故障检测率既不是常值也不是连续平 滑的,在某时刻会发生瞬间变化,即存在移动点现象。移动点现象广泛存在于软件失效过程 中,但目前在故障检测与修正过程中同时考虑不完美排错和移动点现象的研宄却没有。
[0005] 文献:Pham H.,Nordmann L.,Zhang X.在 1999 年发表的《A general imperfect software debugging model with S-shaped fault-detection rate》提出了考虑故障引入 率的PNZ模型,假设故障引入率为常数,但没考虑故障排除率。
[0006] 文献:Zhang X.,Teng S.,Pham H.在 2003年发表的《Considering fault removal efficiency in software reliability assessment》提出了一种考虑故障排除率和引入率 的软件可靠性增长模型,假设故障排除率和故障引入率为常数。
[0007] 文献:李春芝等在2005年发表的《考虑测试覆盖率和故障排除效率的软件可靠 性增长模型》提出了同时考虑测试覆盖率和故障排除率的模型,该模型中故障排除率不为 100 %且为一个常数,但没有考虑故障引入率。
[0008] 文献:刘宏伟等在同年发表的《一个NHPP类软件可靠性增长模型框架》研宄了故 障排除过程,提出了一种NHPP类软件可靠性增长模型框架,但没有给出其具体数学表达形 式,无法对模型进行仿真验证并直接应用于实际工程中。
[0009] 文献:谢景燕等在2010年发表的《考虑不完美排错情况的NHPP类软件可靠性增 长模型》认为软件的故障过程存在故障排除率和故障引入率,并且故障排除率是随时间变 化的减函数,但为简化计算过程将故障引入率设为常值。
[0010] 文献:郑皇等在2011年发表的《考虑非理想排错过程的软件可靠性模型》在谢景 燕研宄的基础上,提出故障引入率函数应正比于故障排除率函数,并假设两个函数具有相 同的变化趋势的减函数,体现不了故障引入率函数是故障总数函数相对于故障均值函数的 瞬时变化率,降低了所提出模型的精度。
[0011] 文献:Huang 等在同年发表的《Estimation and analysis of some generalized multiple change-point software reliability models》首次分析了不完美排错过程中的 移动点现象,并提出一种统一理论,构建了基于移动点技术和考虑不完美排错的软件可靠 性增长模型,但在建模过程中只考虑了故障引入率,未考虑故障排除率。

【发明内容】

[0012] 本发明的目的是:同时考虑软件故障排除过程中的不完美排错现象和故障检测过 程中的移动点现象,解决现有的模型在故障检测过程和故障排除过程中假设条件不充分, 推导出的软件可靠性增长模型拟合和预测误差大的问题,提出一种基于移动点和不完美排 错的软件可靠性建模方法。
[0013] 该方法具体步骤如下:
[0014] 步骤一、提出基于移动点和不完美排错的软件可靠性建模基本假设条件;
[0015] 〈1>、到t时刻的累积故障数目N(t)服从均值函数为m(t)的NHPP过程。
[0016] 〈2>、任意时间间隔t时刻到t+Δ t时刻内的期望软件故障检测数与t时刻剩余的 软件故障数成比例,比值为b (t)。
[0017] 〈3>、故障排除率不是100%,故障排除率函数p(t)是随着时间变化的减函数。
[0018] 〈4>、故障排除过程会引入新的故障,故障引入率函数β (t)是随时间变化的减函 数。
[0019] 〈5>、软件运行剖面与可靠性测试剖面不同。
[0020] 〈6>、软件中每个故障是相互独立的,每个故障导致系统发生失效的可能性均相 同。
[0021] 步骤二、根据软件测试过程中的不完美排错现象,获取故障引入率函数和故障排 除率函数;
[0022] 故障引入率函数β (t)为:
[0023] β (t) = β exp (~wt) (I)
[0024] 其中w > 0,w的大小决定了故障引入率变化的快慢。w越大,β (t)随时间t下降 的越快;β为初始故障引入率,β e [0, 1],Mt) e [0, β ]。
[0025] 故障排除率函数P (t)为:
[0026] (2)
[0027] 其中k > 0,k决定了故障排除率变化的快慢。k越大,p (t)随时间t下降的越快; P为初始故障排除率,P e [0, 1],P (t) e [0, p]。
[0028] 步骤三、根据移动点现象,获取基于移动点和不完美排错的软件可靠性增长模 型;
[0029] 1)、对于单移动点τ,基于不完美排错的软件可靠性增长模型的均值函数为:
[0030]
[0031] 2)、对于双移动点τ JP τ 2,基于不完美排错的软件可靠性增长模型的均值函数 为:
[0032]
[0033] 3)、具有η个移动点时,基于移动点和不完美排错的软件可靠性增长模型的均值 函数为:
[0034]
[0035] 步骤四、根据移动点判断准则,采用逐步调整法得到移动点个数和位置。
[0036] 利用步骤三的基于移动点和不完美排错的软件可靠性增长模型得到η个移动点, 通过移动点判断准则,采用逐步调整法得到移动点个数和位置。
[0037] 移动点判断准则具体为:
[0038] 首先必须满足第一个点的初始位置,选用位于样本总数据时间五分之一的点之 后,不包括五分之一处对应的点;然后满足以下三条中的任意一条准则即可。
[0039] (1)三个连续的点落在中心线的同一侧,并且至少两个点距离中心线的距离大于 或等于2 σ,σ为标准差;
[0040] (2)五个连续的点落在中心线的同一侧,并且至少有四个点距离中心线的距离大 于或等于σ。
[0041] (3)至少八个连续的点落在中心线的同一侧。
[0042] 若质量控制图中任意点满足移动点判断准则,则该点为移动点,若该点后连续A 点均满足移动点判断准则任意一条,A的取值范围为2~4,则只取A点中任意一点为初始 的移动点,得到η个初始的移动点,分别记为h,i = 1,2,…,η ;
[0043] 通过逐步调整法,得到移动点的具体位置,具体包括以下几个步骤:
[0044] 首先,由τ e 〇到t 2时刻之间的失效数据,确定移动点τ 1;然后,固定移动点 T1,通过TjPt3之间的失效数据确定移动点τ 2;依次类推,逐步调整得到准确的移动点 τ 〇 i = 0, 1,...,η〇
[0045] 根据τ JP
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1