周 楠,李福川+,宣 萱
(1.中國航天科工集團(tuán)第二研究院 七〇六所,北京 100854; 2.中國航天科工集團(tuán)第二研究院 重點(diǎn)型號部,北京 100854)
基于排隊(duì)論的SRGM作為軟件可靠性建模[1,2]研究中的重要分支,更準(zhǔn)確地描述出由檢測和修正兩個(gè)子過程構(gòu)成的測試工作[3]中故障所經(jīng)歷的歷程,在可靠性的分析與評估方面展現(xiàn)出良好的能力。國內(nèi)外研究者使用無限服務(wù)臺排隊(duì)(infinite server queuing,ISQ)模型建模軟件測試過程,并逐步引入不完美排錯(cuò)和移動(dòng)點(diǎn)等影響因素。但研究發(fā)現(xiàn)服務(wù)臺數(shù)量是無限的假設(shè),違背了真實(shí)的測試過程,通過修正ISQ模型的假設(shè)條件,考慮到時(shí)間延遲現(xiàn)象,提出有限服務(wù)臺排隊(duì)(finite server queuing,F(xiàn)SQ)模型。隨著研究的深入,進(jìn)一步挖掘隊(duì)列平均長度、平均等待時(shí)間等排隊(duì)論的核心內(nèi)容,提出擴(kuò)展的FSQ模型[4-8]。目前,隊(duì)列模型主要對故障修正過程進(jìn)行建模,忽略了軟件從交付到檢測過程中存在的排隊(duì)等待現(xiàn)象。
針對上述問題,本文分析了資源相互獨(dú)立的故障檢測過程與故障修正過程,提出一種將排隊(duì)論同時(shí)應(yīng)用在檢測與修正過程的雙排隊(duì)系統(tǒng)模型,并在建模中考慮不完美排錯(cuò)現(xiàn)象,實(shí)現(xiàn)對修正過程中可能破壞程序內(nèi)部的邏輯結(jié)構(gòu),引入新故障現(xiàn)象的定量描述,從而提高模型對軟件可靠性評估與預(yù)測的精度。通過對比實(shí)驗(yàn)驗(yàn)證模型的性能,同時(shí)對未來的發(fā)展趨勢進(jìn)行了展望。
當(dāng)前的軟件可靠性增長模型大多數(shù)都存在著與真實(shí)軟件測試過程不相符合的假設(shè)條件[5,9,10],如完美調(diào)試、故障立即被修正以及測試工作量統(tǒng)一考慮等。而在實(shí)際的測試過程中,檢測故障的工作通常由專業(yè)的軟件評測人員來完成,開發(fā)人員則根據(jù)檢測過程反饋的故障信息對程序代碼進(jìn)行修改,完成修正階段的工作。兩組不同的人員花費(fèi)不同的CPU時(shí)間完成各自的任務(wù),是資源相互獨(dú)立的兩個(gè)過程,因此需要將檢測過程和修正過程消耗的工作量進(jìn)行區(qū)分,建立各自過程的函數(shù)模型。
ωd(t)=ξω(t)
(1)
ωc(t)=(1-ξ)ω(t)
(2)
式中:ξ表示在t時(shí)刻的規(guī)模比率,在這里設(shè)置為常數(shù)。
測試資源作為一個(gè)綜合性的影響因素,通常用執(zhí)行的測試用例數(shù)目、消耗的CPU時(shí)間以及測試人員的數(shù)量等信息來度量。基于學(xué)習(xí)因素和軟件結(jié)構(gòu)的綜合影響,在測試的初期,測試工作量通常會迅速增長,而隨著過程的進(jìn)行,增長速度會減緩,最后趨于平穩(wěn),呈現(xiàn)出一種S型變化趨勢[11,12]。考慮到測試工作量這一變化特點(diǎn),本文在建模過程中選用了變形S型TEF,如式(3)所示
(3)
式中:W表示最終消耗的總測試工作量;α表示測試工作量消耗率;A為一個(gè)常量。
將式(3)代入式(1)和式(2)后再對t進(jìn)行積分,可以得到故障檢測工作量函數(shù)以及故障修正工作量函數(shù),如式(4)和式(5)所示
(4)
(5)
(1)軟件中失效事件隨機(jī)發(fā)生,故障檢測過程與修正過程服從非齊次泊松過程(non-homogeneous poisson process,NHPP)[9],設(shè)到t時(shí)刻累計(jì)檢測出的故障數(shù)N(t)服從期望函數(shù)為m(t)的NHPP分布,滿足t=0時(shí), m(0)=0。 可以得到
(6)
(7)
式中:λ(τ) 表示τ時(shí)刻軟件的失效強(qiáng)度函數(shù)。
在 (t,t+x] 時(shí)間間隔內(nèi)不發(fā)生軟件失效的概率,即軟件可靠性為
R(x|t)=P{N(t+x)-N(t)=0}=e-m(t+x)+m(t)
(8)
(2)軟件故障之間互不干擾且失效行為均是由未檢測出的故障引發(fā)的[4]。
(3)在 (t,t+x] 時(shí)間區(qū)間內(nèi),累積檢測到的故障數(shù)量與t時(shí)刻剩余未檢測出的故障數(shù)量成正比,比例系數(shù)為故障檢測率[4,9]。
(4)在 (t,t+x] 時(shí)間區(qū)間內(nèi),累積修正的故障數(shù)量與t時(shí)刻檢測到但未被修正的故障數(shù)量成正比,比例系數(shù)為故障修正率[9]。
(5)引起軟件失效的故障最終都會被修正,且故障檢測過程在修正故障時(shí)會繼續(xù)執(zhí)行,故障的修正過程不會對故障的檢測造成影響[4]。
(6) 使用兩個(gè)不同的FSQ模型分別對故障檢測活動(dòng)以及故障修正活動(dòng)進(jìn)行描述,其中檢測過程模型滿足批量到達(dá),修正過程模型滿足NHPP到達(dá)。
(7)故障修正過程中,會引入新的故障且故障引入率為k[4]。
2.2.1 故障檢測過程
B(t)表示某個(gè)故障在(0,t]時(shí)間內(nèi)被檢測到的概率,包括兩個(gè)部分:一部分是假設(shè)故障在0時(shí)刻到達(dá),而且有空閑的檢測人員對其進(jìn)行檢測,并在(0,t]時(shí)間內(nèi)被檢測到;另一部分則是假設(shè)有限數(shù)量的檢測服務(wù)人員都在工作中,故障在0時(shí)刻到達(dá),并沒有立即得到檢測,而是在隊(duì)列中等待一段時(shí)間(0,y]后,才在(y,t]時(shí)間內(nèi)被檢測到,如圖1所示。
圖1 在0時(shí)刻到達(dá)的故障在(0,t]內(nèi)被檢測到
根據(jù)乘法公式,B(t)表示為
(9)
式中:Ta表示故障被送達(dá)的時(shí)間點(diǎn);Tb表示檢測故障時(shí)所用的時(shí)間;Te表示故障等待檢測時(shí)所用的時(shí)間。
軟件交付到故障檢測人員手中時(shí)也就意味著故障被送達(dá),則令 P{Ta=0}=1, 代入式(9)可得
(10)
式中:D(t)表示不存在排隊(duì)現(xiàn)象時(shí)服務(wù)人員檢測故障所用時(shí)間的累積分布函數(shù); D(t-y) 表示存在排隊(duì)現(xiàn)象時(shí)服務(wù)人員檢測故障所用時(shí)間的累積分布函數(shù);L(y)表示故障在隊(duì)列中等待檢測時(shí)所用時(shí)間的累積分布函數(shù)。
在實(shí)際的故障檢測過程中,需要考慮到軟件設(shè)計(jì)的復(fù)雜度、故障檢測人員的檢測水平、檢測工作量以及檢測環(huán)境等因素對檢測效果的影響。其中故障檢測工作量隨測試時(shí)間的變化情況對軟件的可靠性增長曲線有顯著影響,為了全面和準(zhǔn)確地描述軟件故障檢測過程,在故障檢測過程中引入故障檢測工作量。另一方面,故障檢測工作量對檢測等待延遲也有一定的影響,隨著投入的故障檢測資源的增加,檢測等待延遲會減小。因此,在分析檢測等待延遲時(shí),也需要考慮故障檢測工作量。由于指數(shù)分布經(jīng)常被假定為排隊(duì)論中的服務(wù)時(shí)間分布[13,14],故假設(shè)故障檢測時(shí)間的分布函數(shù)如式(11)所示
D(z)=1-e-ρdWd(t)+ρdWd(t-z)
(11)
故障檢測等待時(shí)間的分布函數(shù)如式(12)所示
L(z)=1-e-μdWd(y)+μdWd(y-z)
(12)
式中:ρd表示每單位故障檢測工作量的故障檢測率;μd表示每單位故障檢測工作量的檢測等待率。
根據(jù)式(11)和式(12)可得
D(t)=1-e-ρdWd(t)
(13)
D(t-y)=1-e-ρdWd(t)+ρdWd(y)
(14)
L(y)=1-e-μdWd(y)
(15)
將式(13)~式(15)代入式(10),可得
[1-e-ρdWd(t)+ρdWd(y)]dy
(16)
對式(16)求導(dǎo)得故障檢測率函數(shù),如式(17)所示
(17)
其中
(18)
根據(jù)假設(shè)條件(7),考慮到故障修正過程存在引入新故障的現(xiàn)象,可以建立如下的微分方程
(19)
式中:a(t)表示隨t發(fā)生變化的隱藏的故障總數(shù),包括了初始故障數(shù)和引入故障數(shù);a表示初始故障總數(shù)。
代入初始條件md(0)=0, 可得如下故障檢測過程模型
(20)
2.2.2 故障修正過程
P(t)表示某個(gè)被檢測到的故障在 (0,t] 時(shí)間內(nèi)被完全修正的概率,包括兩個(gè)部分:一部分是假設(shè)故障通過檢測過程在x時(shí)刻被發(fā)現(xiàn),而且有空閑的修正人員對其進(jìn)行修正,并在 (x,t] 時(shí)間內(nèi)被完全修正;另一部分則是假設(shè)有限數(shù)量的修正服務(wù)人員都在工作中,故障在x時(shí)刻被檢測到,并沒有立即得到修正,而是在隊(duì)列中等待一段時(shí)間 (x,y] 后,才在 (y,t] 時(shí)間內(nèi)被完全修正,如圖2所示。
圖2 在x時(shí)刻檢測到的故障在(x,t]內(nèi)被修正
根據(jù)乘法公式,P(t)表示為
(21)
式中:Td表示故障被檢測到的時(shí)間點(diǎn);Tc表示修正故障時(shí)所用的時(shí)間;Tq表示故障等待修正時(shí)所用的時(shí)間。
對式(21)做進(jìn)一步變換,可得
(22)
式中: G(t-x) 表示不存在排隊(duì)現(xiàn)象時(shí)服務(wù)人員修正故障所用時(shí)間的累積分布函數(shù); G(t-y) 表示存在排隊(duì)現(xiàn)象時(shí)服務(wù)人員修正故障所用時(shí)間的累積分布函數(shù); F(y-x) 表示故障在隊(duì)列中等待修正時(shí)所用時(shí)間的累積分布函數(shù)。
在x時(shí)刻故障被檢測到的概率為b(x),代入式(22)可得
(23)
實(shí)際的故障修正過程同檢測過程一樣會受到多種因素的影響,同樣使用結(jié)合故障修正工作量的指數(shù)分布作為服務(wù)時(shí)間分布,故假設(shè)故障修正時(shí)間的分布函數(shù)如式(24)所示
G(z)=1-e-ρcWc(t)+ρcWc(t-z)
(24)
故障排錯(cuò)等待時(shí)間的分布函數(shù)如式(25)所示
F(z)=1-e-μcWc(y)+μcWc(y-z)
(25)
式中:ρc表示每單位故障修正工作量的故障修正率;μc表示每單位故障修正工作量的排錯(cuò)等待率。
根據(jù)式(24)和式(25),可得
G(t-x)=1-e-ρcWc(t)+ρcWc(x)
(26)
G(t-y)=1-e-ρcWc(t)+ρcWc(y)
(27)
F(y-x)=1-e-μcWc(y)+μcWc(x)
(28)
將式(26)~式(28)代入式(23)可得
(29)
根據(jù)假設(shè)條件(4),可得
(30)
式中:mdt表示到t時(shí)刻為止,運(yùn)用故障檢測過程模型估計(jì)出的累積故障數(shù)量。
代入初始條件mc(0)=0, 可得如下故障修正過程模型
mc(t)=mdt[1-e-P(t)]
(31)
為了評估和驗(yàn)證模型的擬合效果以及預(yù)測能力,本節(jié)給出了4個(gè)具有代表性的模型評價(jià)標(biāo)準(zhǔn),同時(shí)舉例介紹了模型的參數(shù)估計(jì)方法,并根據(jù)已經(jīng)公開發(fā)表的,在系統(tǒng)開發(fā)過程中所搜集到的4個(gè)軟件失效數(shù)據(jù)集進(jìn)行仿真實(shí)驗(yàn),最后對模型的復(fù)雜度進(jìn)行了分析。參與比較的所有模型見表1。
表1 參與比較的模型
模型擬合能力比較標(biāo)準(zhǔn):
(1)均方誤差
MSE是一個(gè)平均值,反映模型的輸出值與累積故障數(shù)的真實(shí)值之間的偏差程度。MSE值越小,說明模型的擬合能力越好。
式中,n表示失效數(shù)據(jù)集中記錄的樣本條數(shù);m(ti)表示到時(shí)刻ti為止累積檢測或修正的故障數(shù)的估計(jì)值;mi表示到時(shí)刻ti為止累積檢測或修正的故障數(shù)的真實(shí)值。
(2)Bias評價(jià)標(biāo)準(zhǔn)
Bias表示累積故障數(shù)的估計(jì)值和真實(shí)值之間的誤差,反映模型本身的精確度。Bias值越小,說明模型的擬合能力越好。
(3)回歸曲線方程的相關(guān)指數(shù)
R-square值距離1越近,說明模型的擬合能力越好。
模型預(yù)測能力比較標(biāo)準(zhǔn):
(4)相對誤差
一般會將RE值制成RE圖,RE圖中接近x軸的預(yù)測點(diǎn)越多,說明模型的預(yù)測能力越好。
失效數(shù)據(jù)集是對軟件可靠性增長模型進(jìn)行評估與預(yù)測的基礎(chǔ),多以日歷時(shí)間作為故障檢測與修正的時(shí)間周期。記錄項(xiàng)依據(jù)軟件公司對數(shù)據(jù)的需求以及收集方式的不同存在差異,包含的基礎(chǔ)信息有累積檢測的故障數(shù)量和消耗的CPU時(shí)間,部分含有累積修正的故障數(shù)量,更全面的會有故障類型等信息。失效數(shù)據(jù)的質(zhì)量好壞會對實(shí)驗(yàn)結(jié)果準(zhǔn)確與否產(chǎn)生巨大影響,實(shí)驗(yàn)中選用的4個(gè)失效數(shù)據(jù)集是已經(jīng)公開發(fā)表,并在軟件可靠性領(lǐng)域得到廣泛應(yīng)用的,因此可以保證數(shù)據(jù)的有效性和準(zhǔn)確性。
DS1:RADC-T1數(shù)據(jù)集[18]
RADC-T1失效數(shù)據(jù)集是羅馬空軍開發(fā)中心發(fā)布的實(shí)時(shí)指令控制應(yīng)用系統(tǒng)的失效數(shù)據(jù),測試周期為21周,軟件測試人員花費(fèi)300.1CPU小時(shí),共檢測到并糾正了136個(gè)故障。
DS2:Okumoto數(shù)據(jù)集[19]
Okumoto失效數(shù)據(jù)集是K.Okumoto發(fā)布的Alcate/Lucent公司的失效數(shù)據(jù),測試周期為56周,軟件測試人員花費(fèi)6423.5CPU小時(shí),共檢測出124個(gè)故障。
DS3:Ohba數(shù)據(jù)集[19]
Ohba失效數(shù)據(jù)集是Ohba發(fā)布的PL/1項(xiàng)目的失效數(shù)據(jù),測試周期為19周,軟件測試人員花費(fèi)47.65CPU小時(shí),共檢測出328個(gè)故障。
DS4:Wood數(shù)據(jù)集[12]
Wood失效數(shù)據(jù)集是Alan Wood在1996年發(fā)表的一篇論文中收集的某個(gè)項(xiàng)目的失效數(shù)據(jù),測試周期為20周,軟件測試人員花費(fèi)10000CPU小時(shí),共檢測出100個(gè)故障。
由于失效數(shù)據(jù)集通常數(shù)據(jù)量較小,因此本文采用最小二乘法擬合模型參數(shù),以故障檢測過程模型為例:設(shè)數(shù)據(jù)集中一共采集到n組故障數(shù)據(jù)信息,在時(shí)間區(qū)間(0,ti)內(nèi),實(shí)際檢測出的累積故障數(shù)量為mi,模型預(yù)估出的累積故障數(shù)量的均值函數(shù)為md(ti), 其中i=1,2,…,n; 0 接下來只需對SSR中未知的參數(shù)逐個(gè)求偏導(dǎo),并令求導(dǎo)后的結(jié)果等于0,即可求出使得SSR達(dá)到極小化的參數(shù)估計(jì)值。本文采用分步方法,首先基于測試工作量數(shù)據(jù),擬合出Wd(t)中的參數(shù)估計(jì)值,見表2,然后將估計(jì)出的參數(shù)值代入模型中對md(t)中剩余的參數(shù)進(jìn)行計(jì)算,估計(jì)結(jié)果見表3。 表2 測試工作量函數(shù)的參數(shù)估計(jì)值 表3 參與比較的模型的參數(shù)估計(jì)值 3.4.1 故障檢測過程 檢測過程的擬合曲線如圖3所示,從中可以觀察到,在DS1和DS2上,G-O模型的擬合曲線嚴(yán)重偏離實(shí)測數(shù)據(jù)的失效曲線,主要原因在于G-O模型的建立沒有充分考慮真實(shí)情況,假設(shè)條件過于簡化;Huang模型和Yamada模型在建模過程中本質(zhì)相同,但可以明顯看到Huang模型在測試周期開始時(shí)擬合效果不佳,幾個(gè)周期過后表現(xiàn)得較好,兩個(gè)模型表現(xiàn)出的性能各異,原因在于模型之間采用的TEF存在很大的差異。新建模型在所有4個(gè)失效數(shù)據(jù)集上,性能表現(xiàn)穩(wěn)定,與真實(shí)失效曲線擬合程度較高,體現(xiàn)出良好的擬合能力。 圖3 各個(gè)模型的累積檢測的故障數(shù)量擬合曲線 為進(jìn)一步比較不同模型的性能差異,下面定量化地計(jì)算出各個(gè)模型在3個(gè)判定標(biāo)準(zhǔn)上的數(shù)值,具體數(shù)據(jù)見表4,其中帶有雙下劃線標(biāo)注的表示最優(yōu)標(biāo)準(zhǔn)值,帶有下劃線的表示次優(yōu)標(biāo)準(zhǔn)值,最差標(biāo)準(zhǔn)值采用波浪線表示。 表4 模型的擬合性能度量比較 從表4可以看出,在DS1上,新建模型表現(xiàn)最優(yōu),在3個(gè)比較標(biāo)準(zhǔn)中,2個(gè)最優(yōu),1個(gè)次優(yōu),且與最優(yōu)的標(biāo)準(zhǔn)值僅相差在小數(shù)點(diǎn)后第三位上;P-N-Z模型次之,1個(gè)最優(yōu),2個(gè)次優(yōu);G-O模型表現(xiàn)最差,3個(gè)標(biāo)準(zhǔn)均是最差。在DS2上,新建模型表現(xiàn)最優(yōu),在3個(gè)比較標(biāo)準(zhǔn)中均是最優(yōu);P-N-Z和Pham模型次之,3個(gè)均是次優(yōu);G-O模型表現(xiàn)最差,3個(gè)標(biāo)準(zhǔn)均是最差。在DS3上,新建模型表現(xiàn)最優(yōu),在3個(gè)比較標(biāo)準(zhǔn)中均是最優(yōu);P-N-Z模型和Pham模型性能表現(xiàn)相同,優(yōu)于剩下的模型,3個(gè)標(biāo)準(zhǔn)值均是次優(yōu);Huang模型表現(xiàn)不理想,MSE和S-square標(biāo)準(zhǔn)均是最差,而Bias接近最差。在DS4上,新建模型表現(xiàn)依舊穩(wěn)定,在3個(gè)比較標(biāo)準(zhǔn)中,1個(gè)最優(yōu),2個(gè)次優(yōu),且與最優(yōu)的標(biāo)準(zhǔn)值相差不大;Huang模型次之,1個(gè)最優(yōu),1個(gè)次優(yōu);Yamada模型表現(xiàn)不理想,MSE和R-square標(biāo)準(zhǔn)均是最差,而Bias接近最差。新建模型性能表現(xiàn)良好,可能基于以下原因: (1)新建模型在建模過程中考慮到FDR的復(fù)雜性,與TEF相結(jié)合構(gòu)建出復(fù)合型FDR,實(shí)現(xiàn)了對故障檢測過程更為真實(shí)的描述; (2)考慮到引入測試工作量因素,且選取了變形S型TEF,更準(zhǔn)確地反映了測試過程中測試工作量的變化情況; (3)應(yīng)用不完美排錯(cuò)對故障修正過程引入新故障的現(xiàn)象進(jìn)行建模,充分體現(xiàn)程序結(jié)構(gòu)的關(guān)聯(lián)性以及環(huán)境和人員的隨機(jī)性; (4)排隊(duì)論的引入進(jìn)一步挖掘了故障所經(jīng)過的活動(dòng)歷程,基于隊(duì)列的研究,時(shí)間延遲這一必不可少的環(huán)節(jié)得以進(jìn)行模型化表示。 另一方面,檢測過程的預(yù)測曲線如圖4所示,從中可以觀察到,G-O模型在DS1上預(yù)測效果很不理想,但在另外3個(gè)數(shù)據(jù)集上呈現(xiàn)出的效果明顯好于DS1,說明模型適用性差,具有極強(qiáng)的不穩(wěn)定性;Huang模型的RE值在DS2、DS3和DS4上第一周期偏離0異常明顯,但是從第二周期開始迅速趨近于0,并且預(yù)測效果越來越好;新建模型在4個(gè)數(shù)據(jù)集上的預(yù)測效果表現(xiàn)優(yōu)異,波動(dòng)范圍較小,可以清晰地看到優(yōu)于其它模型;所有模型的RE圖有一個(gè)共同特點(diǎn),后期預(yù)測性能均優(yōu)于前期,尤其是在12周之后。這是因?yàn)槔肧RGM進(jìn)行可靠性預(yù)測,首先需要充足的數(shù)據(jù)作為支撐;同時(shí)由于模型中的參數(shù)數(shù)量不一,需要數(shù)據(jù)規(guī)模超過參數(shù)數(shù)目一定的比例,才能達(dá)到更好的預(yù)測性能。 圖4 各個(gè)模型的預(yù)測RE曲線 3.4.2 故障修正過程 失效數(shù)據(jù)集根據(jù)采集到的故障屬性列一般可分為兩種類型[12]:一種是只包含累積檢測的故障數(shù)量屬性,目前這種數(shù)據(jù)集在數(shù)量上占據(jù)著很大的優(yōu)勢,但對于其應(yīng)用的局限性正在逐漸顯露出來;另一種是除累積檢測到的故障數(shù)量外同時(shí)包含累積修正的故障數(shù)量屬性,全面的故障屬性列更符合當(dāng)前的研究趨勢。DS1屬于第二種數(shù)據(jù)類型,而DS2、DS3以及DS4均屬于第一種,故接下來只使用DS1對故障修正過程的模型進(jìn)行驗(yàn)證。前5個(gè)經(jīng)典模型在建模過程中并沒有將故障檢測過程與故障修正過程作為兩個(gè)不同的階段進(jìn)行考慮,因此5個(gè)經(jīng)典模型無法對DS1中故障修正過程進(jìn)行建模。本文只對新建模型的故障修正階段性能進(jìn)行分析,并與模型的檢測階段性能進(jìn)行縱向?qū)Ρ?,其中修正階段模型的參數(shù)估計(jì)值見表5。 表5 提出模型的參數(shù)估計(jì)值 修正過程的擬合曲線如圖5所示,從中可以看出,新建模型在故障修正過程中與真實(shí)數(shù)據(jù)的失效曲線貼合緊密,展現(xiàn)出較好的擬合能力,進(jìn)一步,通過表6中的擬合標(biāo)準(zhǔn),可以更直觀地判斷模型的性能。與故障檢測過程相比,模型的擬合標(biāo)準(zhǔn)值有一定的下降,但下降的幅度并沒有超過標(biāo)準(zhǔn)自身的量級,仍然展現(xiàn)出比較好的擬合效果。原因在于故障修正過程的建模是以故障檢測過程為基礎(chǔ),會使用檢測過程中估計(jì)出的參數(shù)值,這些參數(shù)值本身與實(shí)際情況存在誤差,代入修正過程后導(dǎo)致最終結(jié)果的誤差進(jìn)一步擴(kuò)大。 圖5 提出模型在DS1上的擬合曲線 表6 提出模型的擬合性能度量 另一方面,修正過程的預(yù)測曲線如圖6所示,從中可以看出,模型故障修正過程的預(yù)測曲線與檢測過程呈現(xiàn)相同的變化趨勢,后期預(yù)測性能明顯優(yōu)于前期,雖然沒有故障檢測過程的預(yù)測能力表現(xiàn)優(yōu)異,但RE值的最大變化范圍沒有超過1,還是展現(xiàn)出比較好的預(yù)測能力。 圖6 提出模型在DS1上的預(yù)測曲線 3.4.3 模型復(fù)雜度分析 新建模型由于結(jié)構(gòu)復(fù)雜以及參數(shù)量增多導(dǎo)致模型的復(fù)雜度有顯著提高,通過統(tǒng)計(jì)相同硬件條件下各個(gè)模型執(zhí)行1000次所用的平均CPU運(yùn)行時(shí)間以及參數(shù)和變量占用的內(nèi)存空間,對模型的計(jì)算性能進(jìn)行分析。具體數(shù)據(jù)見表7。 表7 模型的計(jì)算性能度量比較 由表7可知新建模型的CPU運(yùn)行時(shí)間相比于其它模型有數(shù)倍到數(shù)十倍的增加,在數(shù)據(jù)規(guī)模較大的DS2上表現(xiàn)尤為明顯,隨著輸入數(shù)據(jù)量的增大,模型的運(yùn)行時(shí)間差距會進(jìn)一步擴(kuò)大。但由于失效數(shù)據(jù)集的規(guī)模通常較小,模型的CPU運(yùn)行時(shí)間保持在零點(diǎn)幾秒到幾秒之間,相比于模型擬合和預(yù)測精度的提升,所付出的時(shí)間代價(jià)是可接受的。同時(shí)各個(gè)模型中參數(shù)和變量占用的內(nèi)存空間在幾十KB范圍,所有模型處于同一個(gè)數(shù)量級,且差異很小,不會對當(dāng)前的計(jì)算機(jī)硬件環(huán)境形成挑戰(zhàn)。因此,新建模型雖然復(fù)雜度有顯著提升,但在解決軟件可靠性評估和預(yù)測的問題上是可行的,并且結(jié)果是更精確的。 本文建立的基于雙排隊(duì)系統(tǒng)的SRGM,考慮到故障檢測過程和故障修正過程中存在的時(shí)間延遲現(xiàn)象,并基于測試工作量函數(shù)對故障檢測率進(jìn)行重構(gòu),實(shí)現(xiàn)了對真實(shí)測試過程更為符合現(xiàn)實(shí)的描述。通過對比實(shí)驗(yàn)驗(yàn)證在選定的失效數(shù)據(jù)集上與若干經(jīng)典SRGM相比,其展現(xiàn)出更好的預(yù)測效果和擬合能力。新建立的模型存在的問題便是引入了更多的參數(shù),導(dǎo)致模型的復(fù)雜度上升和可理解性下降。未來,通過對排隊(duì)論技術(shù)的進(jìn)一步研究,向著模型復(fù)雜度更低,性能更優(yōu)的方向發(fā)展。3.4 模型性能的比較分析
4 結(jié)束語