发明名称 一种基于移动点和不完美排错的软件可靠性建模方法
摘要 本发明一种基于移动点和不完美排错的软件可靠性建模方法,涉及软件可靠性增长模型研究领域。具体包括:步骤一、提出基于移动点和不完美排错的软件可靠性建模基本假设条件;步骤二、根据软件测试过程中的不完美排错现象,获取故障引入率函数和故障排除率函数;步骤三、根据移动点现象,获取基于移动点和不完美排错的软件可靠性增长模型;步骤四、根据移动点判断准则,采用逐步调整法得到移动点个数和位置。最后利用一组公开发表的数据,验证模型的精度,实验结果表明,本发明提出的软件可靠性增长模型具有更好的拟合效果和预测能力。
申请公布号 CN104915192A 申请公布日期 2015.09.16
申请号 CN201510133527.6 申请日期 2015.03.25
申请人 哈尔滨工程大学 发明人 高峰;王奎民;陈嵩博;刘铭;孟欣冉
分类号 G06F9/44(2006.01)I;G06F11/36(2006.01)I 主分类号 G06F9/44(2006.01)I
代理机构 北京永创新实专利事务所 11121 代理人 赵文利
主权项 一种基于移动点和不完美排错的软件可靠性建模方法,其特征在于,包括如下步骤:步骤一、提出基于移动点和不完美排错的软件可靠性建模基本假设条件;步骤二、根据软件测试过程中的不完美排错现象,获取故障引入率函数和故障排除率函数;故障引入率函数β(t)为:β(t)=βexp(‑wt)   (1)其中w>0,w的大小决定了故障引入率变化的快慢;w越大,β(t)随时间t下降的越快;β为初始故障引入率,β∈[0,1],β(t)∈[0,β];故障排除率函数p(t)为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>p</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mi>p</mi><mrow><mn>1</mn><mo>+</mo><mi>kt</mi></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000687745970000011.GIF" wi="1205" he="151" /></maths>其中k>0,k决定了故障排除率变化的快慢;k越大,p(t)随时间t下降的越快;p为初始故障排除率,p∈[0,1],p(t)∈[0,p];步骤三、根据移动点现象,获取基于移动点和不完美排错的软件可靠性增长模型;1)、对于单移动点τ基于不完美排错的软件可靠性增长模型的均值函数为:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>m</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>m</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>ab</mi><mn>1</mn></msub><munderover><mo>&Integral;</mo><mn>0</mn><mi>&tau;</mi></munderover><mi>exp</mi><mo>{</mo><mo>-</mo><mfrac><msub><mi>b</mi><mn>1</mn></msub><mi>w</mi></mfrac><mo>[</mo><mi>&beta;exp</mi><mrow><mo>(</mo><mo>-</mo><mi>wt</mi><mo>)</mo></mrow><mo>]</mo><mo>}</mo><mo>&times;</mo><msup><mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>kt</mi><mo>)</mo></mrow><mrow><mo>-</mo><mfrac><mrow><msub><mi>b</mi><mn>1</mn></msub><mi>p</mi></mrow><mi>k</mi></mfrac></mrow></msup><mi>dt</mi><mo>,</mo><mn>0</mn><mo>&le;</mo><mi>t</mi><mo>&le;</mo><mi>&tau;</mi></mtd></mtr><mtr><mtd><msub><mi>m</mi><mn>2</mn></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>ab</mi><mn>2</mn></msub><munderover><mo>&Integral;</mo><mi>&tau;</mi><mi>t</mi></munderover><mi>exp</mi><mo>{</mo><mo>-</mo><mfrac><msub><mi>b</mi><mn>2</mn></msub><mi>w</mi></mfrac><mo>[</mo><mi>&beta;exp</mi><mrow><mo>(</mo><mo>-</mo><mi>wt</mi><mo>)</mo></mrow><mo>]</mo><mo>}</mo><mo>&times;</mo><msup><mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>kt</mi><mo>)</mo></mrow><mrow><mo>-</mo><mfrac><mrow><msub><mi>k</mi><mn>2</mn></msub><mi>p</mi></mrow><mi>k</mi></mfrac></mrow></msup><mi>dt</mi><mo>+</mo><msub><mi>ab</mi><mn>1</mn></msub><munderover><mo>&Integral;</mo><mn>0</mn><mi>&tau;</mi></munderover><mi>exp</mi><mo>{</mo><mo>-</mo><mfrac><msub><mi>b</mi><mn>1</mn></msub><mi>w</mi></mfrac><mo>[</mo><mi>&beta;exp</mi><mrow><mo>(</mo><mo>-</mo><mi>wt</mi><mo>)</mo></mrow><mo>]</mo><mo>}</mo><mo>&times;</mo><msup><mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>kt</mi><mo>)</mo></mrow><mrow><mo>-</mo><mfrac><mrow><msub><mi>b</mi><mn>1</mn></msub><mi>p</mi></mrow><mi>k</mi></mfrac></mrow></msup><mi>dt</mi><mo>,</mo><mi>t</mi><mo>></mo><mi>&tau;</mi></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>13</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000687745970000012.GIF" wi="1855" he="271" /></maths>其中,m(t)为软件故障均值函数:m(t)=E[N(t)]N(t):在[0,t]时间段内软件测试人员检测到的软件实际累积故障数;m(t)为选取模型的预测值;b<sub>1</sub>、b<sub>2</sub>为故障检测率在不同时刻的常数值;a为开始进行软件测试时系统中存在的软件初始故障总数;2)、对于双移动点τ<sub>1</sub>和τ<sub>2</sub>,基于不完美排错的软件可靠性增长模型的均值函数为:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>m</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>m</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>ab</mi><mn>1</mn></msub><munderover><mo>&Integral;</mo><mn>0</mn><msub><mi>&tau;</mi><mn>1</mn></msub></munderover><mi>exp</mi><mo>{</mo><mo>-</mo><mfrac><msub><mi>b</mi><mn>1</mn></msub><mi>w</mi></mfrac><mo>[</mo><mi>&beta;exp</mi><mrow><mo>(</mo><mo>-</mo><mi>wt</mi><mo>)</mo></mrow><mo>]</mo><mo>}</mo><mo>&times;</mo><msup><mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>kt</mi><mo>)</mo></mrow><mrow><mo>-</mo><mfrac><mrow><msub><mi>b</mi><mn>1</mn></msub><mi>p</mi></mrow><mi>k</mi></mfrac></mrow></msup><mi>dt</mi><mo>,</mo><mn>0</mn><mo>&le;</mo><mi>t</mi><mo>&le;</mo><msub><mi>&tau;</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><msub><mi>m</mi><mn>2</mn></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>ab</mi><mn>2</mn></msub><munderover><mo>&Integral;</mo><msub><mi>&tau;</mi><mn>1</mn></msub><msub><mi>&tau;</mi><mn>2</mn></msub></munderover><mi>exp</mi><mo>{</mo><mo>-</mo><mfrac><msub><mi>b</mi><mn>2</mn></msub><mi>w</mi></mfrac><mo>[</mo><mi>&beta;exp</mi><mrow><mo>(</mo><mo>-</mo><mi>wt</mi><mo>)</mo></mrow><mo>]</mo><mo>}</mo><mo>&times;</mo><msup><mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>kt</mi><mo>)</mo></mrow><mrow><mo>-</mo><mfrac><mrow><msub><mi>b</mi><mn>2</mn></msub><mi>p</mi></mrow><mi>k</mi></mfrac></mrow></msup><mi>dt</mi><mo>+</mo><msub><mi>ab</mi><mn>1</mn></msub><munderover><mo>&Integral;</mo><mn>0</mn><msub><mi>&tau;</mi><mn>1</mn></msub></munderover><mi>exp</mi><mo>{</mo><mo>-</mo><mfrac><msub><mi>b</mi><mn>1</mn></msub><mi>w</mi></mfrac><mo>[</mo><mi>&beta;exp</mi><mrow><mo>(</mo><mo>-</mo><mi>wt</mi><mo>)</mo></mrow><mo>]</mo><mo>}</mo><mo>&times;</mo><msup><mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>kt</mi><mo>)</mo></mrow><mrow><mo>-</mo><mfrac><mrow><msub><mi>b</mi><mn>1</mn></msub><mi>p</mi></mrow><mi>k</mi></mfrac></mrow></msup><mi>dt</mi><mo>,</mo></mtd></mtr><mtr><mtd><msub><mi>&tau;</mi><mn>1</mn></msub><mo>&lt;</mo><mi>t</mi><mo>&le;</mo><msub><mi>&tau;</mi><mn>2</mn></msub></mtd></mtr><mtr><mtd><msub><mi>m</mi><mn>3</mn></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>ab</mi><mn>3</mn></msub><munderover><mo>&Integral;</mo><msub><mi>&tau;</mi><mn>2</mn></msub><mi>t</mi></munderover><mi>exp</mi><mo>{</mo><mo>-</mo><mfrac><msub><mi>b</mi><mn>3</mn></msub><mi>w</mi></mfrac><mo>[</mo><mi>&beta;exp</mi><mrow><mo>(</mo><mo>-</mo><mi>wt</mi><mo>)</mo></mrow><mo>]</mo><mo>}</mo><mo>&times;</mo><msup><mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>kt</mi><mo>)</mo></mrow><mrow><mo>-</mo><mfrac><mrow><msub><mi>b</mi><mn>3</mn></msub><mi>p</mi></mrow><mi>k</mi></mfrac></mrow></msup><mi>dt</mi><mo>+</mo><msub><mi>ab</mi><mn>2</mn></msub><munderover><mo>&Integral;</mo><msub><mi>&tau;</mi><mn>1</mn></msub><msub><mi>&tau;</mi><mn>2</mn></msub></munderover><mi>exp</mi><mo>{</mo><mo>-</mo><mfrac><msub><mi>b</mi><mn>2</mn></msub><mi>w</mi></mfrac><mo>[</mo><mi>&beta;exp</mi><mrow><mo>(</mo><mo>-</mo><mi>wt</mi><mo>)</mo></mrow><mo>]</mo><mo>}</mo><mo>&times;</mo><msup><mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>kt</mi><mo>)</mo></mrow><mrow><mo>-</mo><mfrac><mrow><msub><mi>b</mi><mn>2</mn></msub><mi>p</mi></mrow><mi>k</mi></mfrac></mrow></msup><mi>dt</mi></mtd></mtr><mtr><mtd><mo>+</mo><msub><mi>ab</mi><mn>1</mn></msub><munderover><mo>&Integral;</mo><mn>0</mn><msub><mi>&tau;</mi><mn>1</mn></msub></munderover><mi>exp</mi><mo>{</mo><mo>-</mo><mfrac><msub><mi>b</mi><mn>1</mn></msub><mi>w</mi></mfrac><mo>[</mo><mi>&beta;exp</mi><mrow><mo>(</mo><mo>-</mo><mi>wt</mi><mo>)</mo></mrow><mo>]</mo><mo>}</mo><mo>&times;</mo><msup><mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>kt</mi><mo>)</mo></mrow><mrow><mo>-</mo><mfrac><mrow><msub><mi>b</mi><mn>1</mn></msub><mi>p</mi></mrow><mi>k</mi></mfrac></mrow></msup><mi>dt</mi><mo>,</mo><mi>t</mi><mo>></mo><msub><mi>&tau;</mi><mn>2</mn></msub></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>15</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000687745970000021.GIF" wi="1741" he="628" /></maths>3)、具有n个移动点时,基于移动点和不完美排错的软件可靠性增长模型的均值函数为:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mfenced open='' close=''><mtable><mtr><mtd><mi>m</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>ab</mi><mi>n</mi></msub><munderover><mo>&Integral;</mo><msub><mi>&tau;</mi><mi>n</mi></msub><mi>t</mi></munderover><mi>exp</mi><mo>{</mo><mo>-</mo><mfrac><msub><mi>b</mi><mi>n</mi></msub><mi>w</mi></mfrac><mo>[</mo><mi>&beta;exp</mi><mrow><mo>(</mo><mo>-</mo><mi>wt</mi><mo>)</mo></mrow><mo>]</mo><mo>}</mo><mo>&times;</mo><msup><mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>kt</mi><mo>)</mo></mrow><mrow><mo>-</mo><mfrac><mrow><msub><mi>b</mi><mi>n</mi></msub><mi>p</mi></mrow><mi>k</mi></mfrac></mrow></msup><mi>dt</mi></mtd></mtr><mtr><mtd><mo>+</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><mo>{</mo><msub><mi>ab</mi><mi>i</mi></msub><munderover><mo>&Integral;</mo><msub><mi>&tau;</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><msub><mi>&tau;</mi><mi>i</mi></msub></munderover><mi>exp</mi><mo>{</mo><mo>-</mo><mfrac><msub><mi>b</mi><mi>i</mi></msub><mi>w</mi></mfrac><mo>[</mo><mi>&beta;exp</mi><mrow><mo>(</mo><mo>-</mo><mi>wt</mi><mo>)</mo></mrow><mo>]</mo><mo>}</mo><mo>&times;</mo><msup><mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>kt</mi><mo>)</mo></mrow><mrow><mo>-</mo><mfrac><mrow><msub><mi>b</mi><mi>i</mi></msub><mi>p</mi></mrow><mi>k</mi></mfrac></mrow></msup><mi>dt</mi><mo>}</mo></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>16</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000687745970000022.GIF" wi="1549" he="356" /></maths>步骤四、根据移动点判断准则,采用逐步调整法得到移动点个数和位置;利用步骤三的基于移动点和不完美排错的软件可靠性增长模型得到n个移动点,通过移动点判断准则,采用逐步调整法得到移动点个数和位置;移动点判断准则具体为:首先必须满足第一个点的初始位置,选用位于样本总数据时间五分之一的点之后,不包括五分之一处对应的点;然后满足以下三条中的任意一条准则;(1)三个连续的点落在中心线的同一侧,并且至少两个点距离中心线的距离大于或等于2σ,σ为标准差;(2)五个连续的点落在中心线的同一侧,并且至少有四个点距离中心线的距离大于或等于σ;(3)至少八个连续的点落在中心线的同一侧;若质量控制图中任意点满足移动点判断准则,则该点为移动点,若该点后连续A点均满足移动点判断准则任意一条,A的取值范围为2~4,则只取A点中任意一点为初始的移动点,得到n个初始的移动点,分别记为t<sub>i</sub>,i=1,2,…,n。
地址 150001 黑龙江省哈尔滨市南岗区南通大街145号1号楼