引言
可靠性的定義是零件、部件、產(chǎn)品或系統(tǒng)在指定的時間內(nèi)、指定的環(huán)境中,并在特定的條件下無失效執(zhí)行其預(yù)定功能的概率。為了更好地理解這個定義,需要區(qū)分失效和故障兩個概念。
失效(Failure)是指系統(tǒng)或組件在規(guī)定條件下無法完成預(yù)定功能的事件。通常失效是由于發(fā)生了故障,從而無法繼續(xù)為用戶服務(wù)而導(dǎo)致的;故障(Fault)是指系統(tǒng)中的缺陷,能夠引發(fā)一次或多次失效。
本文主要闡述軟件可靠性和硬件可靠性的不同特點(diǎn),給出硬件可靠性和軟件可靠性的概述及一些研究和建模的方法。
1 軟件可靠性和硬件可靠性的比較
1.1 軟件可靠性和硬件可靠性的區(qū)別
軟件和硬件本質(zhì)上的不同決定了它們具有不同的失效機(jī)制。硬件是一種物質(zhì)產(chǎn)品,主要的失效原因是材料的老化;而軟件是一種邏輯產(chǎn)品,失效的根本原因是設(shè)計(jì)錯誤,而設(shè)計(jì)錯誤又是與人為因素和設(shè)計(jì)過程密切相關(guān)的,因此難以從直觀上分類、檢測和糾正。正因?yàn)檫@樣,軟件可靠性相對來說更加難以預(yù)測。表1所列是與可靠性相關(guān)的硬件和軟件屬性的比較。
1.2 軟件可靠性和硬件可靠性的相關(guān)性
軟件和硬件產(chǎn)品的生產(chǎn)在很多方面是相似的,在整個設(shè)計(jì)和開發(fā)的過程中可以使用同樣的管理方法。其次,當(dāng)軟件和硬件是統(tǒng)一系統(tǒng)的不同組成部分時,它們的失效問題不能割裂開來考慮,因?yàn)樗鼈冎g存在著顯著的相互作用。在這樣的系統(tǒng)中,硬件子系統(tǒng)和軟件子系統(tǒng)并不是完全相互獨(dú)立的。此外,任何軟件產(chǎn)品都需要在硬件平臺上運(yùn)行,而任何硬件產(chǎn)品的生產(chǎn)都包括軟件的因素,如產(chǎn)品設(shè)計(jì)、自動控制程序等。從這個層面上來說,不存在絕對的軟件或絕對的硬件。隨著硬件和軟件相互涉及程度的不斷加深,區(qū)分硬件失效和軟件失效也變得越來越困難。
|
表1硬件可靠性和軟件可靠性屬性比較 |
||
|
特征 |
硬件 |
軟件 |
|
失效原因 |
物理原因(如失真、斷裂、腐蝕、漂移) |
主要為設(shè)計(jì)缺陷 |
|
磨損 |
會受到磨損 |
無磨損 |
|
時間相關(guān)性 |
失效率為常數(shù) |
失效率隨時間單調(diào)下降 |
|
環(huán)境因素 |
振動、沖擊和溫度影響可靠性 |
可靠性基本不受影響 |
|
可靠性預(yù)測 |
受物理規(guī)律制約,相對容易 |
無法由物理知識預(yù)測 |
|
冗余 |
故障處理的一般手段 |
無法改進(jìn)可靠,性 |
|
以標(biāo)準(zhǔn)部件構(gòu)造 |
有助提高可靠性 |
無標(biāo)準(zhǔn)部件 |
2 硬件可靠性
2.1 失效率曲線
討論可靠性時,一個典型的概念是失效率曲線(浴盆曲線)。如圖1所示,按硬件失效的發(fā)生時間,硬件失效率曲線可分為三個不同階段:早期、穩(wěn)定期和損耗期。每一時期可能發(fā)生的失效分別是質(zhì)量失效、隨機(jī)失效和損耗失效。
生命周期早期的失效是與過程有關(guān)的,比如在設(shè)備的生產(chǎn)過程中形成的一個潛在的缺陷在工作壓力下會逐漸暴露出來。而隨著時間的推移,存在生產(chǎn)缺陷的設(shè)備將先后失效。將這些設(shè)備移除或修復(fù)后,失效率會逐漸降低。
當(dāng)存在潛在缺陷的設(shè)備失效并全部被移除后,再發(fā)生的失效就是隨機(jī)失效。在這一階段,剩余的高品質(zhì)設(shè)備將穩(wěn)定工作,這時發(fā)生的失效通??蓺w結(jié)為由于偶爾的壓力過大(如電源浪涌、軟件錯誤)而隨機(jī)發(fā)生的,失效率趨于常數(shù)。
損耗失效是在工藝限制下的固有過程,它是由設(shè)備磨損、腐蝕等引起的老化而導(dǎo)致的。一般來說,這一時期的故障率是上升的。
2.2 常用分布
在可靠性分析中,通常需要對失效概率密度函數(shù)作出假設(shè),有了這些假設(shè)就可以借助傳統(tǒng)的統(tǒng)計(jì)方法來預(yù)測系統(tǒng)的行為。
具有穩(wěn)定失效率的指數(shù)形式失效概率分布是可靠性研究中應(yīng)用最廣泛的分布形式。它假定位于早期之后、損耗期之前的中間階段失效率一直保持常數(shù),尤其適用于電子元件和概率模型。
指數(shù)分布的概率密度函數(shù)可由下式給出:
p(t)=λe-λtt>0 (2)
將式(2)在時間區(qū)間[0,t]內(nèi)積分即可得出P(t),再應(yīng)用可靠度的定義R(t)=1-P(t)得到可靠度為:
R(t)=e-λt (3)
呈指數(shù)式分布的失效具有危害函數(shù)(hazardfunction)是:
將MTBF的定義應(yīng)用到式(3)所示的指數(shù)分布中,則可得到下式:
其中,t即是平均失效間隔時間(MTBF)。
若是已知R(t)求解t,可將式(5)變形為如下形式:
另一種廣泛使用的硬件可靠性分布是威布爾分布:
式(7)中由于引入了參數(shù)α,而威布爾分布的危害函數(shù)可以為常數(shù)、增函數(shù)或減函數(shù),而且具有很好的靈活性,因而非常適用于機(jī)電類產(chǎn)品的磨損累計(jì)失效形式。
一般地,當(dāng)α=1時p(t)是常數(shù);當(dāng)a>1時,h(t)單調(diào)增加;當(dāng)α<1時,從p(t)單調(diào)遞減。這樣就可以全面分析系統(tǒng)三個階段的失效情況。威布爾分布的概率密度函數(shù)是:
p(t)=αλ(λt)α-1e-(λt)α,>0 (8)
式(8)中,λ稱為形狀參數(shù)。當(dāng)α=l時,威布爾分布即指數(shù)分布。威布爾分布的可靠度為:
R(t)=e-(λt)α (9)
3 軟件可靠性
3.1 失效率曲線
將軟件可靠性的特點(diǎn)也可通過坐標(biāo)曲線來表示,從而得到圖2所示的失效率曲線。
圖2 典型的軟件失效率曲線甘
由圖2可看出,軟件可靠性具有與硬件可靠性不同的特點(diǎn),主要區(qū)別有二:一是在軟件生命周期的中間段,每次升級軟件后失效率會有所增加,隨后又逐漸降低并趨于平穩(wěn),原因是潛在的問題不斷地被發(fā)現(xiàn)和修復(fù)。第二個區(qū)別是在生命周期的最后一段中,失效率并不表現(xiàn)出像硬件失效率那樣明顯的增長,原因是這一時期軟件正接近報(bào)廢,不會再對其進(jìn)行升級或更新,因此失效率也不會改變。
3.2 軟件可靠性模型
作為一種重要的測量方法,建模能夠幫助我們在設(shè)計(jì)、編碼和測試的過程中發(fā)現(xiàn)和修正故障,以及描述已交付產(chǎn)品中殘留故障可能造成的影響,從而減少錯誤,降低影響。一個良好的軟件可靠性模型不但應(yīng)能夠準(zhǔn)確地預(yù)測未來的失效行為和計(jì)算其相關(guān)的數(shù)據(jù),而且應(yīng)該以合理的假設(shè)為基礎(chǔ),并具有廣泛的適用性。通過可靠性模型可以估計(jì)或預(yù)測可靠性,無論是軟件可靠性,還是硬件可靠性,建模技術(shù)都是基于觀察和積累失效數(shù)據(jù)并用統(tǒng)計(jì)推理方法對其進(jìn)行分析。兩者主要的區(qū)別在于前者使用從當(dāng)前軟件開發(fā)過程中獲得的數(shù)據(jù)來計(jì)算過去和當(dāng)前的可靠性,主要用在軟件生命周期的較后階段;而后者使用歷史數(shù)據(jù)來提供對將來可靠性的預(yù)測,因此常用于開發(fā)或測試階段。
軟件可靠性模型指明了失效過程與一些主要失效因素之間的依賴性關(guān)系,如故障的引入,故障排除以及運(yùn)行環(huán)境等,這些因素在建模時必須加以考慮。實(shí)際應(yīng)用中一般的建模過程是:首先確定軟件應(yīng)用(軟件產(chǎn)品)中所有與可靠性評估或預(yù)測有關(guān)的部分并指明可靠性規(guī)范,然后確定項(xiàng)目中錯誤、故障和失效的具體定義,選擇能夠反映系統(tǒng)實(shí)際使用方法的測試案例,最后選擇一個可靠性模型來應(yīng)用。收集的數(shù)據(jù)量應(yīng)能足以確定軟件是否能達(dá)到預(yù)定的可靠性目標(biāo),并選定一種參數(shù)估計(jì)方法。一旦完成數(shù)據(jù)收集和模型參數(shù)估計(jì),分析人員就能夠依此進(jìn)行合理的分析。
3.3 模型的分類
自1972年第一個軟件可靠性模型發(fā)表以來,過去的數(shù)十年中共出現(xiàn)了兩百多種模型,人們試圖借助它們來探究軟件失效的原因和過程,由此來量化軟件的可靠性,但這個問題在很大程度上仍然未能解決。對于復(fù)雜的軟件,沒有一種模型能獲得滿意的效果,量化的過程中不得不加以約束條件和假設(shè)。因此,沒有一種模型能夠適用于所有的情況,也沒有一種模型是完善的,或是有代表性的。
大多數(shù)軟件模型包括這幾部分:假設(shè)、因素,以及一個能將可靠性和因素聯(lián)系起來的數(shù)學(xué)函數(shù),通常是高階指數(shù)或?qū)?shù)函數(shù)。根據(jù)參考文獻(xiàn)中提出的分類方法,軟件可靠性模型大致可分為有限失效模型和無限失效模型兩類。若假定有限時間內(nèi)的失效次數(shù)是有限次,也就是軟件中的故障最后能被全部清除,則這類模型稱為有限失效模型。Jelinski-Moranda模型㈤是一個早期的有限失效模型,它的失效數(shù)量在時間上呈二次分布。Schneidewind模型&和Musa模型E是具有泊松分布的有限失效模型。反之,若假定軟件無法達(dá)到無故障狀態(tài),則這類模型稱為無限失效模型。Musa-Okumoto模型和Little-Verrall模型団是這類模型的典型例子。
4 結(jié)語
現(xiàn)代科技水平不斷提高使得各種設(shè)備和產(chǎn)品朝著高性能、高復(fù)雜度的方向發(fā)展,而可靠性往往隨著復(fù)雜度的提高而降低,因此可靠性研究的意義是非常重大的。在可靠性研究中,硬件可靠性技術(shù)相對成熟,而軟件可靠性正獲得越來越多的關(guān)注。
20210831_612da72182fe1__軟件可靠性與硬件可靠性分析及對比