客戶至上 誠信經(jīng)營
Product category
用軟件系統(tǒng)規(guī)模越做越大越復(fù)雜,其可靠性越來越難保證。應(yīng)用本身對系統(tǒng)運行的可靠性要求越來越高,在一些關(guān)鍵的應(yīng)用領(lǐng)域,如航空、航天等,其可靠性要求尤為重要,在銀行等服務(wù)性行業(yè),其軟件系統(tǒng)的可靠性也直接關(guān)系到自身的聲譽和生存發(fā)展競爭能力。
特別是軟件可靠性比硬件可靠性更難保證,會嚴(yán)重影響整個系統(tǒng)的可靠性。在許多項目開發(fā)過程中,對可靠性沒有提出明確的要求,開發(fā)商(部門)也不在可靠性方面花更多的精力,往往只注重速度、結(jié)果的正確性和用戶界面的友好性等,鹽霧試驗機而忽略了可靠性。在投入使用后才發(fā)現(xiàn)大量可靠性問題,增加了維護困難和工作量,嚴(yán)重時只有束之高閣,無法投入實際使用。
一. 軟件可靠性與硬件可靠性的區(qū)別
軟件可靠性與硬件可靠性之間主要存在以下區(qū)別:
1.zui明顯的是硬件有老化損耗現(xiàn)象,硬件失效是物理故障,是器件物理變化的必然結(jié)果,有浴盆曲線現(xiàn)象;軟件不發(fā)生變化,沒有磨損現(xiàn)象,有陳舊落后的問題,沒有浴盆曲線現(xiàn)象。
2.硬件可靠性的決定因素是時間,受設(shè)計、生產(chǎn)、運用的所有過程影響,軟件可靠性的決定因素是與輸入數(shù)據(jù)有關(guān)的軟件差錯,鹽霧試驗機是輸入數(shù)據(jù)和程序內(nèi)部狀態(tài)的函數(shù),更多地決定于人。
3.硬件的糾錯維護可通過修復(fù)或更換失效的系統(tǒng)重新恢復(fù)功能,軟件只有通過重設(shè)計。
4.對硬件可采用預(yù)防性維護技術(shù)預(yù)防故障,采用斷開失效部件的辦法診斷故障,而軟件則不能采用這些技術(shù)。
5.事先估計可靠性測試和可靠性的逐步增長等技術(shù)對軟件和硬件有不同的意義。
6.為提高硬件可靠性可采用冗余技術(shù),而同一軟件的冗余不能提高可靠性。
7.硬件可靠性檢驗方法已建立,并已標(biāo)準(zhǔn)化且有一整套完整的理論,而軟件可靠性驗證方法仍未建立,更沒有完整的理論體系。
8.硬件可靠性已有成熟的產(chǎn)品市場,而軟件產(chǎn)品市場還很新。
9.軟件錯誤是永恒的,可重現(xiàn)的,而一些瞬間的硬件錯誤可能會被誤認(rèn)為是軟件錯誤。
總的說來,軟件可靠性比硬件可靠性更難保證,即使是美國宇航局的軟件系統(tǒng),其可靠性仍比硬件可靠性低一個數(shù)量級。
二. 影響軟件可靠性的因素
軟件可靠性是關(guān)于軟件能夠夠滿足需求功能的性質(zhì),軟件不能滿足需求是因為軟件中的差錯引起了軟件故障。軟件中有哪些可能的差錯呢?
軟件差錯是軟件開發(fā)各階段潛入的人為錯誤:
1.需求分析定義錯誤。如用戶提出的需求不完整,用戶需求的變更未及時消化,軟件和用戶對需求的理解不同等等。
2.設(shè)計錯誤。如處理的結(jié)構(gòu)和算法錯誤,鹽霧試驗機缺乏對特殊情況和錯誤處理的考慮等。
3.編碼錯誤。如語法錯誤,變量初始化錯誤等。
4.測試錯誤。如數(shù)據(jù)準(zhǔn)備錯誤,測試用例錯誤等。
5.文檔錯誤。如文檔不齊全,文檔相關(guān)內(nèi)容不一致,文檔版本不一致,缺乏完整性等。
從上游到下游,錯誤的影響是發(fā)散的,所以要盡量把錯誤消除在開發(fā)前期階段。
錯誤引入軟件的方式可歸納為兩種特性:程序代碼特性,開發(fā)過程特性。
程序代碼一個zui直觀的特性是長度,另外還有算法和語句結(jié)構(gòu)等,程序代碼越長,結(jié)構(gòu)越復(fù)雜,其可靠性越難保證。
開發(fā)過程特性包括采用的工程技術(shù)和使用的工具,也包括個人的業(yè)務(wù)經(jīng)歷水平等。
除了軟件可靠性外,影響可靠性的另一個重要因素是健壯性,鹽霧試驗機對非法輸入的容錯能力。
所以提高可靠性從原理上看就是要減少錯誤和提高健壯性。
三. 提高軟件可靠性的方法和技術(shù)
1.建立以可靠性為核心的質(zhì)量標(biāo)準(zhǔn)
在軟件項目規(guī)劃和需求分析階段就要建立以可靠性為核心的質(zhì)量標(biāo)準(zhǔn)。這個質(zhì)量標(biāo)準(zhǔn)包括實現(xiàn)的功能、可靠性、可維護性、可移植性、安全性、吞吐率等等,雖然還沒有一個衡量軟件質(zhì)量的完整體系,但還是可以通過一定的指標(biāo)來標(biāo)準(zhǔn)基線。