2023年美國ieee計算機學會對「軟體可靠性」作出了明確定義,此後該定義被美國標準化研究所接受為國家標準,2023年我國也接受該定義為國家標準。
該定義包括兩方面的含義:
(1)在規定的條件下,在規定的時間內,軟體不引起系統失效的概率;
(2)在規定的時間週期內,在所述條件下程式執行所要求的功能的能力;
其中的概率是系統輸入和系統使用的函式,也是軟體中存在的故障的函式,系統輸入將確定是否會遇到已存在的故障(如果故障存在的話)。
軟體可靠性是關於軟體能夠夠滿足需求功能的性質,軟體不能滿足需求是因為軟體中的差錯引起了軟體故障。軟體中有哪些可能的差錯呢?
軟體差錯是軟體開發各階段潛入的人為錯誤:
1.需求分析定義錯誤。如使用者提出的需求不完整,使用者需求的變更未及時消化,軟體開發者和使用者對需求的理解不同等等。
2.設計錯誤。如處理的結構和演算法錯誤,缺乏對特殊情況和錯誤處理的考慮等。
3.編碼錯誤。如語法錯誤,變數初始化錯誤等。
4.測試錯誤。如資料準備錯誤,測試用例錯誤等。
從上游到下游,錯誤的影響是發散的,所以要盡量把錯誤消除在開發前期階段。
錯誤引入軟體的方式可歸納為兩種特性:程式**特性,開發過程特性。
程式**乙個最直觀的特性是長度,另外還有演算法和語句結構等,程式**越長,結構越複雜,其可靠性越難保證。
開發過程特性包括採用的工程技術和使用的工具,也包括開發者個人的業務經歷水平等。
除了軟體可靠性外,影響可靠性的另乙個重要因素是健壯性,對非法輸入的容錯能力。
所以提高可靠性從原理上看就是要減少錯誤和提高健壯性。
軟體可靠性與硬體可靠性之間主要存在以下區別: 1)惟一性、2)物理退化、3)邏輯複雜、4)版本更新
1.最明顯的是硬體有老化損耗現象,硬體失效是物理故障,是器件物理變化的必然結果,有浴盆曲線現象;軟體不發生變化,沒有磨損現象,有陳舊落後的問題,沒有浴盆曲線現象。
2.硬體可靠性的決定因素是時間,受設計、生產、運用的所有過程影響,軟體可靠性的決定因素是與輸入資料有關的軟體差錯,是輸入資料和程式內部狀態的函式,更多地決定於人。
3.硬體的糾錯維護可通過修復或更換失效的系統重新恢復功能,軟體只有通過重設計。
4.對硬體可採用預防性維護技術預防故障,採用斷開失效部件的辦法診斷故障,而軟體則不能採用這些技術。
5.事先估計可靠性測試和可靠性的逐步增長等技術對軟體和硬體有不同的意義。
6.為提高硬體可靠性可採用冗餘技術,而同一軟體的冗餘不能提高可靠性。
7.硬體可靠性檢驗方法已建立,並已標準化且有一整套完整的理論,而軟體可靠性驗證方法仍未建立,更沒有完整的理論體系。
8.硬體可靠性已有成熟的產品市場,而軟體產品市場還很新。
9.軟體錯誤是永恆的,可重現的,而一些瞬間的硬體錯誤可能會被誤認為是軟體錯誤。
總的說來,軟體可靠性比硬體可靠性更難保證,即使是美國宇航局的軟體系統,其可靠性仍比硬體可靠性低乙個數量級。
軟體可靠性的基本指標是「在規定的條件下,在規定的時間內,軟體不引起系統失效的概率」,這通常也被稱為 可靠度
軟體可靠性測試
軟體可靠性測試的目的 軟體可靠性測試的主要目的有 1 通過在有使用代表性的環境中執行軟體,以證實軟體需求是否正確實現。2 為進行軟體可靠性估計採集準確的資料。估計軟體可靠性一般可分為四個步驟,即數 據採集 模型選擇 模型擬合以及軟體可靠性評估。可以認為,資料採集是整個軟體可靠性 估計工作的基礎,資料...
如何提高軟體可靠性
一 軟體可靠性定義 長期執行的穩定性 魯棒性 輸出資料的正確性 異常情況的可記錄性 二 影響軟體可靠性的因素 1 需求分析定義錯誤 由於分析失誤,從開始就走上了錯誤的路線,向著錯誤的目標前進,以後實現中的錯誤在所難免。2 設計質量 設計水平的高低與設計者的水平有著直接的聯絡,但可以通過人文方法提高設...
如何提高軟體可靠性
一 軟體可靠性定義 長期執行的穩定性 魯棒性 輸出資料的正確性 異常情況的可記錄性 二 影響軟體可靠性的因素 1 需求分析定義錯誤 由於分析失誤,從開始就走上了錯誤的路線,向著錯誤的目標前進,以後實現中的錯誤在所難免。2 設計質量 設計水平的高低與設計者的水平有著直接的聯絡,但可以通過人文方法提高設...