試論軟件的可靠性及其保證

發表于:2015-08-25來源:uml.org.cn作者:不詳點擊數: 標簽:可靠性測試
用軟件系統規模越做越大越復雜,其可靠性越來越難保證。應用本身對系統運行的可靠性要求越來越高,在一些關鍵的應用領域,如航空、航天等,其可靠性要求尤為重要,在銀行等

  用軟件系統規模越做越大越復雜,其可靠性越來越難保證。應用本身對系統運行的可靠性要求越來越高,在一些關鍵的應用領域,如航空、航天等,其可靠性要求尤為重要,在銀行等服務性行業,其軟件系統的可靠性也直接關系到自身的聲譽和生存發展競爭能力。

  特別是軟件可靠性比硬件可靠性更難保證,會嚴重影響整個系統的可靠性。在許多項目開發過程中,對可靠性沒有提出明確的要求,開發商(部門)也不在可靠性方面花更多的精力,往往只注重速度、結果的正確性和用戶界面的友好性等,而忽略了可靠性。在投入使用后才發現大量可靠性問題,增加了維護困難和工作量,嚴重時只有束之高閣,無法投入實際使用。

  一. 軟件可靠性與硬件可靠性的區別

  軟件可靠性與硬件可靠性之間主要存在以下區別:

  1.最明顯的是硬件有老化損耗現象,硬件失效是物理故障,是器件物理變化的必然結果,有浴盆曲線現象;軟件不發生變化,沒有磨損現象,有陳舊落后的問題,沒有浴盆曲線現象。

  2.硬件可靠性的決定因素是時間,受設計、生產、運用的所有過程影響,軟件可靠性的決定因素是與輸入數據有關的軟件差錯,是輸入數據和程序內部狀態的函數,更多地決定于人。

  3.硬件的糾錯維護可通過修復或更換失效的系統重新恢復功能,軟件只有通過重設計。

  4.對硬件可采用預防性維護技術預防故障,采用斷開失效部件的辦法診斷故障,而軟件則不能采用這些技術。

  5.事先估計可靠性測試和可靠性的逐步增長等技術對軟件和硬件有不同的意義。

  6.為提高硬件可靠性可采用冗余技術,而同一軟件的冗余不能提高可靠性。

  7.硬件可靠性檢驗方法已建立,并已標準化且有一整套完整的理論,而軟件可靠性驗證方法仍未建立,更沒有完整的理論體系。

  8.硬件可靠性已有成熟的產品市場,而軟件產品市場還很新。

  9.軟件錯誤是永恒的,可重現的,而一些瞬間的硬件錯誤可能會被誤認為是軟件錯誤。

  總的說來,軟件可靠性比硬件可靠性更難保證,即使是美國宇航局的軟件系統,其可靠性仍比硬件可靠性低一個數量級。

  二. 影響軟件可靠性的因素

  軟件可靠性是關于軟件能夠夠滿足需求功能的性質,軟件不能滿足需求是因為軟件中的差錯引起了軟件故障。軟件中有哪些可能的差錯呢?

  軟件差錯是軟件開發各階段潛入的人為錯誤:

  1.需求分析定義錯誤。如用戶提出的需求不完整,用戶需求的變更未及時消化,軟件開發者和用戶對需求的理解不同等等。

  2.設計錯誤。如處理的結構和算法錯誤,缺乏對特殊情況和錯誤處理的考慮等。

  3.編碼錯誤。如語法錯誤,變量初始化錯誤等。

  4.測試錯誤。如數據準備錯誤,測試用例錯誤等。

  5.文檔錯誤。如文檔不齊全,文檔相關內容不一致,文檔版本不一致,缺乏完整性等。

  從上游到下游,錯誤的影響是發散的,所以要盡量把錯誤消除在開發前期階段。

  錯誤引入軟件的方式可歸納為兩種特性:程序代碼特性,開發過程特性。

  程序代碼一個最直觀的特性是長度,另外還有算法和語句結構等,程序代碼越長,結構越復雜,其可靠性越難保證。

  開發過程特性包括采用的工程技術和使用的工具,也包括開發者個人的業務經歷水平等。

  除了軟件可靠性外,影響可靠性的另一個重要因素是健壯性,對非法輸入的容錯能力。

  所以提高可靠性從原理上看就是要減少錯誤和提高健壯性。

  三. 提高軟件可靠性的方法和技術

  1.建立以可靠性為核心的質量標準

  在軟件項目規劃和需求分析階段就要建立以可靠性為核心的質量標準。這個質量標準包括實現的功能、可靠性、可維護性、可移植性、安全性、吞吐率等等,雖然還沒有一個衡量軟件質量的完整體系,但還是可以通過一定的指標來指定標準基線。

  軟件質量從構成因素上可分為產品質量和過程質量。

  產品質量是軟件成品的質量,包括各類文檔、編碼的可讀性、可靠性、正確性,用戶需求的滿足程度等。

  過程質量是開發過程環境的質量,與所采用的技術、開發人員的素質、開發的組織交流、開發設備的利用率等因素有關。

原文轉自:http://www.uml.org.cn/rjzl/200612011.htm

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97