崔聰,李鐸,郭超
(清華大學核能與新能源技術(shù)研究院,先進核能技術(shù)協(xié)同創(chuàng)新中心,先進反應(yīng)堆工程與安全教育部重點實驗室,北京 100084)
華能山東石島灣核電站高溫氣冷堆電站示范工程(以下簡稱HTR-PM)是國家“十一五”重大專項支持的重點工程, HTR-PM數(shù)字化保護系統(tǒng)是高溫氣冷堆核電站重大專項關(guān)鍵技術(shù)及相關(guān)試驗研究項目之一,是專門針對HTRPM的保護功能和性能要求開發(fā)的專用系統(tǒng),針對性強,結(jié)構(gòu)簡單[1]。
為了提高HTR-PM的安全性,就要提高保護系統(tǒng)軟件的質(zhì)量,而衡量軟件質(zhì)量的最重要指標的之一就是可靠性。因此,要研究HTR-PM保護系統(tǒng)的軟件可靠性具有重要意義。
軟件可靠性,即軟件系統(tǒng)在一定時間內(nèi)不發(fā)生故障的概率[2]。研究軟件可靠性問題的有效手段之一就是根據(jù)過去的失效數(shù)據(jù)進行建模,以預(yù)測未來數(shù)據(jù)的變化趨勢。該方法使用與時間相關(guān)的失效數(shù)據(jù),由于隨著測試時間的推進,軟件可靠性逐漸提高,所以使用這種手段建立的模型又叫做軟件可靠性增長模型(SRGM)。在此基礎(chǔ)上開發(fā)出的非齊次泊松過程(NHPP)故障分類軟件可靠性模型應(yīng)用廣泛,NHPP模型的主要問題是在不同的假設(shè)條件下確定合適的期望累計故障數(shù)函數(shù),所以,本文研究的主要內(nèi)容分兩方面:
1)對已有與軟件故障分類相關(guān)的非齊次泊松過程(NHPP)模型歸納整理,分解模型結(jié)構(gòu),把假設(shè)條件統(tǒng)一處理,從處理手段、數(shù)學公式、軟件工程意義角度整理歸納。
2)在已有錯誤嚴重程度的模型基礎(chǔ)上,利用關(guān)鍵錯誤占錯誤總數(shù)的變化趨勢曲線進行建模研究并分析結(jié)果。
非其次泊松過程(NHPP)模型在軟件可靠性增長模型占有絕對的優(yōu)勢,本文重點研究和總結(jié)了與軟件故障分類相關(guān)的NHPP模型,并在此基礎(chǔ)上提出了基于軟件故障分類的新的軟件可靠性模型。
在 GO模型之后,由于在實際情況中相對于假設(shè)的指數(shù)增長模型,S型軟件可靠性增長更經(jīng)常的觀測到,所以M.Ohba和S.Yamada提出了S型模型,即考慮了故障檢測或移除的延時問題[3]。1984年M.Ohaba對指數(shù)模型、DSS型和ISS型模型進行了總結(jié)[4]。而后Shigeru Yamada提出了故障分類模型[5],故障按照檢測難易度進行分類,但是故障檢測率都是常數(shù),故障類型只是通過檢測率的大小來區(qū)分。Mitsuhiro Kimura和Shigeru Yamada對故障分類進行了細化,首次提出了根據(jù)延時的程度來區(qū)分故障類型[6],但是在他們的模型中只考慮了兩種故障。后來又開發(fā)出3故障類型模型[7],第一種故障類型假設(shè)故障檢測率為常數(shù)即S型,第二種假設(shè)為DSS型,第3種假設(shè)為Erlang型。2008年,Omar Shatnawi和P.K.Kaupur提出了一種廣義的故障分類模型[8],作者首先研究了軟件系統(tǒng)中存在的最容易分析的簡單、困難、復(fù)雜3種故障的情況,然后把復(fù)雜故障推廣到要經(jīng)過N步才能移除的故障類型,而這種故障分類涵蓋了DSS型、ISS型和廣義的Erlang型模型,該模型結(jié)構(gòu)如下:
1)基本假設(shè)
A2.每個故障的嚴重性和被檢測到的可能性大致相同;A3.在任何時間間隔內(nèi)檢測到的故障數(shù)是相互獨立的;A4.故障分類—按照故障移除的難易度2)基本公式
不同故障類型需要階段不同,簡單故障一個階段立即移除,困難故障需要兩個階段才能移除,復(fù)雜故障需經(jīng)過檢測過程、分析過程和移除過程三個階段,同時考慮學習因素,推廣到n個階段,則有:
不完美除錯,即考慮錯誤移除的不徹底和移錯過程中引入新錯誤。Tom Lynch和Hoang Pham首次提出了將故障分類和不完美除錯中的引入新錯誤放在一起考慮[9],其中故障分類還是按照不同的檢測率常數(shù) 來區(qū)分故障類型。后來,P.K.Kapur和Sunil Kumar Khatri對這一模型進行了完善,同時考慮不完美除錯的移除成功率和引錯概率,并且在區(qū)分故障類型上也采用了時延的方法[10],該模型如下:
1)假設(shè)條件
A1、A2、A3同上;A4.故障分類—按照故障移除難易度A5.不完美除錯—引入錯誤和移錯延時
2)基本公式
簡單故障,一步就可以移除,困難故障需要兩個過程—觀察和移除才能徹底將故障移除,但是由于要考慮除錯的不徹底和引入錯誤,所以需要將觀察和移除的兩步式子合為一個式子,有:
同理,復(fù)雜故障:
在硬件系統(tǒng)中故障檢測率經(jīng)常是遞增或者遞減,遞減是由于修復(fù)設(shè)計相關(guān)的應(yīng)將故障,遞增是由于硬件組件的老化磨損[11]。如果不考慮引入錯誤,軟件系統(tǒng)通常是有一個遞減的故障率,因為軟件不會老化磨損。然而軟件故障檢測率還要考慮它的測試措施,不同的測試措施導致了不同的故障檢測率,例如,考慮Weibull-type和Logistic類型的測試函數(shù)[12-13]。Sy-Yen和Yu Huang提出了將 分解為測試函數(shù)和FDR的乘積[14],拓展了 的含義。
1)假設(shè)條件
A1、A2、A3同上;A4.對 進行分解處理
2)基本公式
式中,函數(shù)為可評估的測試過程(TE)包括人力、測試案例和CPU時間等,而測試過程說明了軟件故障被檢測的效率,TE的表達式 可以為常數(shù)、威布爾分布和Logistic函數(shù)。函數(shù)為FDR嚴重依賴于測試的技術(shù)、程序的大小和軟件的測試能力,有3種隨時間的變化:增長、減少、恒定不變。由此得到可以為常數(shù)、非增函數(shù)和非減函數(shù)。這里拓展了意義,把測試過程和故障檢測率同時考慮。選擇合適的代入到式(4)中即可解得
很多SGRM模型假設(shè)故障檢測率是常數(shù),故障在整個時間段上的分布是相同的,不隨時間改變。但是實際情況是,故障的分布受到很多因素影響,例如運行環(huán)境、測試策略以及資源分配。一旦這些條件發(fā)生改變,就可能導致軟件故障密度函數(shù)非單調(diào)的變化,這個問題稱作變點問題。不同時間段上故障檢測率可以為不同的值,而這些時間段之間的時間節(jié)點就叫做變點。變點問題最早由Zhao.M.提出[15]。后來Huan-Jyh Shyur提出了將變點問題和不完美除錯結(jié)合考慮建立模型,故障檢測率和故障引入率一起隨時間區(qū)間段變化[16]。2007年P(guān).K.Kapur等人提出了將變點和不同故障種類相結(jié)合建立模型,其中故障檢測率根據(jù)時間區(qū)間和故障種類不同而取不同值[17]。同年,D.N.Goswami等人擴大了故障檢測率的取值范圍[18],該模型如下:
1)假設(shè)條件
A1、A2、A3同上;A4.變點;A5.故障分類—故障的嚴重程度。
2)基本公式
通過變點把測試過程分為不同區(qū)間,并且在同一區(qū)間上,不同類型的故障的檢測率也是不同,考慮測試經(jīng)驗的獲得,對于簡單故障由于其最容易被檢測到,所以移除率值最大。而對于困難和復(fù)雜故障,由于難以檢測,并且檢測后還要進行分析原因,所以在測試過程結(jié)束時FFR可能減少。
出于經(jīng)濟和軟件工程考慮,大多數(shù)軟件的發(fā)布都不是最終和完美版本,軟件更新是一個復(fù)雜的過程,上一個版本的部分軟件錯誤往往會留到下一個軟件版本中并對下一個版本產(chǎn)生影響,據(jù)此Amir.H.S.Garmabaki和Anu.G.Aggarwal提出的軟件更新?lián)Q代的模型[19]。
1)假設(shè)條件
A1、A2、A3同上;A4.故障分類—按照故障移除的難易度;A5.版本更新2)基本公式
Kuei-Chen Chiu曾經(jīng)提出一種表現(xiàn)與發(fā)現(xiàn)錯誤有關(guān)的自動錯誤檢測因素 、學習因素 和忽略因素 的模型[20]。其中,故障分布的密度函數(shù)為。后來,Javaid Iabal和N.Ahmad對這個模型進行了改進,把學習因素分為了自主學習因素和獲得性學習因素,使得更加符合實際情況[21]。
a)假設(shè)條件
A1、A2、A3同上;A4.考慮學習因素、自動檢測因素、忽略因素
b)基本公式
自主學習和自動錯誤檢測過程有關(guān),而獲得性學習和經(jīng)驗的故障檢測有關(guān),所以有如下式子
根據(jù)對上述五大類模型的所有假設(shè)條件為:A1,A2,A3;A4.故障分類—按照故障移除的難易度、故障檢測難易度、故障嚴重程度;A5.不完美除錯—包括除錯不完全和引入新錯誤;A6.根據(jù)工程意義對 進行分解;A7.變點;A8.版本更新;A9.對于分布函數(shù) 的處理。
從第一章已有的5大類模型看出現(xiàn)有模型大多只是單純的進行故障分類,并對不同種類的故障之間的發(fā)展趨勢進行研究。不同種類的故障具有不同的發(fā)展趨勢,即每一類故障在總體故障中的占比是發(fā)展、變化的,充分利用這些信息研究故障的變化趨勢可從另一方面入手研究軟件可靠性模型。在文獻[22]中作者錯誤比重函數(shù)采用Logistic函數(shù)來描述取得較好結(jié)果,本文在此模型基礎(chǔ)上對關(guān)鍵錯誤占錯誤總數(shù)變化趨勢曲線進行了建模研究,通過分析結(jié)果說明了研究故障間關(guān)系的適用性和必要性。
表1 的各種處理方式Table 1 All kinds of treatment
表1 的各種處理方式Table 1 All kinds of treatment
?
表2 的各種處理方式Table 2 A ll kinds of treatment
表2 的各種處理方式Table 2 A ll kinds of treatment
?
表3 的各種處理方式Table 3 All kinds of treatment
表3 的各種處理方式Table 3 All kinds of treatment
?
本文使用HTR-PM保護系統(tǒng)開發(fā)過程的26個軟件模塊中的FirmSys_MCS_GPU100模塊第一期的故障數(shù)據(jù)建模,并采用前40天的數(shù)據(jù)用來估計參數(shù),而后80天的數(shù)據(jù)用來預(yù)測模型估計的準確性。表4是該模塊120天內(nèi)收集到的故障數(shù)據(jù)。
表4 檢測過程不同嚴重程度錯誤數(shù)據(jù)Table 4 The detection process of severity error data
(1)將關(guān)鍵錯誤比例數(shù)據(jù)點擬合為一條指數(shù)曲線。(2)利用擬合曲線推導出期望故障數(shù)的函數(shù)。
(3)故障數(shù)據(jù)點進行擬合求出待估參數(shù)以及平均方差MSE。
根據(jù)文獻[3]中,關(guān)鍵故障數(shù)比例呈指數(shù)形狀,故假其比例k設(shè)為:
由(1)~(5)解得:
2.4.1 使用MatLab進行比例函數(shù)的擬合
表5 比例函數(shù)的參數(shù)擬合結(jié)果Table 5 Proportion of function parameter fitting
圖1 關(guān)鍵錯誤占比數(shù)據(jù)和擬合結(jié)果Fig.1 Prcentage of critical errors and data fitting
圖2的擬合曲線和實際累計故障數(shù)數(shù)據(jù)Fig.2 The fitted curve and the actual cumulative number of fault data
表6 參數(shù)估計結(jié)果Table 6 Parameter estimation
表6 參數(shù)估計結(jié)果Table 6 Parameter estimation
參數(shù) N b本文的估計結(jié)果 353.761 0.0579
2.4.3 誤差分析
表7 參數(shù)估計結(jié)果Table 7 Parameter estimation
從結(jié)果看出在數(shù)據(jù)擬合階段,由于預(yù)先對參數(shù)進行了擬合,所以要比一步的參數(shù)估計誤差要大一些,但是在可以接受的范圍內(nèi);而數(shù)據(jù)預(yù)測效果則變的更好,也同樣是因為考慮了嚴重程度故障比例的數(shù)據(jù)圖,才使得預(yù)測誤差變小。這樣做的好處是,使錯誤嚴重比重的分類方法可以應(yīng)用到更廣的范圍;又使得最后在進行參數(shù)估計(MLE和LSE)時減少了待求參數(shù)的個數(shù),減少了計算量。
本文先對近30年來開發(fā)的各種類型的NHPP模型按照具有時延、不完美除錯、對的分解、變點和這5個方面進行了分類研究,現(xiàn)有模型對故障間關(guān)系研究較少,于是在已有模型的基礎(chǔ)上利用關(guān)鍵錯誤比重趨勢曲線進行建模,得到了較好的估計結(jié)果,說明了研究故障間關(guān)系的必要性。
NHPP模型發(fā)展至今已有數(shù)十種,這里只選取了其中最主要的幾類進行了整理研究,所以在未來的工作中可以吸收更多新類型NHPP模型以完善基本元素處理方式表;同時,現(xiàn)有軟件可靠性模型都是具體問題具體分析,缺乏一種通用的模型,所以可以在處理方式表的基礎(chǔ)上,從數(shù)學的角度將所有元素的特性整合為一個適用于大多數(shù)場合通用的模型,這樣做可以節(jié)省重復(fù)建模的成本。另外,這里對于故障間關(guān)系的研究還只是一個開端,故障關(guān)系的特性往往能從一個新的角度反映故障累計數(shù)的變化趨勢,因為它除了能反映故障本身變化特性,還能反映不同種類故障間的關(guān)系,例如可以根據(jù)故障關(guān)系曲線研究測試停止時間以及總故障數(shù)的變化趨勢,而這些工作都需要在未來完成。
[1]李鐸,等.HTR-PM反應(yīng)堆保護系統(tǒng)工程樣機的研制[J].儀器儀表用戶,2013,20(5):36-38.
[2]Michael R.Lyu, etal.Handbook of Software Reliability Engineering.IEEE Computer Society Press and McGraw-H ill Book Company
[3]M.Ohba, S.Yamada, etal.S-shaped software reliability grow th curve: How good is it?.Proceedings IEEE COMPSAC 82,Chicago, 1982:38-44.
[4]M itsuru Ohba.Software reliability analysis models.IBM Journal of Research and Development, 1984, 28(4): 428-443.
[5]Shigeru Yamada, et al.A software reliability grow th model w ith two types of errors[J].EDP Sciences, 1985, 19(1): 87-104.
[6]M istuhiro Kim ura, et al.Softw are reliability assessment for an exponential-S-shaped reliability grow th phenomenon[J].Computer Math.Applic.1992, 24(1/2): 71-78.
[7]Kapur P.K., etal.Contributions to harew are and softw are reliability.World Scientific Publishing Co.Ltd.1999.
[8]Omar Shatnawi, et al.A Generalized Software Fault Classification Model[J].WSEAS Transactions on Computer, 2008.
[9]Tom Lynch, etal.Modeling software-reliability w ith multiple failure-types and imperfect debugging[A].Proceedings Annual Reliability and Maintainability Symposium[C].IEEE, 1994: 235-240.
[10]PKKapur, et al.Incorporating concept of two types of imperfect debugging for developing flexible software reliability grow th model in distributed development environment[J].Journal of Technology and Engineering Sciences, 2009, 1(1).
[11]S.Yamada, et al.Software reliability grow th model with Weibull testing effort: A model and application.IEEE Transactions on Reliabiliy, 1993, 42(1): 100-106.
[12]S.Yamada, et al.A TE dependent software reliability model and its application.Microelectronics and Reliability.1987.
[13]C.Y.Huang, et al.Analysis of a software reliability grow th model w ith logistic TE function[A].Software Reliability Engineering,1997.Proceedings., The Eighth International Symposium on[C].1997:378-388.
[14]Sy-Yen Kuo, et al.Framework for modeling software reliability,using various testing-efforts and fault-detection rates[J].IEEE Transactions on reliability, 2001, 50(3):310-320.
[15]Ming Zhao.Change-point problems in software and hardware reliability.Communication in Statist-Theory Methods.1993.
[16]Huan-Jyh Shyur.A stochastic software reliability model with imperfect-debugging and change-point[J].The Journal of Systems and Software, 2003, 66: 135-141.
[17]P.K.Kapur, et al.Software reliability grow th modeling for errors of different severity using change point.International Jo u r n a l of Reliability, Quality and Safety Engineering, 2007, 14(4):311-326.
[18]D.N.Goswami, et al.Discrete software reliability grow th modeling for errors of different severity incorporating changepoint con cept[J].International Jou rnal of Au tom ation and computing, 2007, 4(4): 396-405.
[19]Am ir.H.S.Garmabaki, et al.Multi up-gradation software reliability grow th model with faults of different severity[A].2011 IEEE International Conference on Industrial Engineering and Engineering Management( IEEM)[C].IEEE, 2011.
[20]K.C.Chiu.A discussion of software reliability grow th models w ith time-varying learning effects[J].American Journal of Software engineering and applications, 2013, 2(3):92-104.
[21]Javaid Iqbal, etal.A software reliability grow th model with two types of learning and a negligence factor[A].2013 IEEE Second International Conference on Image Information Processing(ICIIP)(C).2013: 678-683.
[22]Yu Liu, et al.Modelling Software Fault Detection and Fault Correction Processes with Incomplete Test Data.International Conference on Information Technology and Management Science,2014.