- 相關(guān)推薦
談軟件可靠性工程的應用
摘要:本文就武器裝備軟件開(kāi)發(fā)的現狀和中存在的問(wèn)題,介紹了軟件可靠性工程的發(fā)展及其研究的內容,對軟件可靠性工程如何在軟件開(kāi)發(fā)中應用進(jìn)行了重點(diǎn)說(shuō)明,并提供了成功應用軟件可靠性工程的典型案例,指出軟件可靠性工程研究的必要性。關(guān)鍵詞: 軟件 可靠性工程
隨著(zhù)科學(xué)技術(shù)的不斷進(jìn)步,計算機技術(shù)被越來(lái)越多地應用到武器系統中。計算機軟件的復雜程度隨著(zhù)功能的增強,因而系統的可靠性也越來(lái)越與軟件直接相關(guān)。例如AFTI/F-16飛機首航因軟件問(wèn)題推遲一年,事先設計的先進(jìn)程序無(wú)法使用;海灣戰爭中F/A–18飛機飛行控制系統計算機500次故障中,軟件故障次數超過(guò)硬件。軟件可靠性成為我們關(guān)注的一個(gè)問(wèn)題,本文僅就軟件可靠性工程在軟件開(kāi)發(fā)過(guò)程中的應用談?wù)勛约旱恼J識。
1、軟件可靠性工程的基本概念及發(fā)展
1.1什么是軟件可靠性工程
軟件可靠性工程簡(jiǎn)單地說(shuō)就是對基于軟件產(chǎn)品的可靠性進(jìn)行預測、建模、估計、度量及管理,軟件可靠性工程貫穿于軟件開(kāi)發(fā)的整個(gè)過(guò)程。
1.2軟件可靠性工程的發(fā)展歷程
軟件可靠性問(wèn)題獲得重視是二十世紀60年代末期,那時(shí)軟件危機被廣泛討論,軟件不可靠是造成軟件危機的重要原因之一。1972年正式提出Jelinski—Moranda模型,標志著(zhù)軟件可靠性系統研究的開(kāi)始。在70年代.軟件可靠性的理論研究獲得很大發(fā)展,一方面提出了數十種軟件可靠性模型,另一方面是軟件容錯的研究。在80年代,軟件可靠性從研究階段逐漸邁向工程化。進(jìn)入90年代后,軟件可靠性逐漸成為軟件開(kāi)發(fā)考慮的主要因素之一,軟件可靠性工程在軟件工程領(lǐng)域逐漸取得相對獨立的地位,成為一個(gè)生機勃勃的分支。
1.3軟件可靠性工程研究的基本問(wèn)題
軟件可靠性工程的主要目標是保證和提高軟件可靠性。為達到這一目標,首先要弄清軟件為什么會(huì )出現故障或失效。只有這樣,才有可能在軟件開(kāi)發(fā)過(guò)程中減少導致軟件故障或失效的隱患,且一旦出現軟件故障或失效,有可能采取有效措施加以清除。但是軟件是開(kāi)發(fā)出來(lái)的,滿(mǎn)足可靠性要求的軟件也是開(kāi)發(fā)出來(lái)的,因此,軟件可靠性工程的核心問(wèn)題是如何開(kāi)發(fā)可靠的軟件。而有了軟件,又該如何檢驗其是否滿(mǎn)足可靠性要求?這是軟件可靠性工程的又一個(gè)問(wèn)題。
2、軟件可靠性工程在軟件開(kāi)發(fā)中的應用
2.1項目開(kāi)發(fā)計劃及需求分析階段
在項目開(kāi)發(fā)計劃階段需根據產(chǎn)品具體要求作出軟件項目開(kāi)發(fā)計劃,明確項目的目的、條件、運行環(huán)境、軟件產(chǎn)品要求、人員分工和職責及進(jìn)度,并估計產(chǎn)品的可靠性。需求分析階段要根據項目開(kāi)發(fā)計劃階段確定軟件開(kāi)發(fā)的主要任務(wù)、次要任務(wù)和其它任務(wù),并設計軟件程序的基本流程、軟件結構、模塊的定義和輸入輸出數據、接口和數據結構等同時(shí)應對項目開(kāi)發(fā)計劃階段作出的可靠性預計進(jìn)一步細化形成可靠性需求,建立具體的可靠性指標。這個(gè)階段的可靠性工作一般應如下安排:
⑴確定功能概圖
所謂功能概圖就是產(chǎn)品的各種功能及其在不同環(huán)境條件下使用的概率。為確立功能概圖必須定義產(chǎn)品的功能,功能定義不但包括要完成的任務(wù),還包括影響處理的環(huán)境因素。
⑵對失效進(jìn)行定義和分類(lèi)
這里應從用戶(hù)的角度來(lái)定義產(chǎn)品失效,將軟件和硬件失效及操作程序上的失效區分開(kāi),并將其按嚴重程度進(jìn)行分類(lèi)。
⑶確定用戶(hù)的可靠性要求
在這個(gè)階段應由系統設計師、軟件設計師、可靠性師、測試人員及用戶(hù)方代表可靠性評估小組共同根據用戶(hù)提出的系統可靠性來(lái)確定軟件的可靠性。
⑷進(jìn)行平衡關(guān)系研究
通常應考慮可靠性和功能之間的關(guān)系以及可靠性、開(kāi)發(fā)費用和開(kāi)發(fā)周期之間的關(guān)系。一般來(lái)說(shuō),增加功能會(huì )導致可靠性降低,可靠性提高的程度一般與測試加強程度相對應,這意味著(zhù)時(shí)間和費用的增加。
⑸建立可靠性指標
在這個(gè)階段應對每種失效分別建立可靠性指標。通常,首先建立系統可靠性指標,然后在硬件和軟件間分配。影響建立可靠性指標的因素主要有:合同或有關(guān)標準中明確規定的可靠性指標,相似產(chǎn)品的可靠性指標,產(chǎn)品的質(zhì)量保證,使用已有模塊的可靠性,技術(shù)能力和局限(如容錯技術(shù)的使用)等。
2.2軟件設計和功能實(shí)現階段
軟件設計是對上一階段定義的每一個(gè)功能模塊逐步細化,確立系統體系結構,形成若干可編程的模塊。說(shuō)明硬件和軟件模塊之間的接口及它們與外部環(huán)境的接口,詳細描述各模塊的輸入、處理過(guò)程及輸出。功能實(shí)現是根據設計方案進(jìn)行軟件編程。該階段主要應做:
⑴在模塊間分配可靠性指標
定義系統體系結構時(shí),應將系統分解成模塊同時(shí)保證總體可靠性指標。進(jìn)行系統分解是應考慮以下因素:系統的物理特性、以前收集的數據的特性及收集數據需要的工作量等。確定每個(gè)模塊的可靠性要求時(shí),首先進(jìn)行可靠性分配,然后根據試分配值計算系統的可靠性。這樣及時(shí)調整,使各模塊開(kāi)發(fā)周期、難度和風(fēng)險大致相當,系統的開(kāi)發(fā)費用也才能降至最低。
⑵按可靠性指標進(jìn)行設計
目前,可靠性設計有以下幾種方法:設計恢復策略、使用冗余軟件單元、鑒別高風(fēng)險區域。設計恢復策略是指軟件只須重新啟動(dòng)即可消除失效的設計,設計恢復應能保存修復可能破壞的數據,應具備確定失效發(fā)生時(shí)間和阻止繼續運行的機制,以減少程序數據的破壞。使用冗余軟件單元時(shí)是采用與原軟件單元不同的冗余軟件單元來(lái)提高可靠性。鑒別高風(fēng)險區域采用FMEA(失效類(lèi)型與后果分析)和FTA(錯誤樹(shù)分析)的方法來(lái)進(jìn)行可靠性分析。
⑶根據功能概圖集中資源配置
根據功能概圖把人力、物力等資源用到用戶(hù)認為最重要的地方。
⑷控制錯誤的引入和傳播
錯誤是引起軟件失效的根本原因,所以控制每個(gè)開(kāi)發(fā)步驟中引入的錯誤數目及未被察覺(jué)的而傳入下一步的錯誤數目,對于控制產(chǎn)品的可靠性是非常重要的。錯誤控制受多種因素影響,其中主要有:
a.構造模塊化系統;
b.進(jìn)行軟件重用;
c.進(jìn)行單元和集成測試,阻止錯誤向下一開(kāi)發(fā)步驟傳播;
d.進(jìn)行檢查和復核;
e.控制改動(dòng)。
⑸度量現成軟件的可靠性
如果在產(chǎn)品中使用現成的未在本產(chǎn)品中開(kāi)發(fā)或測試過(guò)的軟件,必須對其進(jìn)行可靠性證明,證明其可靠性指標在可以接受的范圍內方可采用。2.3系統測試和現場(chǎng)試運行階段
系統測試和現場(chǎng)運行以確認產(chǎn)品的軟件要求是否得到滿(mǎn)足,用戶(hù)是否可以實(shí)際應用。系統測試階段是開(kāi)發(fā)過(guò)程階段的最后階段,如果措施得當,可以在產(chǎn)品首次使用前進(jìn)一步提高可靠性,F場(chǎng)試運行階段在用戶(hù)環(huán)境中驗證產(chǎn)品的各種說(shuō)明及系統測試所得的可靠性指標。這個(gè)階段的工作有以下工作:
⑴確定操作概圖
操作概圖是指實(shí)現系統功能的操作及其概率的集合,一個(gè)操作可以是特定環(huán)境下執行的一條命令,或同時(shí)附有限定范圍內的參數或輸入變量集。確定操作概圖是測試計劃的一個(gè)重要部分,一般在系統測試階段之前由測試計劃人員,在系統設計師和軟件設計人員的協(xié)助下完成。
⑵進(jìn)行可靠性增強測試
在系統測試階段需進(jìn)行可靠性增強測試。在可靠性增強測試中,系統測試員根據操作概圖描述各種操作的現場(chǎng)發(fā)生概率,按比例的執行測試用例,通過(guò)模仿
【談軟件可靠性工程的應用】相關(guān)文章:
淺談軟件可靠性工程的應用論文(精選6篇)01-05
談三維制作軟件在園林設計中的應用03-10
談ADSL技術(shù)及其應用12-04
談期權理論的現實(shí)應用03-28
淺析PGP軟件及其應用03-20
談軟件測試的幾個(gè)問(wèn)題03-19
談門(mén)禁系統在地鐵中的應用03-20