李紅輝,趙 森,管軍霖,江周嫻
(1. 北京交通大學(xué) 計算機與信息技術(shù)學(xué)院 高速鐵路網(wǎng)絡(luò)管理教育部工程研究中心,北京 100044;2. 桂林電子科技大學(xué) 計算機與信息安全學(xué)院,桂林 541004)
列車在運營過程中高度依賴軟件的可靠性,如果軟件癱瘓甚至出現(xiàn)一個小故障,造成的后果可能都是災(zāi)難性的[1]。目前,我國列車主要采用按運行里程計劃維護的策略,運營和維護費用較高[2],對于突發(fā)性或緊急事件的響應(yīng)效果也比較差,嚴重時會造成重大經(jīng)濟損失和人員傷亡。
軟件可靠性增長模型(SRGM,Software Reliability Growth Model)用于軟件可靠性的評估和預(yù)測[3]。利用SRGM 對鐵路軟件進行可靠性預(yù)測,能提前預(yù)知故障的發(fā)生時間,不但能有效幫助鐵路企業(yè)控制成本,還能更好地保證行車安全。目前,公開發(fā)表的SRGM 有100 多種,它們的基本假設(shè)條件不同、考慮的因素不同,適用性也不同,因此,用它們估測同一款軟件,所得結(jié)果可能差異較大。選擇或設(shè)計合適的評估模型、有效進行鐵路軟件可靠性評估是目前亟需研究的問題。
邢穎[4]等人討論了鐵路軟件可靠性測試關(guān)鍵技術(shù)及軟件可靠性模型,但未針對鐵路軟件失效數(shù)據(jù)集進行實驗。潘浪濤[5]建立了一個鐵路自動售票系統(tǒng)的可靠性分析模型,總結(jié)了系統(tǒng)可靠性與系統(tǒng)模塊失效概率之間的關(guān)系,但是,對模型的普適性未進行說明。廖亮[6]等人基于非齊次泊松過程(NHPP)對處于開發(fā)后期階段的鐵路信號計算機聯(lián)鎖軟件進行可靠性評估,但未用NHPP 模型與其它SRGM 作對比。
本文選取G-O 模型、Delayed S-shaped 模型、Ohba-Chou 模型及P-N-Z 模型[7]4 個較經(jīng)典的SRGM,分析它們的特點及適用場景,提出一種可靠性模型參數(shù)計算的優(yōu)化算法,在此研究基礎(chǔ)上開發(fā)了一款軟件可靠性增長模型分析工具(SRGM Tool)。以鐵路聯(lián)鎖軟件為例,研究軟件可靠性增長模型應(yīng)用方法,確定了適合被測軟件的可靠性增長模型,驗證了方法的有效性。
SRGM 是在軟件失效數(shù)據(jù)集的基礎(chǔ)上,采用統(tǒng)計學(xué)方法,用數(shù)學(xué)方程式來表達軟件錯誤數(shù)量與不同因素(時間、測試工作量、不完美排錯及錯誤檢測率等)之間的關(guān)系。一般而言,隨著軟件中錯誤的排除,軟件中累計錯誤數(shù)量增長速度變慢,即軟件的可靠性逐漸增強。SRGM 是對軟件可靠性增長趨勢進行建模,該趨勢可用隨機變量分布描述,建模過程中提出基本假設(shè),同時,引入與該趨勢相關(guān)的參數(shù)。
設(shè)m(t)表示t時刻累計錯誤數(shù)量的函數(shù),a(t)為軟件總錯誤量,b(t)為錯誤檢測率,t> 0。
文中,假設(shè)所研究的模型均符合以下條件條件:累計檢測到的錯誤數(shù)量變化率(dm(t)/dt)與當(dāng)前錯誤檢測率(b(t))條件下剩余的錯誤數(shù)量(a(t)-m(t))成正比,可用式(1)表示:
針對SRGM,假設(shè)發(fā)現(xiàn)錯誤,在排除錯誤時,如果錯誤可以完全被改正,且不會引入新的錯誤,稱為完美排錯;如果在排除一個錯誤時引起其它錯誤,則稱為不完美排錯。
1.2.1 G-O 模型
G-O 模型的假設(shè)條件較理想化,在數(shù)學(xué)表達上較簡單,假設(shè)總錯誤數(shù)量與錯誤檢測率恒定,即:
屬于完美排錯型。
1.2.2 Dealyed S-shaped 模型
該模型考慮了延遲效應(yīng),開始時增長比較慢,然后增長迅速,直至到達峰值,所以其可靠性增長曲線是一個呈S 型的曲線。假設(shè)總錯誤數(shù)量恒定,但錯誤檢測率考慮延遲效應(yīng),函數(shù)表達為:
同樣屬于完美排錯類型。
1.2.3 Ohba-Chou 模型
該模型在G-O 模型的基礎(chǔ)上改進,考慮排除錯誤時有可能引入新的錯誤,假設(shè)在排除錯誤時引入新錯誤的概率與t時刻檢測到的錯誤數(shù)量成正比,比例系數(shù)為r,且r< 1,則a(t)、b(t) 可表示為:
1.2.4 P-N-Z 模型
考慮測試人員學(xué)習(xí)能力對失效過程的影響。a(t)增加,意味著錯誤總數(shù)增加,排除錯誤過程不完善;錯誤包括已檢測和排除的錯誤,以及在排除錯誤過程中引入的錯誤。b(t) 增長,意味著錯誤檢測率增大,測試人員學(xué)習(xí)能力提升。設(shè)α為引入錯誤率參數(shù),β為拐點因子,a(t)、b(t)可分別表示為:
4 種模型的對比分析見表1,從表中可以看出4種模型的差異,主要體現(xiàn)在a(t)和b(t)的不同,使得各模型的適用場景也不同。
本文采用擬合與預(yù)測效果相結(jié)合的方法衡量4個模型的優(yōu)劣。
表1 4 種模型的對比
擬合效果即擬合數(shù)據(jù)與真實數(shù)據(jù)的吻合程度,本文選取均方誤差(MSE)和擬合優(yōu)度(R-Square)兩個指標(biāo)進行評價。
2.1.1 MSE
MSE 可以反映模型擬合出的數(shù)據(jù)與真實數(shù)據(jù)的差距,計算公式為:
式中,EMSE為均方誤差值,yi為真實失效數(shù)據(jù),m(ti) 為擬合數(shù)據(jù)。EMSE值越小,說明擬合數(shù)據(jù)與真實數(shù)據(jù)差距越小,擬合效果越好。
2.1.2 R-Square
與MSE 相似,同樣可以用于評估模型的擬合效果,計算公式為:
式中,ER?Square為擬合優(yōu)度值,m(ti) 為ti時刻累計錯誤數(shù)量的擬合值,yi為ti時刻累計錯誤數(shù)量的真實值。
R-Square 的值越接近1,說明擬合數(shù)據(jù)與真實數(shù)據(jù)越接近,擬合效果越好。
相對誤差(RE)[8]根據(jù)記錄到的失效數(shù)據(jù)預(yù)測未來失效發(fā)生的趨勢,從而評價模型的預(yù)測效果,可通過計算數(shù)據(jù)集中所有記錄的RE 值來表達,計算公式為:
式中,ERE為相對誤差值,根據(jù)此值繪制模型的RE 曲線,RE 值越小,說明該模型的預(yù)測結(jié)果具有更小的誤差,預(yù)測性能更好。
軟件失效數(shù)據(jù)集包含記錄時間、累計錯誤數(shù)量等,可借助可視化方法對其可靠性增長趨勢進行初步分析。常用的趨勢分析方法包括圖形法、拉普拉斯法、曲線圖技術(shù)、數(shù)據(jù)建模技術(shù)等,不同失效數(shù)據(jù)分析技術(shù)具有各自的使用場合和優(yōu)勢。本文采用圖形法和拉普拉斯法分析軟件失效數(shù)據(jù)集的可靠性增長趨勢,用可視化方法更方便地觀測軟件失效數(shù)據(jù)集的發(fā)展趨勢,以便選擇合適的可靠性模型。
圖形法比較直觀,主要對軟件運行時間、累計失效數(shù)等各種變量之間關(guān)系進行分析。
橫軸表示時間ti;
縱軸表示累計錯誤數(shù)量m(ti),即ti時累計故障數(shù)量。
用描點法繪制折線圖,若折線圖呈現(xiàn)凸出狀態(tài),可 以認為可靠性在增長,否則認為可靠性在下降。
拉普拉斯法[9]是把軟件失效數(shù)據(jù)集采集數(shù)據(jù)的時間劃分成n個等長的單位時間,在第i個單位時間中記錄到的錯誤數(shù)為n(i),拉普拉斯法表達式為:
式中,u(k) 為第k個記錄的拉普拉斯因子,k=1, 2, ···,n,以時間順序觀察拉普拉斯因子值,若拉普拉斯因子值減小,說明失效強度降低,則軟件可靠性逐漸增強。
結(jié)合圖形法和拉普拉斯法兩種方法,可以得到軟件失效數(shù)據(jù)集的可靠性增長趨勢。
計算SRGM 中的參數(shù)(即a、b、r、α、β),需要在軟件失效數(shù)據(jù)集的數(shù)據(jù)上進行參數(shù)計算,將得到的參數(shù)值代入模型,計算出擬合數(shù)據(jù),與軟件失效數(shù)據(jù)集進行擬合。
本文參數(shù)計算采用極大似然估計法,將軟件失效數(shù)據(jù)集代入模型,給出參數(shù)值的初始化值和范圍,通過設(shè)定的步長逐個枚舉參數(shù)值,求MSE 值,輸出得到最優(yōu)MSE 值時的參數(shù)值。為減少計算時間,在實驗過程中將范圍和步長設(shè)置大一些,以快速獲知參數(shù)的最優(yōu)值所在的范圍,然后逐步縮小范圍和步長,計算出精確的參數(shù)值。
在實驗過程中發(fā)現(xiàn),用軟件失效數(shù)據(jù)集全部數(shù)據(jù)得到的模型參數(shù),生成的擬合數(shù)據(jù)與真實值的誤差較大。在幾個軟件失效數(shù)據(jù)集中進行大量實驗,使用數(shù)據(jù)集的前一部分數(shù)據(jù)進行參數(shù)計算,后一部分數(shù)據(jù)用于驗證,結(jié)果表明,使用部分數(shù)據(jù)進行參數(shù)計算和MSE 值計算,所得的MSE 值優(yōu)于使用全部數(shù)據(jù)進行相關(guān)計算得到的MSE 值。因此,改進了參數(shù)計算算法,使用前i(n/2
圖1 參數(shù)計算的優(yōu)化算法流程
在上述理論研究和優(yōu)化算法的基礎(chǔ)上,基于Java 語言,設(shè)計并開發(fā)了一款SRGM Tool,該工具可在個人計算機Web 端使用:導(dǎo)入軟件失效數(shù)據(jù)集,計算得到模型參數(shù),進行可靠性分析,輔助完成可靠性模型的選擇。
SRGM Tool 的功能模塊包括:軟件失效數(shù)據(jù)集導(dǎo)入,可靠性趨勢分析,可靠性擬合和預(yù)測,不同模型的效果對比,如圖2 所示。
圖2 SRGM Tool 功能模塊示意
(1)軟件失效數(shù)據(jù)集導(dǎo)入模塊:選擇一個數(shù)據(jù)集導(dǎo)入SRGM Tool 中,為趨勢分析和模型的擬合做準(zhǔn)備。
(2)趨勢分析模塊:分析失效數(shù)據(jù)集趨勢,利用圖形法和拉普拉斯法對可靠性增長趨勢進行刻畫,得到所選數(shù)據(jù)集的可靠性增長趨勢。
(3)模型擬合模塊:在所選軟件失效數(shù)據(jù)集的基礎(chǔ)上,根據(jù)模型的均值函數(shù)和參數(shù)值,計算得出擬合值,將它們與軟件失效數(shù)據(jù)集的數(shù)據(jù)進行擬合,在同一坐標(biāo)系中展示結(jié)果,并計算相應(yīng)的評價指標(biāo)值(MSE 值、R-Square 值、RE 值)。
(4)模型效果對比模塊:支持同數(shù)據(jù)集不同模型的對比、同模型不同數(shù)據(jù)集的對比。其中,同數(shù)據(jù)集不同模型的對比,在同個數(shù)據(jù)集上進行擬合,繪制所有模型的曲線;同模型不同數(shù)據(jù)集的對比,在3 個數(shù)據(jù)集上進行擬合,展示3 個擬合圖形。
為了對鐵路軟件進行準(zhǔn)確估計,需要真實的鐵路軟件失效數(shù)據(jù)集,保證數(shù)據(jù)的真實性、準(zhǔn)確性及完整性。本文在進行模型對比實驗驗證時選取了鐵路計算機聯(lián)鎖軟件的失效數(shù)據(jù)集,該數(shù)據(jù)集以《計算機聯(lián)鎖技術(shù)條件》為標(biāo)準(zhǔn)判斷軟件是否出錯,軟件運行半年,共采集了17 組失效數(shù)據(jù),每組數(shù)據(jù)記 錄了測試的時間和累計錯誤數(shù)量。
在SRGM Tool 上,以鐵路計算機聯(lián)鎖軟件的失效數(shù)據(jù)集為例開展實驗。
(1)導(dǎo)入軟件失效數(shù)據(jù)集,進行可靠性趨勢分析,將計算得到的結(jié)果繪制成圖形。
(2)計算模型參數(shù),得到參數(shù)后,利用可視化方法展示各模型與鐵路軟件失效數(shù)據(jù)集的擬合效果,同 時,計算、展示可靠性評估的指標(biāo)值。
5.3.1 軟件可靠性增長趨勢分析
運用圖形法得到的結(jié)果如圖3 所示,運用拉普拉斯法得到的結(jié)果如圖4 所示,兩種方法所展現(xiàn)的效果基本一致,曲線斜率總體上隨時間變化逐漸減小。拉普拉斯法中,總體上數(shù)值在減小。第9~第78 天期間出現(xiàn)了波動,局部可靠性下降,但該軟件失效數(shù)據(jù)集總體上呈可靠性增長趨勢。
圖3 軟件可靠性增長趨勢結(jié)果(圖形法)
對于鐵路軟件失效數(shù)據(jù)集進行初步的可靠性增長趨勢分析后,可根據(jù)該數(shù)據(jù)集的趨勢特點選擇合適 的模型進行驗證,本文利用4 個模型進行對比驗證。
5.3.2 模型擬合對比
利用改進的參數(shù)計算方法,多次試驗發(fā)現(xiàn),運用前14 組數(shù)據(jù)計算參數(shù),得到的MSE 值最小,即擬合效果最好,因此,選擇前14 組數(shù)據(jù)得到的參數(shù)組合作為最終采用的參數(shù)數(shù)值,以達到更好的擬合效果,同時,選擇第15~第17 組數(shù)據(jù)作為驗證數(shù)據(jù)。
圖4 軟件可靠性增長趨勢結(jié)果(拉普拉斯法)
將鐵路聯(lián)鎖軟件失效數(shù)據(jù)集運用于G-O 模型、Delayed S-shaped 模型、Ohba-Chou 模型及P-N-Z 模型上,進行擬合測試,計算各模型引入?yún)?shù)的數(shù)值,繪制相應(yīng)的擬合曲線,4 種模型的擬合結(jié)果在同一圖形中進行對比,如圖5 所示,圖6 為相對誤差曲線,表2 列出各模型的擬合效果評價指標(biāo)值。
圖5 擬合結(jié)果圖形對比
圖6 各模型相對誤差曲線
結(jié)合實驗結(jié)果,可以得到以下結(jié)論:
(1)圖5 中,第1~第14 組數(shù)據(jù)作為擬合數(shù)據(jù),第15~第17 組數(shù)據(jù)作為驗證數(shù)據(jù)。從圖中可以看出,擬合數(shù)據(jù)中,P-N-Z 模型與數(shù)據(jù)集數(shù)據(jù)的擬合優(yōu)度最好;而驗證數(shù)據(jù)中,G-O 模型的擬合效果則更好一些,但是總體上P-N-Z 模型的效果最優(yōu)。從圖6 的相對誤差曲線也可以得到同樣的結(jié)論;
(2)從圖5 中可以明顯地發(fā)現(xiàn),Delayed S -shaped 模型在初始時增長緩慢,反映了模型的延遲效應(yīng),但是對于本文的鐵路軟件失效數(shù)據(jù)集,總體擬合效果較差,說明此數(shù)據(jù)集可能不存在排除錯誤延遲問題;
(3)G-O 模型擬合和預(yù)測效果均為4 個模型中最差的,Ohba-Chou 模型在該數(shù)據(jù)集上擬合較好,從量化指標(biāo)來看差距較小,原因為Ohba-Chou 模型是在G-O 模型基礎(chǔ)上考慮新引入的錯誤數(shù)與糾正的錯誤數(shù)成正比,比較理想化,所以O(shè)hba-Chou 模型較G-O 模型有改進,但是改進不大;
(4)從表2 中可以看出,對于該聯(lián)鎖軟件的失效數(shù)據(jù)集來說,P-N-Z 模型的擬合優(yōu)度最好,若用于實 際生產(chǎn)中,該模型是最佳選擇。
本文對鐵路軟件可靠性模型應(yīng)用方法進行了研究,利用4 種可靠性增長模型,對鐵路軟件進行可靠性增長趨勢分析和可靠性評估預(yù)測,提出了一種可靠性模型參數(shù)計算的優(yōu)化算法,并通過實例給出鐵路聯(lián)鎖軟件可靠性模型分析和預(yù)測的方法,可為鐵 路領(lǐng)域其它軟件的可靠性分析和預(yù)測提供參考。
每個可靠性模型都有其適用的失效數(shù)據(jù)集和場景,具體情況應(yīng)結(jié)合實際應(yīng)用進行分析。對于本文實驗中的鐵路聯(lián)鎖軟件失效數(shù)據(jù)集而言,P-N-Z 擬合效果最優(yōu)。
在鐵路領(lǐng)域其它軟件的實際使用中,可結(jié)合收集到的軟件失效數(shù)據(jù)集,與各個模型相結(jié)合,考察模型的擬合優(yōu)度和預(yù)測效果,結(jié)合MSE 和R-Square等指標(biāo),進行綜合比較,最終選擇更適合其失效過程的模型,預(yù)測下次失效的時間或發(fā)生錯誤的頻率,提前做好排除錯誤計劃和相關(guān)措施,從而保障鐵路運營和維護安全,最大限度地減小因軟件失效帶來的經(jīng)濟損失。