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