天天看點

系統的可靠性分析與設計

可靠性分析

sfta(software fault  tree analysis) 軟體故障樹分析。

軟體故障樹分析(sfta)是一種自頂向下的軟體可靠性分析方法,即從軟體系統不希望發生的事件(頂事件),特别是對人員和裝置的安全及可靠性産生重大影響的事件開始,向下逐漸追查導緻頂事件發生的原因,直至基本事件(底事件),進而确定軟體故障原因的各種可能組合方式和(或)發生機率。 

割集:它是導緻頂上事件發生的基本事件的集合。最小割集就是引起頂上事件發生必須的最低限度的割集。

布爾代數法求計算機軟體求取最小割集和最小徑集。

故障樹:

系統的可靠性分析與設計

t=a1+a2

    =x1 x2 a3+x4 a4

     =x1 x2 (x1+x3)+ x4 (x5+x6)

     =x1 x2 a1+x1 x2 a3+ x4 x5+x4 x6

     =x1 x2+ x4 x5+x4 x6

    是以最小割集為{x1,x2},{x4,x5},{x4,x6}。結果得到三個交集的并集,這三個交集就是三個最小割集e1={x1,x2},e2={x4,x5},e3={x4,x6}。用最小割集表示故障樹的等效圖如圖:

系統的可靠性分析與設計

可靠性設計

容錯設計技術:常用的軟體容錯技術主要有恢複快設計,n版本程式設計和備援設計。

1. 恢複快設計中包含有若幹功能相同、設計差異的程式塊,每一時刻有一個處于運作狀态,一旦某程式出現故障,則用備份程式塊予以替換。

•恢複塊法适合隻有一台計算機的情況;

•允許隻對較為複雜、容易出故障的程式段進行備援;

•基本塊與替換塊的設計應盡可能相異;

•接收測試的作用非常重要,應能檢測程式執行結果與預期結果的偏離,或檢測和防止能觸發安全事故的輸出

2. n版本設計的核心是通過設計出多個子產品或不同版本,對于相同初始條件和相同輸入的操作結果進行多數表決(防止因其中某一軟體子產品/版本的故障而提供了錯誤的服務,以實作軟體容錯)。

3. 備援設計的思路來源于硬體系統,但有所不同。軟體備援設計技術是采用多種不同路徑,不同算法或不同實作方法的子產品或系統作為備份,在出現故障時進行替換,維持系統的正常運作。

檢錯技術:在無須線上容錯或不能采用備援設計技術的部分,但又有較高可靠性需要時,一般采用檢測性設計,在軟體出現故障後能及時發現并報警,明顯的缺點是不能自動解決故障。

•被動式錯誤檢測

–在程式的若幹部位設定檢測點,等待錯誤征兆的出現  

看門狗的設計:看門狗技術是控制運作時間的一種有效方法。看門狗實際上是一種計時裝置,當計時啟動後看門狗在累計時間,當累計時間到了規定值時觸發到時中斷(即狗叫)。

•主動式錯誤檢測

–對程式狀态主動進行檢查

避錯設計(降低複雜度設計): 軟體的複雜性與軟體可靠性有密切關系,軟體複雜性是産生軟體缺陷的重要根源。降低複雜度設計的思想就是在保證實作軟體功能的基礎上,簡化軟體結構。

繼續閱讀