13.4.1 軟件可靠性設(shè)計(jì)
實(shí)踐證明,保障軟件可靠性,最有效、最經(jīng)濟(jì)、最重要的手段是 在軟件設(shè)計(jì)階段采取措施進(jìn)行可靠性控制。
1、軟件可靠性設(shè)計(jì)是軟件設(shè)計(jì)的一部分,必須在軟件的總體設(shè)計(jì)框架中使用,并且不能與其他設(shè)計(jì)原則相沖突。
2、軟件可靠性設(shè)計(jì)在滿足提高軟件質(zhì)量要求的前提下,以提高和保障軟件可靠性為最終目標(biāo)。
3、軟件可靠性設(shè)計(jì)應(yīng)確定軟件的可靠性目標(biāo),不能無(wú)限擴(kuò)大化,排在功能度、用戶需求、開發(fā)費(fèi)用之后考慮。
容錯(cuò)設(shè)計(jì)、檢錯(cuò)設(shè)計(jì)、降低復(fù)雜度設(shè)計(jì) 等技術(shù)。
1、容錯(cuò)設(shè)計(jì)技術(shù)
1. 恢復(fù)塊設(shè)計(jì),一旦文本出現(xiàn)故障,用備份文本加以替換。
2. N版本程序設(shè)計(jì),對(duì)于相同初始條件和相同輸入的操作結(jié)果,實(shí)行多數(shù)表決,防止其中某一軟件模塊/版本的故障提供錯(cuò)誤的服務(wù)。
必須注意以下兩方面:
使軟件的需求說(shuō)明具有完整性和精確性。
設(shè)計(jì)全過(guò)程的不相關(guān)性。
3. 冗余設(shè)計(jì)
在相同的運(yùn)行環(huán)境中,一套軟件出故障的地方,另外一套也一定會(huì)出現(xiàn)故障。
在一套完整的軟件系統(tǒng)之外,設(shè)計(jì)一種不同路徑、不同算法或不同實(shí)現(xiàn)方法的模塊或系統(tǒng)作為備份。
費(fèi)用可能接近單個(gè)版本軟件開發(fā)費(fèi)用的兩倍,還有可能導(dǎo)致軟件運(yùn)行時(shí)所花費(fèi)的存儲(chǔ)空間、內(nèi)存消耗、運(yùn)行時(shí)間有所增加,需要在可靠性要求和額外付出代價(jià)之間做出折中。
2、檢錯(cuò)技術(shù)
檢錯(cuò)技術(shù)實(shí)現(xiàn)的代價(jià)一般低于容錯(cuò)技術(shù)和冗余技術(shù),但它有一個(gè)明顯的缺點(diǎn),就是不能自動(dòng)解決故障。
著重考慮幾個(gè)要素:檢測(cè)對(duì)象、檢測(cè)延時(shí)、實(shí)現(xiàn)方式、處理方式。
3、降低復(fù)雜度設(shè)計(jì)
模塊復(fù)雜性主要包含模塊內(nèi)部數(shù)據(jù)流向和程序長(zhǎng)度兩個(gè)方面,結(jié)構(gòu)復(fù)雜性用不同模塊之間的關(guān)聯(lián)程度表示。
軟件復(fù)雜性是產(chǎn)生軟件缺陷的重要根源。
在設(shè)計(jì)師就應(yīng)該考慮降低軟件的復(fù)雜性,是提高軟件可靠性的有效方法。
在保證實(shí)現(xiàn)軟件功能的基礎(chǔ)上,簡(jiǎn)化軟件結(jié)構(gòu),縮短程序代碼長(zhǎng)度,優(yōu)化軟件數(shù)據(jù)流向,降低軟件復(fù)雜度,從而提高軟件可靠性。
13.4.2 軟件可靠性管理
為了進(jìn)一步提高軟件可靠性,又提出軟件可靠性管理的概念,把軟件可靠性活動(dòng)貫穿于軟件開發(fā)的全過(guò)程。
各個(gè)階段的可靠性活動(dòng)的目標(biāo)、計(jì)劃、進(jìn)度、任務(wù)、修正措施等。
由于軟件之間的差異較大,下面的每項(xiàng)活動(dòng)并不是每一個(gè)軟件系統(tǒng)的可靠性管理的必須內(nèi)容,也不是軟件可靠性管理的全部?jī)?nèi)容。
相關(guān)推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |