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

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

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

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

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

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

 波動(dòng)的幅度通過(guò)取5個(gè)點(diǎn)的振幅絕對(duì)值平均值得到。同時(shí)可以發(fā)現(xiàn)對(duì)于點(diǎn)Q(t-1)的振幅與Q(t)的預(yù)測(cè)也有較大聯(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),,最終得到時(shí)刻t的預(yù)測(cè)時(shí)間P′(t)+Q(t)。
3 算法驗(yàn)證
 (1)使用Littlewood-Verall模型對(duì)P(t)進(jìn)行運(yùn)算,根據(jù)P(t)…P(t-1)求得預(yù)測(cè)的P′(t),結(jié)果如表3所示,。

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

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

    軟件可靠性評(píng)估日益受到重視,作為其核心的軟件可靠性模型理論的研究也勢(shì)必要深入下去,。本文的研究開(kāi)啟了軟件可靠性理論研究的入口,以后的研究除了對(duì)可靠性數(shù)據(jù)進(jìn)行進(jìn)一步處理外,,也將對(duì)軟件可靠性模型進(jìn)行進(jìn)一步的改進(jìn),。
    本文在傳統(tǒng)方法僅關(guān)注軟件可靠性模型的基礎(chǔ)上,拓寬至對(duì)可靠性數(shù)據(jù)的預(yù)處理,提出了一種對(duì)軟件可靠性數(shù)據(jù)處理的新方法,,解決了可靠性數(shù)據(jù)采集過(guò)程中出現(xiàn)波動(dòng)性大的缺陷,,而且算法簡(jiǎn)單、穩(wěn)健性好,可以適用于各種工程應(yīng)用,。但其中還有很多問(wèn)題值得進(jìn)一步研究,,例如,如何實(shí)現(xiàn)新算法中Q(t)系數(shù)的自適應(yīng)等,。
參考文獻(xiàn)
[1]  孫志安, 裴曉黎. 軟件可靠性工程[M]. 北京:北京航空航天大學(xué)出版社, 2009.
[2]  徐仁佐. 軟件可靠性工程 [M]. 北京:北京清華大學(xué)出版社,2007.
[3]  LYU M R. 軟件可靠性工程手冊(cè) [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]  蔡開(kāi)元. 軟件可靠性工程基礎(chǔ) [M]. 北京:北京清華大學(xué)出版社,1995.

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