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

日期:2024-09-20 10:50
瀏覽次數(shù):1375
摘要:
? 用軟件系統(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ā)展競爭能力。
  特別是軟件可靠性比硬件可靠性更難保證,會(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.*明顯的是硬件有老化損耗現(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ì)可靠性測試和可靠性的逐步增長等技術(shù)對(duì)軟件和硬件有不同的意義。
  6.為提高硬件可靠性可采用冗余技術(shù),而同一軟件的冗余不能提高可靠性。
  7.硬件可靠性檢驗(yàn)方法已建立,并已標(biāo)準(zhǔn)化且有一整套完整的理論,而軟件可靠性驗(yàn)證方法仍未建立,更沒有完整的理論體系。
  8.硬件可靠性已有成熟的產(chǎn)品市場,而軟件產(chǎn)品市場還很新。
  9.軟件錯(cuò)誤是永恒的,可重現(xiàn)的,而一些瞬間的硬件錯(cuò)誤可能會(huì)被誤認(rèn)為是軟件錯(cuò)誤。
  總的說來,軟件可靠性比硬件可靠性更難保證,即使是美國宇航局的軟件系統(tǒng),其可靠性仍比硬件可靠性低一個(gè)數(shù)量級(jí)。
  二. 影響軟件可靠性的因素
  軟件可靠性是關(guān)于軟件能夠夠滿足需求功能的性質(zhì),軟件不能滿足需**因?yàn)檐浖械牟铄e(cuò)引起了軟件故障。軟件中有哪些可能的差錯(cuò)呢?
  軟件差錯(cuò)是軟件開發(fā)各階段潛入的人為錯(cuò)誤:
  1.需求分析定義錯(cuò)誤。如用戶提出的需求不完整,用戶需求的變更未及時(shí)消化,軟件開發(fā)人和用戶對(duì)需求的理解不同等等。
  2.設(shè)計(jì)錯(cuò)誤。如處理的結(jié)構(gòu)和算法錯(cuò)誤,鹽霧試驗(yàn)機(jī)缺乏對(duì)特殊情況和錯(cuò)誤處理的考慮等。
  3.編碼錯(cuò)誤。如語法錯(cuò)誤,變量初始化錯(cuò)誤等。
  4.測試錯(cuò)誤。如數(shù)據(jù)準(zhǔn)備錯(cuò)誤,測試用例錯(cuò)誤等。
  5.文檔錯(cuò)誤。如文檔不齊全,文檔相關(guān)內(nèi)容不一致,文檔版本不一致,缺乏完整性等。
  從上游到下游,錯(cuò)誤的影響是發(fā)散的,所以要盡量把錯(cuò)誤消除在開發(fā)前期階段。
  錯(cuò)誤引入軟件的方式可歸納為兩種特性:程序代碼特性,開發(fā)過程特性。
  程序代碼一個(gè)*直觀的特性是長度,另外還有算法和語句結(jié)構(gòu)等,程序代碼越長,結(jié)構(gòu)越復(fù)雜,其可靠性越難保證。
  開發(fā)過程特性包括采用的工程技術(shù)和使用的工具,也包括開發(fā)人個(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)基線。

掃碼瀏覽網(wǎng)站