李紅輝,趙 森,管軍霖,江周嫻
(1. 北京交通大學 計算機與信息技術學院 高速鐵路網絡管理教育部工程研究中心,北京 100044;2. 桂林電子科技大學 計算機與信息安全學院,桂林 541004)
列車在運營過程中高度依賴軟件的可靠性,如果軟件癱瘓甚至出現一個小故障,造成的后果可能都是災難性的[1]。目前,我國列車主要采用按運行里程計劃維護的策略,運營和維護費用較高[2],對于突發性或緊急事件的響應效果也比較差,嚴重時會造成重大經濟損失和人員傷亡。
軟件可靠性增長模型(SRGM,Software Reliability Growth Model)用于軟件可靠性的評估和預測[3]。利用SRGM 對鐵路軟件進行可靠性預測,能提前預知故障的發生時間,不但能有效幫助鐵路企業控制成本,還能更好地保證行車安全。目前,公開發表的SRGM 有100 多種,它們的基本假設條件不同、考慮的因素不同,適用性也不同,因此,用它們估測同一款軟件,所得結果可能差異較大。選擇或設計合適的評估模型、有效進行鐵路軟件可靠性評估是目前亟需研究的問題。
邢穎[4]等人討論了鐵路軟件可靠性測試關鍵技術及軟件可靠性模型,但未針對鐵路軟件失效數據集進行實驗。潘浪濤[5]建立了一個鐵路自動售票系統的可靠性分析模型,總結了系統可靠性與系統模塊失效概率之間的關系,但是,對模型的普適性未進行說明。廖亮[6]等人基于非齊次泊松過程(NHPP)對處于開發后期階段的鐵路信號計算機聯鎖軟件進行可靠性評估,但未用NHPP 模型與其它SRGM 作對比。
本文選取G-O 模型、Delayed S-shaped 模型、Ohba-Chou 模型及P-N-Z 模型[7]4 個較經典的SRGM,分析它們的特點及適用場景,提出一種可靠性模型參數計算的優化算法,在此研究基礎上開發了一款軟件可靠性增長模型分析工具(SRGM Tool)。以鐵路聯鎖軟件為例,研究軟件可靠性增長模型應用方法,確定了適合被測軟件的可靠性增長模型,驗證了方法的有效性。
SRGM 是在軟件失效數據集的基礎上,采用統計學方法,用數學方程式來表達軟件錯誤數量與不同因素(時間、測試工作量、不完美排錯及錯誤檢測率等)之間的關系。一般而言,隨著軟件中錯誤的排除,軟件中累計錯誤數量增長速度變慢,即軟件的可靠性逐漸增強。SRGM 是對軟件可靠性增長趨勢進行建模,該趨勢可用隨機變量分布描述,建模過程中提出基本假設,同時,引入與該趨勢相關的參數。
設m(t)表示t時刻累計錯誤數量的函數,a(t)為軟件總錯誤量,b(t)為錯誤檢測率,t> 0。
文中,假設所研究的模型均符合以下條件條件:累計檢測到的錯誤數量變化率(dm(t)/dt)與當前錯誤檢測率(b(t))條件下剩余的錯誤數量(a(t)-m(t))成正比,可用式(1)表示:

針對SRGM,假設發現錯誤,在排除錯誤時,如果錯誤可以完全被改正,且不會引入新的錯誤,稱為完美排錯;如果在排除一個錯誤時引起其它錯誤,則稱為不完美排錯。
1.2.1 G-O 模型
G-O 模型的假設條件較理想化,在數學表達上較簡單,假設總錯誤數量與錯誤檢測率恒定,即:

屬于完美排錯型。
1.2.2 Dealyed S-shaped 模型
該模型考慮了延遲效應,開始時增長比較慢,然后增長迅速,直至到達峰值,所以其可靠性增長曲線是一個呈S 型的曲線。假設總錯誤數量恒定,但錯誤檢測率考慮延遲效應,函數表達為:

同樣屬于完美排錯類型。
1.2.3 Ohba-Chou 模型
該模型在G-O 模型的基礎上改進,考慮排除錯誤時有可能引入新的錯誤,假設在排除錯誤時引入新錯誤的概率與t時刻檢測到的錯誤數量成正比,比例系數為r,且r< 1,則a(t)、b(t) 可表示為:

1.2.4 P-N-Z 模型
考慮測試人員學習能力對失效過程的影響。a(t)增加,意味著錯誤總數增加,排除錯誤過程不完善;錯誤包括已檢測和排除的錯誤,以及在排除錯誤過程中引入的錯誤。b(t) 增長,意味著錯誤檢測率增大,測試人員學習能力提升。設α為引入錯誤率參數,β為拐點因子,a(t)、b(t)可分別表示為:

4 種模型的對比分析見表1,從表中可以看出4種模型的差異,主要體現在a(t)和b(t)的不同,使得各模型的適用場景也不同。
本文采用擬合與預測效果相結合的方法衡量4個模型的優劣。

表1 4 種模型的對比
擬合效果即擬合數據與真實數據的吻合程度,本文選取均方誤差(MSE)和擬合優度(R-Square)兩個指標進行評價。
2.1.1 MSE
MSE 可以反映模型擬合出的數據與真實數據的差距,計算公式為:

式中,EMSE為均方誤差值,yi為真實失效數據,m(ti) 為擬合數據。EMSE值越小,說明擬合數據與真實數據差距越小,擬合效果越好。
2.1.2 R-Square
與MSE 相似,同樣可以用于評估模型的擬合效果,計算公式為:

式中,ER?Square為擬合優度值,m(ti) 為ti時刻累計錯誤數量的擬合值,yi為ti時刻累計錯誤數量的真實值。
R-Square 的值越接近1,說明擬合數據與真實數據越接近,擬合效果越好。
相對誤差(RE)[8]根據記錄到的失效數據預測未來失效發生的趨勢,從而評價模型的預測效果,可通過計算數據集中所有記錄的RE 值來表達,計算公式為:

式中,ERE為相對誤差值,根據此值繪制模型的RE 曲線,RE 值越小,說明該模型的預測結果具有更小的誤差,預測性能更好。
軟件失效數據集包含記錄時間、累計錯誤數量等,可借助可視化方法對其可靠性增長趨勢進行初步分析。常用的趨勢分析方法包括圖形法、拉普拉斯法、曲線圖技術、數據建模技術等,不同失效數據分析技術具有各自的使用場合和優勢。本文采用圖形法和拉普拉斯法分析軟件失效數據集的可靠性增長趨勢,用可視化方法更方便地觀測軟件失效數據集的發展趨勢,以便選擇合適的可靠性模型。
圖形法比較直觀,主要對軟件運行時間、累計失效數等各種變量之間關系進行分析。
橫軸表示時間ti;
縱軸表示累計錯誤數量m(ti),即ti時累計故障數量。
用描點法繪制折線圖,若折線圖呈現凸出狀態,可 以認為可靠性在增長,否則認為可靠性在下降。
拉普拉斯法[9]是把軟件失效數據集采集數據的時間劃分成n個等長的單位時間,在第i個單位時間中記錄到的錯誤數為n(i),拉普拉斯法表達式為:

式中,u(k) 為第k個記錄的拉普拉斯因子,k=1, 2, ···,n,以時間順序觀察拉普拉斯因子值,若拉普拉斯因子值減小,說明失效強度降低,則軟件可靠性逐漸增強。
結合圖形法和拉普拉斯法兩種方法,可以得到軟件失效數據集的可靠性增長趨勢。
計算SRGM 中的參數(即a、b、r、α、β),需要在軟件失效數據集的數據上進行參數計算,將得到的參數值代入模型,計算出擬合數據,與軟件失效數據集進行擬合。
本文參數計算采用極大似然估計法,將軟件失效數據集代入模型,給出參數值的初始化值和范圍,通過設定的步長逐個枚舉參數值,求MSE 值,輸出得到最優MSE 值時的參數值。為減少計算時間,在實驗過程中將范圍和步長設置大一些,以快速獲知參數的最優值所在的范圍,然后逐步縮小范圍和步長,計算出精確的參數值。
在實驗過程中發現,用軟件失效數據集全部數據得到的模型參數,生成的擬合數據與真實值的誤差較大。在幾個軟件失效數據集中進行大量實驗,使用數據集的前一部分數據進行參數計算,后一部分數據用于驗證,結果表明,使用部分數據進行參數計算和MSE 值計算,所得的MSE 值優于使用全部數據進行相關計算得到的MSE 值。因此,改進了參數計算算法,使用前i(n/2

圖1 參數計算的優化算法流程
在上述理論研究和優化算法的基礎上,基于Java 語言,設計并開發了一款SRGM Tool,該工具可在個人計算機Web 端使用:導入軟件失效數據集,計算得到模型參數,進行可靠性分析,輔助完成可靠性模型的選擇。
SRGM Tool 的功能模塊包括:軟件失效數據集導入,可靠性趨勢分析,可靠性擬合和預測,不同模型的效果對比,如圖2 所示。

圖2 SRGM Tool 功能模塊示意
(1)軟件失效數據集導入模塊:選擇一個數據集導入SRGM Tool 中,為趨勢分析和模型的擬合做準備。
(2)趨勢分析模塊:分析失效數據集趨勢,利用圖形法和拉普拉斯法對可靠性增長趨勢進行刻畫,得到所選數據集的可靠性增長趨勢。
(3)模型擬合模塊:在所選軟件失效數據集的基礎上,根據模型的均值函數和參數值,計算得出擬合值,將它們與軟件失效數據集的數據進行擬合,在同一坐標系中展示結果,并計算相應的評價指標值(MSE 值、R-Square 值、RE 值)。
(4)模型效果對比模塊:支持同數據集不同模型的對比、同模型不同數據集的對比。其中,同數據集不同模型的對比,在同個數據集上進行擬合,繪制所有模型的曲線;同模型不同數據集的對比,在3 個數據集上進行擬合,展示3 個擬合圖形。
為了對鐵路軟件進行準確估計,需要真實的鐵路軟件失效數據集,保證數據的真實性、準確性及完整性。本文在進行模型對比實驗驗證時選取了鐵路計算機聯鎖軟件的失效數據集,該數據集以《計算機聯鎖技術條件》為標準判斷軟件是否出錯,軟件運行半年,共采集了17 組失效數據,每組數據記 錄了測試的時間和累計錯誤數量。
在SRGM Tool 上,以鐵路計算機聯鎖軟件的失效數據集為例開展實驗。
(1)導入軟件失效數據集,進行可靠性趨勢分析,將計算得到的結果繪制成圖形。
(2)計算模型參數,得到參數后,利用可視化方法展示各模型與鐵路軟件失效數據集的擬合效果,同 時,計算、展示可靠性評估的指標值。
5.3.1 軟件可靠性增長趨勢分析
運用圖形法得到的結果如圖3 所示,運用拉普拉斯法得到的結果如圖4 所示,兩種方法所展現的效果基本一致,曲線斜率總體上隨時間變化逐漸減小。拉普拉斯法中,總體上數值在減小。第9~第78 天期間出現了波動,局部可靠性下降,但該軟件失效數據集總體上呈可靠性增長趨勢。

圖3 軟件可靠性增長趨勢結果(圖形法)
對于鐵路軟件失效數據集進行初步的可靠性增長趨勢分析后,可根據該數據集的趨勢特點選擇合適 的模型進行驗證,本文利用4 個模型進行對比驗證。
5.3.2 模型擬合對比
利用改進的參數計算方法,多次試驗發現,運用前14 組數據計算參數,得到的MSE 值最小,即擬合效果最好,因此,選擇前14 組數據得到的參數組合作為最終采用的參數數值,以達到更好的擬合效果,同時,選擇第15~第17 組數據作為驗證數據。

圖4 軟件可靠性增長趨勢結果(拉普拉斯法)
將鐵路聯鎖軟件失效數據集運用于G-O 模型、Delayed S-shaped 模型、Ohba-Chou 模型及P-N-Z 模型上,進行擬合測試,計算各模型引入參數的數值,繪制相應的擬合曲線,4 種模型的擬合結果在同一圖形中進行對比,如圖5 所示,圖6 為相對誤差曲線,表2 列出各模型的擬合效果評價指標值。

圖5 擬合結果圖形對比

圖6 各模型相對誤差曲線
結合實驗結果,可以得到以下結論:
(1)圖5 中,第1~第14 組數據作為擬合數據,第15~第17 組數據作為驗證數據。從圖中可以看出,擬合數據中,P-N-Z 模型與數據集數據的擬合優度最好;而驗證數據中,G-O 模型的擬合效果則更好一些,但是總體上P-N-Z 模型的效果最優。從圖6 的相對誤差曲線也可以得到同樣的結論;
(2)從圖5 中可以明顯地發現,Delayed S -shaped 模型在初始時增長緩慢,反映了模型的延遲效應,但是對于本文的鐵路軟件失效數據集,總體擬合效果較差,說明此數據集可能不存在排除錯誤延遲問題;
(3)G-O 模型擬合和預測效果均為4 個模型中最差的,Ohba-Chou 模型在該數據集上擬合較好,從量化指標來看差距較小,原因為Ohba-Chou 模型是在G-O 模型基礎上考慮新引入的錯誤數與糾正的錯誤數成正比,比較理想化,所以Ohba-Chou 模型較G-O 模型有改進,但是改進不大;
(4)從表2 中可以看出,對于該聯鎖軟件的失效數據集來說,P-N-Z 模型的擬合優度最好,若用于實 際生產中,該模型是最佳選擇。
本文對鐵路軟件可靠性模型應用方法進行了研究,利用4 種可靠性增長模型,對鐵路軟件進行可靠性增長趨勢分析和可靠性評估預測,提出了一種可靠性模型參數計算的優化算法,并通過實例給出鐵路聯鎖軟件可靠性模型分析和預測的方法,可為鐵 路領域其它軟件的可靠性分析和預測提供參考。
每個可靠性模型都有其適用的失效數據集和場景,具體情況應結合實際應用進行分析。對于本文實驗中的鐵路聯鎖軟件失效數據集而言,P-N-Z 擬合效果最優。
在鐵路領域其它軟件的實際使用中,可結合收集到的軟件失效數據集,與各個模型相結合,考察模型的擬合優度和預測效果,結合MSE 和R-Square等指標,進行綜合比較,最終選擇更適合其失效過程的模型,預測下次失效的時間或發生錯誤的頻率,提前做好排除錯誤計劃和相關措施,從而保障鐵路運營和維護安全,最大限度地減小因軟件失效帶來的經濟損失。