《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 軟件可靠性數(shù)據(jù)預(yù)處理研究
軟件可靠性數(shù)據(jù)預(yù)處理研究
來源:電子技術(shù)應(yīng)用2010年第8期
李東林, 徐燕凌, 蔣心怡
同濟大學(xué) 軟件學(xué)院, 上海 201804
摘要: 軟件可靠性模型是根據(jù)與軟件可靠性相關(guān)的數(shù)據(jù),以統(tǒng)計方法或模糊方法對軟件的可靠性進行度量、評估和預(yù)測。以往對軟件可靠性的預(yù)測是針對原始數(shù)據(jù)進行建模,而原始數(shù)據(jù)所存在的不平穩(wěn)性的缺陷,直接導(dǎo)致可靠性模型預(yù)測結(jié)果的誤差較大。本文以軟件可靠性模型研究中原始數(shù)據(jù)存在的問題為出發(fā)點,探討提高軟件可靠性預(yù)測的方法。通過對可靠性數(shù)據(jù)的預(yù)處理,解決其不平穩(wěn)性導(dǎo)致預(yù)測結(jié)果誤差較大的問題。
中圖分類號: TP311
文獻標(biāo)識碼: A
文章編號: 0258-7998(2010)08-0153-04
Research of software reliability data pre-processing
LI Dong Lin, XU Yan Ling, JIANG Xin Yi
School of Software Engineering, Tongji University, Shanghai 201804, China
Abstract: Software reliability and software reliability model is to measure, assess and predict the reliability of software in statistical or fuzzy method basing on the data. In the past prediction of software reliability is based on the raw data, while the raw data is usually unstable, which leads directly to the results of the reliability model has a greater error. This paper, begins with the problems of software reliability, explores the ways to improve software reliability prediction, software reliability, and solves the problem of data fluctuated by data pre-processing.
Key words : software reliability; software reliability engineering; software reliability growth model

    現(xiàn)代計算機系統(tǒng)的規(guī)模越來越龐大,越來越復(fù)雜,導(dǎo)致計算機系統(tǒng)的可靠性保障的難度也越來越大。因此,計算機系統(tǒng)的可靠性已為社會所廣泛關(guān)注[1]。面對這種形勢,國際上越來越重視軟件可靠性工程理論的研究發(fā)展,將軟件質(zhì)量管理逐漸納入規(guī)范化、科學(xué)化的軌道[2]。軟件可靠性工程也逐漸在信息技術(shù)、可靠性工程、用戶需求等綜合因素的作用下發(fā)展起來,并形成了一門綜合眾多學(xué)科的成果以解決軟件可靠性為出發(fā)點的邊緣學(xué)科。
    軟件可靠性工程主要研究對象為軟件產(chǎn)品或系統(tǒng)的失效發(fā)生原因、消除和預(yù)防措施,以保證軟件產(chǎn)品的可靠性和可用性,降低維護費用,提高軟件產(chǎn)品的使用效益。軟件可靠性已經(jīng)成為軟件業(yè)界和可靠性工程界關(guān)注的焦點、研究的熱點、實踐的重點。
1 軟件可靠性數(shù)據(jù)
    不同的軟件錯誤、缺陷及其故障在表現(xiàn)形式、性質(zhì)乃至數(shù)量方面可能大相徑庭,對其進行全面、詳細(xì)的闡述是非常困難的,也是不客觀、不現(xiàn)實的。但是現(xiàn)實中,為了簡單易行,通常假設(shè)軟件可靠性模型所有失效等級相同,或?qū)儆谕活?,即不再區(qū)分軟件錯誤、缺陷及其故障。如果要區(qū)分失效等級和失效類型,將隨之帶來很多問題。例如,同一模型是否適用于不同類型的失效數(shù)據(jù);由于分類后各類失效數(shù)據(jù)樣本一般極少,將會影響模型給出結(jié)果的精度。因此一般情況下,不再對失效數(shù)據(jù)進行分類[3]。
    經(jīng)典的軟件可靠性模型有:(1)1972年,Jelinski和Moranda首次提出了軟件可靠性模型的概念,并建立了具體的可靠性模型——J-M模型[4-5]; (2)1973年,Littlewood和Verall采用Bayes方法進行軟件可靠性測試[6];(3)1979年,Goel和Okumoto提出了改進J-M模型的非齊次泊松過程模型,即G-O模型;(4)1983年,Yamada和Osaki發(fā)現(xiàn)錯誤數(shù)在預(yù)測初期增長緩慢隨后快速增長,最后趨于飽和,即延時S形增長模型,稱為Y-O模型[7]。
 任意選取一組如表1所示的MUSA J M的軟件可靠性數(shù)據(jù),使用筆者開發(fā)的軟件可靠性預(yù)測系統(tǒng),驗證上述4個軟件可靠性模型,得到的擬合曲線如圖1所示。由圖可以看出,由于原始的軟件可靠性數(shù)據(jù)間隔時間的不平穩(wěn)性,導(dǎo)致其最終預(yù)測結(jié)果產(chǎn)生極大的誤差,特別是在波峰波谷處。

 通過對大量軟件可靠性數(shù)據(jù)的研究分析發(fā)現(xiàn),軟件發(fā)生缺陷的間隔時間具有較大的波動性,而這也正是導(dǎo)致其預(yù)測結(jié)果誤差較大的主要原因。描繪其波動性趨勢,構(gòu)建軟件可靠性數(shù)據(jù)的波動模型,是解決問題的關(guān)鍵。
2 軟件可靠性數(shù)據(jù)的預(yù)處理
   為解決上述問題,本研究將軟件可靠性數(shù)據(jù)分解成獨立的兩部分?jǐn)?shù)據(jù)。一部分描繪軟件可靠性數(shù)據(jù)的總體趨勢;另外一部分描繪軟件可靠性數(shù)據(jù)隨時間的波動趨勢。通過兩部分?jǐn)?shù)據(jù)的分別預(yù)測和組合,得到最終的可靠性結(jié)果。
 設(shè)軟件失效間隔時間分別為:x(1),x(2),…x(n),失效時間分別為:t(1),t(2),…t(n),其中t(i)為軟件開始運行到第i次失效發(fā)生的時間,x(i)為軟件第i-1次失效到第i次失效發(fā)生的時間間隔,即x(i)=t(i)-t(i-1)。
 假定t時刻的軟件可靠性數(shù)據(jù)M(t)=P(t)+Q(t),其中P(t)用來描繪軟件可靠性數(shù)據(jù)的總體趨勢,Q(t)用來描繪軟件可靠性數(shù)據(jù)隨缺陷出現(xiàn)的波動趨勢。

    按上述算法,對表1所列數(shù)據(jù)進行處理得出表2結(jié)果。

 表2所估算的預(yù)測數(shù)據(jù)P(t)的時間間隔曲線如圖2所示。由圖可以看出,其整個趨勢相對于原始數(shù)據(jù)相對平穩(wěn),且其大致趨勢與原始數(shù)據(jù)曲線趨同。

    根據(jù)原始數(shù)據(jù)與預(yù)測數(shù)據(jù)P(t)的差值曲線,尋找并預(yù)測Q(t)的變化規(guī)律。由圖3可以看出,對于波動程度的取值,必須要考慮波動的正負(fù)和波動的幅度兩方面因素。

 同樣根據(jù)早期數(shù)據(jù)對預(yù)測未來行為作用很小,而現(xiàn)時失效間隔數(shù)據(jù)可以比更早之前觀測的失效間隔數(shù)值更好地預(yù)測未來這個原理,本研究選取Q(t)之前的5個失效數(shù)據(jù)點進行波動值Q(t)的預(yù)測。
 首先根據(jù)之前5個點波幅4次正負(fù)切換的次數(shù),預(yù)測時刻t相對于上一時刻t-1波幅的異號或同號的可能性。

 波動的幅度通過取5個點的振幅絕對值平均值得到。同時可以發(fā)現(xiàn)對于點Q(t-1)的振幅與Q(t)的預(yù)測也有較大聯(lián)系,假設(shè)Q(t)=a×Q(t)+b×|Q(t-1)|,a取值0.7,b取值0.3。
 按照上述算法,將估算的P(1)…P(t-1)值代入軟件可靠性模型,得到P(t),最終得到時刻t的預(yù)測時間P′(t)+Q(t)。
3 算法驗證
 (1)使用Littlewood-Verall模型對P(t)進行運算,根據(jù)P(t)…P(t-1)求得預(yù)測的P′(t),結(jié)果如表3所示。

    定義可靠性模型評價標(biāo)準(zhǔn):
   
    剔除失效數(shù)據(jù)點1、2、3,其他的14個失效數(shù)據(jù)點RE的為0.349 351,而初始的失效間隔的RE值為1.595??梢娡ㄟ^平穩(wěn)處理失效數(shù)據(jù)點,可以得到更高的擬合度。
 (2)求值Q′(t),按照之前算法,得到的值如表4所示。

   由于前5個失效數(shù)據(jù)點的預(yù)測Q′(t)缺少有效的數(shù)據(jù),所以計算ESS時,將其剔除,剔除后的點求得RE的值為1.23,相對于使用未經(jīng)處理的點獲得的RE值(1.595)誤差減小近20%。同時,可以看到其產(chǎn)生誤差的主要原因是失效數(shù)據(jù)點11所導(dǎo)致的。MUSA J M軟件可靠性數(shù)據(jù)及最終預(yù)測數(shù)據(jù)如表5所示。

    軟件可靠性評估日益受到重視,作為其核心的軟件可靠性模型理論的研究也勢必要深入下去。本文的研究開啟了軟件可靠性理論研究的入口,以后的研究除了對可靠性數(shù)據(jù)進行進一步處理外,也將對軟件可靠性模型進行進一步的改進。
    本文在傳統(tǒng)方法僅關(guān)注軟件可靠性模型的基礎(chǔ)上,拓寬至對可靠性數(shù)據(jù)的預(yù)處理,提出了一種對軟件可靠性數(shù)據(jù)處理的新方法,解決了可靠性數(shù)據(jù)采集過程中出現(xiàn)波動性大的缺陷,而且算法簡單、穩(wěn)健性好,可以適用于各種工程應(yīng)用。但其中還有很多問題值得進一步研究,例如,如何實現(xiàn)新算法中Q(t)系數(shù)的自適應(yīng)等。
參考文獻
[1]  孫志安, 裴曉黎. 軟件可靠性工程[M]. 北京:北京航空航天大學(xué)出版社, 2009.
[2]  徐仁佐. 軟件可靠性工程 [M]. 北京:北京清華大學(xué)出版社,2007.
[3]  LYU M R. 軟件可靠性工程手冊 [M]. 劉喜成,等譯.北京:電子工業(yè)出版社, 1997.
[4]  MUSA J D, IANNINO A, OKUMOTO K. Software reliability: measurement,prediction, application[M]. New York: McGraw-Hill, 1987.
[5]  CHEUNG R C. A user-oriented software reliability model [J]. IEEE Transactions on Software Engineering, 1980,3-6(2):118.
[6]  LITTLEWOOD B. A reliability model for system with  markov structure[J]. Applied Statistics, 1975,24(2):172.
[7] GOSEVA P K, TRIVEDI K. Architecture-based approach to reliability assessment of software systems[J]. Performance Evaluation, 2001, 45(2-3):179-204.
[8]  蔡開元. 軟件可靠性工程基礎(chǔ) [M]. 北京:北京清華大學(xué)出版社,1995.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。