系統架構師學習筆記_第十三章(上)_連載

來源:互聯網
上載者:User

第十三章  系統的可靠性

13.1  軟體可靠性

目前,硬體可靠性測試技術和評估手段日趨成熟,已經得到了業界的認可。

軟體可靠性模型的研究多集中在 開發階段、測試階段、評估階段 的可靠性模型。

13.1.2  軟體可靠性的定義

可靠性(Reliability)是指產品在 規定的條件下 和 規定的時間內 完成規定功能 的 能力。

按照產品可靠性的形成,分為 固有可靠性、使用可靠性。

固有可靠性是通過 設計、製造 賦予產品的 可靠性。

使用可靠性 既受設計、製造 的 影響,又受使用條件的影響。

軟體與硬體 從可靠性角度來看,主要有4個不同點:

1、複雜性,軟體內部的邏輯高度複雜,硬體則相對簡單。

2、物理退化,一個正確的軟體任何時刻均可靠,一個正確的硬體、元器件、系統 則可能在某個時刻失效。

3、唯一性,軟體是唯一的,軟體複製不改變軟體本身,硬體不可能完全相同,機率方法在硬體可靠性領域取得巨大成功。

4、版本更新快,軟體版本更新較快,也給軟體可靠性評估帶來較大的難度。

1983年,美國IEEE 對“軟體可靠性”做出了更明確的定義。

1989年,我國國家標準 GB/T-11457也採用了這個定義。

定義:在規定的條件下,在規定的時間內,軟體不引起系統失效的機率。

依然沿用了“產品可靠性”的定義。

1、規定的時間

由於軟體啟動並執行環境與程式路徑選取的隨機性,軟體的失效為隨機事件,所以已耗用時間屬於隨機變數。

2、規定的條件

不同的環境條件下的可靠性是不同的,電腦的配置情況、對輸入的要求。

有了明確規定的環境條件,還可以有效地判斷軟體失效的責任在使用者方還是開發放。

3、所要求的功能

軟體可靠性還與規定的任務和功能有關。

要準確度量軟體系統的可靠性,必須先明確它的任務和功能。

4、“軟體可靠性”定義具有如下特點:

1. 用內在的“缺陷” 和 外在的“失效”關係來描述可靠性。

2. 定義使人們對軟體可靠性進行量化評估成為可能。

3. 用機率的方法描述可靠性是比較科學的。

13.1.3  軟體可靠性的定量描述

軟體的可靠性可以基於 使用條件、規定時間、系統輸入、系統使用、軟體缺陷 等變數構建的數學運算式。

1、規定時間:自然時間、已耗用時間、執行時間。

使用執行時間來度量軟體的可靠性最為準確。

2、失效率:把軟體從運行開始,到某一時刻t 為止,出現失效的機率用 F(t)表示。

F(0)=0,即軟體運行初始時刻失效機率為0。

F(t)在時間域(0,+無窮大)上是單調遞增的。

F(+無窮大)=1,即失效機率在已耗用時間不斷增長時 趨向於1,這也意味著任何軟體都存在缺陷。

3、可靠度:在規定的條件下,規定的時間內 不發生失效的機率。

公式略。

4、失效強度(Failure Intensity)單位時間 軟體系統出現失效的機率。

公式略。

5、失效率(Failure Rate)又稱 風險函數(Hazard Function),也可以稱為條件失效強度。

就是當軟體在 0~t 時刻內 沒有發生失效的條件下,t時刻 軟體系統的失效強度。

公式略。

6、可靠度 與 失效率 之間的換算。

略。

7、平均失效時間(Mean Time to Failure,MTTF)就是軟體運行後,到下一次出現失效的平均時間。更直觀地表明一個軟體的可靠度。

公式略。

需要對 軟體可靠度 這個反映軟體可靠性的肚量指標作下列補充說明:

1. 需指明它與其他軟體的界限。

2. 軟體失效必須明確定義。

3. 必須假設硬體無故障(失效)和軟體有關變數輸入正確。

5. 必須指明時間基準:自然時間(日曆時間)、已耗用時間、執行時間(CPU 時間)、其他時間基準。

6. 通常以機率度量,也可以模糊數學中的可能性加以度量。

7. 在時間域上進行,是一種動態度量,也可以是在資料域上,表示成功執行一個回合的機率。

軟體回合是軟體運行最小的、不可分的執行單位。

8. 有時將軟體運行環境簡單地理解為軟體運行剖面(Operational Profile)。

運行剖面定義了關於軟體可靠性描述中的“規定條件”,測試環境、測試資料 等一系列問題。

13.1.4  可靠性目標

使用 失效強度 表示軟體缺陷對軟體啟動並執行影響程度。

不僅取決於軟體失效發生的機率,還和軟體失效的嚴重程度有很大關係。引出另外一個概念——失效嚴重程度類(Failure Severity Class)。

失效嚴重程度類 就是對使用者具有相同程度影響的失效集合。

對失效嚴重程度的分級 可以按照不同的標準進行,對成本影響、對系統能力的影響 等。

對成本的影響 可能包括失效引起的 額外運行成本、修複和恢複成本、現有潛在的業務機會的損失 等。

對系統能力的影響 常常表現為 關鍵資料的損失、系統異常退出、系統崩潰、導致使用者操作無效 等。

可靠性目標 是指客戶對軟體效能滿意程度的期望。通常用 可靠度、故障強度、平均失效時間(MTTF)等指標來描述。

建立定量的可靠性指標 需要對 可靠性、交付時間、成本 進行平衡。

13.1.5  可靠性測試的意義

1、軟體失效可能造成災難性的後果。

2、軟體的失效在整個電腦系統失效中的比例較高。

80%和軟體有關。

結構太複雜了,一個較簡單的程式,其所有路徑數量可能是一個天文數字。

3、相比硬體可靠性技術,軟體可靠性技術很不成熟。

4、軟體可靠性問題是造成費用增長的主要原因之一。

5、系統對於軟體的依賴性越來越強。

13.1.6  廣義的可靠性測試與俠義的可靠性測試

廣義的軟體可靠性測試 是指 為了最終評價軟體系統的可靠性而運用 建模、統計、實驗、分析、和評價 等一系列手段對軟體系統實施的一種測試。

俠義的軟體可靠性測試 是指 為了擷取可靠性資料,按預先確定的測試案例,在軟體的預期使用環境中,對軟體實施的一種測試。

也叫“軟體可靠性實驗(Software Reliability Test)”,它是面向缺陷的測試,以使用者將要使用的方式來測試軟體,所獲得的測試資料與軟體的實際運行資料比較接近。

可靠性測試是對軟體產品的可靠性 進行調查、分析、評價 的一種手段。

對檢測出來的 失效的分布、原因、後果 進行分析,並給出糾正建議。

總的來說,可靠性測試的目的可歸納為以下三個方面:

1、發現軟體系統在 需求、設計、編碼、測試、實施 等方面的 各種缺陷。

2、為軟體的 使用、維護 提供可靠性資料。

3、確認軟體是否達到可靠性的定量要求。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.