<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 軟件可靠性數(shù)據(jù)預(yù)處理研究

          軟件可靠性數(shù)據(jù)預(yù)處理研究

          作者: 時間:2010-10-18 來源:網(wǎng)絡(luò) 收藏

          現(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)等。



          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();