系统的可靠性设计问答
?
1.軟件可靠性的定義是什么
答:軟件可靠性是指產(chǎn)品在規(guī)定條件下和規(guī)定時間內(nèi)完成規(guī)定功能的能力。規(guī)定的時間只是體現(xiàn)在軟件的運(yùn)行階段,包括系統(tǒng)運(yùn)行后工作和掛起的累計時間。規(guī)定的條件是指軟件的運(yùn)行環(huán)境。軟件可靠性與規(guī)定的任務(wù)和功能有關(guān),不同任務(wù)功能的可靠性是不一樣的。
按照產(chǎn)品可靠性的形成,可靠性分為固有可靠性和使用可靠性。固有可靠性是通過設(shè)計、制造賦予產(chǎn)品的可靠性;使用可靠性既受設(shè)計、制造的影響,也受使用條件的影響。一般使用可靠性總低于固有可靠性。軟件可靠性不同于硬件可靠性的主要區(qū)別點(diǎn)有四個:復(fù)雜性,軟件的邏輯復(fù)雜性高于硬件;物理退化,軟件不會發(fā)生物理退化;唯一性,軟件復(fù)制不會改變軟件本身,硬件則沒有兩個完全相同的硬件;版本更新,軟件更新速度快于硬件更新。
保障軟件可靠性最有效、最經(jīng)濟(jì)、最重要的手段是在軟件設(shè)計階段采取措施,控制可靠性。
?
2.與軟件可靠性有關(guān)的定量指標(biāo)簡介
答:規(guī)定時間,有三種概念,第一種是日然時間,如工作日、會計日等;第二種是運(yùn)行時間,從軟件啟動到運(yùn)行結(jié)束的時間段;第三種是執(zhí)行時間,是運(yùn)行時間中CPU執(zhí)行程序執(zhí)行的時間總和。實(shí)際測量中以執(zhí)行時間最為準(zhǔn)確,如果出現(xiàn)穩(wěn)定的執(zhí)行規(guī)律,可以進(jìn)行時間的折算。
失效概率一個函數(shù),在0到正無窮的區(qū)間上單調(diào)遞增,隨著時間變化無限趨近于1.
可靠度直接的量化公式是:可靠度函數(shù)+失效概率函數(shù)=1
失效強(qiáng)度是單位時間軟件系統(tǒng)出現(xiàn)實(shí)現(xiàn)的概率。用極限的定義方式得到:失效強(qiáng)度為失效概率函數(shù)的導(dǎo)數(shù)。
失效率也稱為風(fēng)險函數(shù)或者條件失效強(qiáng)度,是在運(yùn)行至此軟件系統(tǒng)為失效的情況下,單位時間軟件系統(tǒng)出現(xiàn)失效的概率。
平均無失效時間是軟件運(yùn)行后到下一次出現(xiàn)失效的平均時間。
?
3.軟件可靠性目標(biāo)是什么,通過哪些指標(biāo)衡量
答:可靠性目標(biāo)是客戶對軟件性能滿意程度的期望,通常用可靠度、故障強(qiáng)度、平均失效時間等指標(biāo)來描述。定量的可靠性指標(biāo)需要對可靠性、交付時間、成本進(jìn)行平衡。系統(tǒng)的可靠性指標(biāo)必須確定系統(tǒng)的運(yùn)行模式,定義故障的嚴(yán)重性等級,確定故障強(qiáng)度目標(biāo)。
失效嚴(yán)重程度類是對用戶具有相同程度影響的失效集合。對失效程度驗(yàn)證程度分級一般是按照成本影響、系統(tǒng)能力影響等標(biāo)準(zhǔn)進(jìn)行劃分。
?
4.可靠性測試存在的意義是什么
答:軟件失效可能造成的災(zāi)難性后果、軟件失效在計算機(jī)系統(tǒng)失效中比例較高、軟件可靠性技術(shù)比硬件可靠性技術(shù)不成熟、軟件可靠性問題引起費(fèi)用增長、系統(tǒng)對軟件部分的依賴增強(qiáng)。
?
5.可靠性測試的目的是什么
答:發(fā)現(xiàn)軟件系統(tǒng)在需求、設(shè)計、編碼、測試、實(shí)施等方面的各種缺陷;為軟件使用和維護(hù)提供可靠性數(shù)據(jù);確認(rèn)軟件是否達(dá)到可靠性的定量要求。
?
6.軟件可靠性建模是什么,應(yīng)該怎么去操作
答:軟件可靠性模型是為預(yù)計或估算軟件的可靠性建立的可靠性框圖或者數(shù)學(xué)模型。建立可靠性模型是將復(fù)雜的系統(tǒng)的可靠性逐級分解為簡單系統(tǒng)的可靠性,便于定量預(yù)計、分配、估算和評價復(fù)雜系統(tǒng)的可靠性。
首先考慮影響軟件可靠性的主要因素:缺陷的引入、發(fā)現(xiàn)、清楚。從技術(shù)層面上看,影響可靠性的主要因素有:運(yùn)行剖面(環(huán)境)、軟件規(guī)模、軟件內(nèi)部結(jié)構(gòu)、軟件開發(fā)方法和開發(fā)環(huán)境、軟件可靠性投入。
接下來是找到軟件可靠性建模的一些基本組成元素,包括模型假設(shè)、性能度量、參數(shù)估計方法、數(shù)據(jù)要求等。絕大多數(shù)模型包含三個共同假設(shè),目前尚未有克服這些假設(shè)的有效方法,它們是代表性假設(shè)、獨(dú)立性假設(shè)、共同性假設(shè)。一個好的軟件可靠性模型應(yīng)該具有如下重要的特性:基于可靠的假設(shè)、簡單、計算指標(biāo)有效有用、給出未來失效行為的良好映射、可廣泛應(yīng)用。
可靠性模型有近百種,大體上分為十類,分別是:種子類模型,根據(jù)預(yù)先設(shè)定的錯誤分類和比重設(shè)定一些錯誤,測試后跟這些錯誤的比重對比,發(fā)現(xiàn)遺留錯誤,難在預(yù)先設(shè)定;失效率類模型,主要研究程序失效率;曲線擬合類模型,使用回歸分析方法研究軟件復(fù)雜性、程序缺陷數(shù)、失效率、失效間隔時間,包括參數(shù)方法和非參數(shù)方法兩種;可靠性增長模型,預(yù)測軟件在檢錯過程中可靠性改進(jìn),用增長函數(shù)來描述軟件的改進(jìn)過程;程序結(jié)構(gòu)分析模型,根據(jù)程序、子程序、相互間的調(diào)用關(guān)系形成一個可靠性分析網(wǎng)絡(luò);輸入域分類模型,選取輸入域中某些樣本進(jìn)行檢測,通過檢測結(jié)果推斷軟件的使用可靠性;執(zhí)行路徑分析模型,根據(jù)執(zhí)行過程中計算程序的邏輯路徑執(zhí)行概率和錯誤羅靜執(zhí)行概率推斷軟件的使用可靠性;非齊次泊松過程模型,NHPP,預(yù)測軟件在某使用時間點(diǎn)的累計失效數(shù);馬爾可夫過程模型;貝葉斯模型,利用失效率的實(shí)驗(yàn)前分布和當(dāng)前的測試失效此案系,評估軟件的可靠性。
軟件可靠性測試由可靠性目標(biāo)的確定、運(yùn)行剖面的開發(fā)、測試用例的設(shè)計、測試實(shí)施、測試結(jié)果的分析等主要活動組成,基于對軟件開發(fā)進(jìn)度和成本的約束,最好在受控的自動測試環(huán)境下完成測試。軟件可靠性測試是面向可靠性的,并不能保證軟件的bug最少。
定義軟件運(yùn)行剖面是根據(jù)系統(tǒng)的目標(biāo)運(yùn)行環(huán)境構(gòu)件模擬測試環(huán)境,對業(yè)務(wù)路徑進(jìn)行概率加權(quán),對業(yè)務(wù)路徑的全狀態(tài)進(jìn)行貫穿性測試,檢測故障比例,根據(jù)反饋的故障比例適當(dāng)?shù)淖鲅a(bǔ)充測試。
可靠性測試用例應(yīng)優(yōu)先測試最重要最頻繁使用的功能,釋放和緩解最高級別的風(fēng)險,提早發(fā)現(xiàn)故障保證軟件按期交付。
軟件可靠性測試必須是受控測試。軟件可靠性測試依賴于軟件的可測試性,可靠性測試的難點(diǎn)在于判斷測試用例運(yùn)行成功還是失敗。軟件可靠性測試大體上分為兩個階段,第一階段是少量測試用例檢查運(yùn)行結(jié)果的正確定,第二階段是大量的測試用例檢查失效現(xiàn)象。軟件可靠性數(shù)據(jù)是可靠性評價的基礎(chǔ),可以使用多臺機(jī)器同時運(yùn)行軟件增加累計運(yùn)行時間。在收集的數(shù)據(jù)中,重點(diǎn)關(guān)注失效時間數(shù)據(jù)、失效間隔時間數(shù)據(jù)、分組時間內(nèi)失效數(shù)、分組時間的累積失效數(shù),然后進(jìn)行統(tǒng)計分析,得出可靠性的實(shí)際測量值。
?
7.如何進(jìn)行軟件可靠性評價
答:軟件可靠性評價是評估軟件當(dāng)前的可靠性,確認(rèn)是否可以終止測試并發(fā)布軟件,同時還可以預(yù)計軟件要達(dá)到相應(yīng)的可靠性水平所需要的時間和工程量,評價提交軟件時軟件的可靠性水平。軟件可靠性評價需要經(jīng)過三個過程,分別是選擇可靠性模型、收集可靠性數(shù)據(jù)、可靠性評估和預(yù)測。
可靠性模型的選擇需要從以下方面進(jìn)行考慮:模型假設(shè)的適用性、預(yù)測的能力和質(zhì)量、模型輸出值能否滿足可靠性評價需求、模型適用的簡便性。
可靠性數(shù)據(jù)的收集要解決數(shù)據(jù)規(guī)范不統(tǒng)一、工作連續(xù)性問題、有效的數(shù)據(jù)收集手段、數(shù)據(jù)完整性、數(shù)據(jù)質(zhì)量和正確性。只要解決好這些問題,數(shù)據(jù)收集方面基本上不會有什么大的出入。
軟件可靠性評價技術(shù)和方法主要依據(jù)選用的軟件可靠性模型,其來源于統(tǒng)計理論。失效數(shù)據(jù)圖形分析法可以借助圖形進(jìn)行處理失效數(shù)據(jù),得到部分分析信息。試探性數(shù)據(jù)分析技術(shù)(EDA),可以對數(shù)據(jù)進(jìn)行處理,發(fā)現(xiàn)和揭示數(shù)據(jù)中的異常。
?
8.軟件可靠性設(shè)計是什么
答:軟件可靠性設(shè)計技術(shù)是提高和保障軟件的可靠性為目的,在軟件設(shè)計階段運(yùn)用的一種特殊設(shè)計技術(shù),將可靠性設(shè)計融入到軟件設(shè)計中。目前被認(rèn)可且具有應(yīng)用前景的軟件可靠性設(shè)計技術(shù)主要有容錯設(shè)計、檢錯設(shè)計、降低復(fù)雜度設(shè)計三種技術(shù)。
容錯設(shè)計技術(shù)主要有恢復(fù)塊設(shè)計、N版本程序設(shè)計、冗余設(shè)計三種具體的方法。恢復(fù)塊設(shè)計是類似于程序模塊的替代方案,當(dāng)正常程序出現(xiàn)錯誤的時候,切換到程序模塊的替換方案上。N版本設(shè)計是通過多個模塊或版本,對相同初始條件和輸入的操作結(jié)果進(jìn)行多數(shù)決策,少數(shù)服從多數(shù)。N版本方法要保證每個版本的設(shè)計人員和實(shí)施人員是不同的,最好保證全程要素的不相關(guān)性。冗余技術(shù)是對關(guān)鍵部分或者整體上做出的替換方案,當(dāng)關(guān)鍵部分或者整體上出現(xiàn)故障時,啟動冗余方案來替代,粒度層級高于恢復(fù)塊設(shè)計。
檢錯技術(shù)主要針對不能采用容錯設(shè)計的部分,同時還對可靠性要求較高。檢錯技術(shù)的場景不能自動解決故障,需要在故障發(fā)生后及時進(jìn)行人工干預(yù),所以采用檢錯技術(shù)時需要考慮檢錯多項(xiàng)、檢測延時、實(shí)現(xiàn)方式、處理方式等這些因素。
軟件復(fù)雜度由軟件的模塊復(fù)雜性和結(jié)構(gòu)復(fù)雜性組成,模塊復(fù)雜性包括模塊內(nèi)部的數(shù)據(jù)流向和程序長度兩個方面,結(jié)構(gòu)復(fù)雜度有不同模塊之間的關(guān)聯(lián)程度決定,軟件復(fù)雜性是產(chǎn)生軟件缺陷重要根源,實(shí)踐表明,當(dāng)軟件復(fù)雜度超過一定界限時,軟件缺陷數(shù)會急劇上升。由此,降低復(fù)雜度設(shè)計是非常有必要的。
總結(jié)
以上是生活随笔為你收集整理的系统的可靠性设计问答的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: E Mark认证介绍
- 下一篇: java信息管理系统总结_java实现科