鄭 軍,封二強(qiáng),劉 暢
(中國航空綜合技術(shù)研究所,北京 100028)
IEEE軟件可靠性系列標(biāo)準(zhǔn)分析*
鄭 軍,封二強(qiáng),劉 暢
(中國航空綜合技術(shù)研究所,北京 100028)
對IEEE軟件可靠性系列標(biāo)準(zhǔn)進(jìn)行分析,總結(jié)了IEEE制定軟件可靠性標(biāo)準(zhǔn)的經(jīng)驗(yàn),以及軟件可靠性發(fā)展趨勢。同時(shí),結(jié)合我國軟件可靠性標(biāo)準(zhǔn)化工作現(xiàn)狀,提出軟件可靠性標(biāo)準(zhǔn)的制定及相關(guān)標(biāo)準(zhǔn)修訂的可借鑒之處。
軟件可靠性標(biāo)準(zhǔn);軟件可靠性度量;軟件可靠性評估過程;軟件可靠性模型
隨著計(jì)算機(jī)技術(shù)的快速發(fā)展,現(xiàn)代航電系統(tǒng)大量使用軟件系統(tǒng),其中某些軟件系統(tǒng)在保證航空系統(tǒng)安全、可靠完成任務(wù)時(shí)起到了至關(guān)重要的作用,但這些軟件的失效可能導(dǎo)致災(zāi)難性后果。
為了提高軟件可靠性,相關(guān)領(lǐng)域的學(xué)者展開了廣泛的軟件可靠性研究,特別是全球最大的專業(yè)學(xué)術(shù)組織IEEE,更是在這方面作出了卓越的成績。IEEE在開展軟件可靠性研究的同時(shí),也非常重視相關(guān)標(biāo)準(zhǔn)的制定工作。1988年,IEEE制定了第一份關(guān)于軟件可靠性度量體系方面的標(biāo)準(zhǔn)[1]以及該標(biāo)準(zhǔn)的實(shí)施指南[2]。2005年,IEEE對軟件可靠性度量體系標(biāo)準(zhǔn)進(jìn)行了修訂[3]。2008年,IEEE對R-013-1992標(biāo)準(zhǔn)進(jìn)行修訂[4],R-013-1992標(biāo)準(zhǔn)是AIAA(美國航空與航天學(xué)會)在1992年制定的關(guān)于軟件可靠性評估的標(biāo)準(zhǔn)[5],這也說明IEEE在軟件可靠性方面的成績是國際公認(rèn)的。
IEEE主要制定了軟件可靠性度量體系和評估兩方面的標(biāo)準(zhǔn)。本文將對IEEE制定的軟件可靠性標(biāo)準(zhǔn)進(jìn)行介紹和分析,總結(jié)IEEE制定軟件可靠性標(biāo)準(zhǔn)的經(jīng)驗(yàn),以及軟件可靠性發(fā)展趨勢,結(jié)合我國軟件可靠性標(biāo)準(zhǔn)現(xiàn)狀,提出可靠性標(biāo)準(zhǔn)的制定及相關(guān)標(biāo)準(zhǔn)修訂的可以借鑒之處。
IEEE軟件可靠性標(biāo)準(zhǔn)主要包括軟件可靠性度量體系和軟件可靠性評估兩方面。其中,軟件可靠性度量體系由 IEEE Std 982.1-2005(軟件可信性度量詞典)和IEEE Std 982.2-1988(軟件可靠性度量實(shí)施指南)組成,IEEE Std 982.1-2005是IEEE Std 982.1-1988的修訂版;軟件可靠性評估主要包括 IEEE Std 1633-2008(軟件可靠性操作規(guī)程),它發(fā)布于2008年,替代了AIAA/ANSI R-013-1992(軟件可靠性操作規(guī)程)。
在IEEE軟件可靠性標(biāo)準(zhǔn)體系中,IEEE Std 982.1-2005主要回答了使用哪些參數(shù)對軟件可靠性進(jìn)行度量的問題,即用戶可以通過哪些方面對軟件質(zhì)量、特別是軟件的可靠性進(jìn)行了解和評價(jià)。與IEEE Std 982.1-1988相比,IEEE Std 982.1-2005作出了較大程度的修改。1988版關(guān)于軟件可靠性屬性有39個(gè)不同的度量參數(shù),而2005版中只有 12個(gè),并且其中75%的度量參數(shù)是新增或修改的。
IEEE Std 982.2-1988主要回答了如何使用這些度量參數(shù)對軟件可靠性進(jìn)行度量的問題,但是該標(biāo)準(zhǔn)主要是針對IEEE Std 982.1-1988度量參數(shù)體系的,而IEEE Std982.1-2005中有75%的度量參數(shù)和IEEE Std 982.1-1988不一樣。因此,對于當(dāng)前的軟件可靠性度量參數(shù)體系,該標(biāo)準(zhǔn)實(shí)際上已經(jīng)失去了指導(dǎo)意義。
IEEE Std 1633-2008主要解決了如何進(jìn)行軟件可靠性評估的問題,包括軟件可靠性評估過程和軟件可靠性評估模型兩方面。其中,軟件可靠性評估過程包含13個(gè)步驟,這些步驟不是全部必需的,可根據(jù)軟件特點(diǎn)和當(dāng)前所處的軟件生命周期階段進(jìn)行刪減;軟件可靠性評估模型方面推薦了三個(gè)模型,這三個(gè)模型都是在實(shí)際工程中表現(xiàn)優(yōu)異的評估模型。
IEEE Std 982.1-2005是IEEE Std 982.1-1988的修訂版,它體現(xiàn)了軟件可靠性作為軟件質(zhì)量重要屬性在軟件質(zhì)量控制方面的新方法和新趨勢。與1988版相比,2005版作出了較大程度的修改。1988版關(guān)于軟件的可靠性屬性有39個(gè)不同的度量參數(shù),而2005版刪除了其中的32個(gè)度量參數(shù),并對剩余度量參數(shù)中4個(gè)進(jìn)行了修改,只有3個(gè)得到完全保留,同時(shí)新增了5個(gè)度量參數(shù)。即可靠性度量參數(shù)由原來的39個(gè)變更為12個(gè),其中有75%的度量參數(shù)是新增或修改的。可以說2005版基本上重新定義了軟件可靠性的度量體系,新度量參數(shù)體系如表1所示。
IEEE在選取度量參數(shù)建立軟件可靠性度量參數(shù)體系時(shí),有如下準(zhǔn)則:
(1)該參數(shù)是否得到了學(xué)術(shù)界和工業(yè)界的公認(rèn);
(2)該參數(shù)是否能有效地反映出軟件可靠性的真實(shí)情況;
(3)該參數(shù)是否過于復(fù)雜,以至難于使用和理解;
(4)該參數(shù)適用情況是否過于狹小。
從IEEE選取度量參數(shù)的準(zhǔn)則可以看出,軟件可靠性度量的發(fā)展趨勢是統(tǒng)一、簡單、方便使用,這說明軟件可靠性度量未來的發(fā)展會更加適用于工程需要。
IEEE Std 1633-2008是IEEE最新發(fā)布的軟件可靠性評估標(biāo)準(zhǔn),也是當(dāng)前最新的關(guān)于軟件可靠性評估的國際標(biāo)準(zhǔn)。與AIAA/ANSIR-013-1992相比,IEEE Std 1633-2008主要的變化包括:將軟件的整個(gè)生命周期納入到了軟件可靠性評估中,如圖1所示;對軟件需求修改進(jìn)行風(fēng)險(xiǎn)分析;將達(dá)到特定軟件可靠性指標(biāo),所需測試時(shí)間的預(yù)計(jì)加入評估過程;將Schneidewind模型新增為初始模型,并在初始模型中刪除了L-V模型。
表1 IEEE Std 982.1-2005軟件可靠性度量參數(shù)體系表
IEEE Std 1633-2008主要包括軟件可靠性評估過程和軟件可靠性評估模型兩部分。
1.3.1 軟件可靠性評估過程
IEEE Std 1633-2008規(guī)定了軟件可靠性評估過程,包括:明確軟件系統(tǒng)構(gòu)成、明確軟件系統(tǒng)的可靠性邏輯結(jié)構(gòu)、分配可靠性指標(biāo)、需求修改風(fēng)險(xiǎn)評估、明確軟件失效定義、確定軟件運(yùn)行環(huán)境、確定測試用例、選擇評估模型、收集失效數(shù)據(jù)、進(jìn)行模型參數(shù)估計(jì)、驗(yàn)證模型有效性、進(jìn)行軟件可靠性評估、預(yù)計(jì)剩余測試時(shí)間等13個(gè)步驟,如圖2所示。這些步驟可根據(jù)軟件特點(diǎn)和當(dāng)前所處的生命周期階段進(jìn)行刪減。
1.3.2 軟件可靠性評估模型
通過分析軟件可靠性評估模型的作用、建立的前提條件、影響模型精度的因素、適用的可靠性評估范圍、模型的優(yōu)勢和局限性,IEEE Std 1633-2008將當(dāng)前主要評估模型分為三類:(1)指數(shù)類非均勻泊松(NHPP)模型;(2)非指數(shù)類NHPP模型;(3)貝葉斯類模型。具體分類情況及各類中代表性的模型如圖3所示。
IEEE Std 1633-2008通過模型的精度、偏差、趨勢三方面評價(jià)模型的有效性,并給出三個(gè)初始模型(優(yōu)先使用的模型):Schneidewind模型、一般指數(shù)類模型、M-O對數(shù)模型。這三個(gè)初始模型是該標(biāo)準(zhǔn)推薦優(yōu)先使用的評估模型,也是經(jīng)過實(shí)際工程檢驗(yàn)性能表現(xiàn)良好的模型。從推薦的初始模型可以看出,貝葉斯類模型不是該標(biāo)準(zhǔn)優(yōu)先推薦使用的模型。這是由于貝葉斯類模型參數(shù)較為復(fù)雜,不便于工程使用。因此,可以看出IEEE在新標(biāo)準(zhǔn)的制定過程中始終以工程使用為向?qū)А?/p>
如果三個(gè)初始模型都不能滿足工程要求,可以使用該標(biāo)準(zhǔn)附錄中推薦的四個(gè)評估模型:L-V模型、Duane模型、S-形模型、J-M模型。
20世紀(jì)90年代至今,我國在借鑒國外相關(guān)標(biāo)準(zhǔn)的情況下也制定了自己的軟件可靠性標(biāo)準(zhǔn)。與軟件可靠性相關(guān)的標(biāo)準(zhǔn)有GJB-451A-2005《可靠性維修性保障性術(shù)語》[6]和GJB/Z102-1997《軟件可靠性和安全性設(shè)計(jì)準(zhǔn)則》[7]。
國軍標(biāo) GJB-451A-2005對產(chǎn)品(包括軟件、硬件或兩者結(jié)合)的可靠性、維修性、保障性術(shù)語進(jìn)行了定義,但是,其中只有3條是IEEE Std 982.1-2005中有的,即IEEE Std 982.1-2005中有9條度量參數(shù)是國內(nèi)標(biāo)準(zhǔn)所沒有的,占度量參數(shù)總數(shù)的75%,其中包括:危險(xiǎn)因子、剩余缺陷數(shù)、剩余測試時(shí)間、網(wǎng)絡(luò)可靠性、缺陷密度、測試覆蓋率、故障密度、軟件需求的可追溯性。
國軍標(biāo)GJB/Z 102-1997《軟件可靠性和安全性設(shè)計(jì)準(zhǔn)則》介紹了軟件可靠性設(shè)計(jì)的目的及實(shí)現(xiàn)技術(shù)方法。
我國雖然開展了軟件可靠性標(biāo)準(zhǔn)化工作,但是還處在相對落后的階段,主要存在以下不足:
(1)沒有針對軟件可靠性建立完整的度量參數(shù)體系,使得軟件可靠性評價(jià)工作不能得到有效開展。
(2)缺少關(guān)于軟件可靠性評估方面的標(biāo)準(zhǔn),使得軟件可靠性評估工作不具備操作性,軟件的可靠性指標(biāo)無法得到驗(yàn)證。
(3)沒有將軟件的整個(gè)生命周期納入軟件可靠性范疇,使得軟件可靠性得不到全面的提升。
因此,在航空、航天等軟件密集型的國防領(lǐng)域開展相關(guān)的軟件可靠性標(biāo)準(zhǔn)化及軟件可靠性實(shí)踐工作勢在必行。
通過對IEEE軟件可靠性系列標(biāo)準(zhǔn)和我國軟件可靠性標(biāo)準(zhǔn)化現(xiàn)狀的分析,可知以下值得借鑒的經(jīng)驗(yàn):
(1)IEEE軟件可靠性標(biāo)準(zhǔn)建立了完整的度量參數(shù)體系,該標(biāo)準(zhǔn)在參數(shù)選取上遵循四大準(zhǔn)則,始終以工程需求為導(dǎo)向,以學(xué)術(shù)研究成果為支撐。因此,我國在軟件可靠性度量參數(shù)體系標(biāo)準(zhǔn)建設(shè)時(shí),應(yīng)充分考慮工程需求和學(xué)術(shù)成果的結(jié)合。
(2)IEEE軟件可靠性標(biāo)準(zhǔn)將軟件全生命周期和軟件可靠性評估相結(jié)合,將軟件可靠性工作融合到軟件生命周期的各個(gè)階段中。我國軟件可靠性標(biāo)準(zhǔn)也應(yīng)結(jié)合現(xiàn)階段我國軟件開發(fā)方式以及采用的工程技術(shù),在軟件的整個(gè)生存周期綜合考慮軟件可靠性,這樣不僅有利于軟件可靠性工作的組織和開展,也有利于合理地利用現(xiàn)有資源,提高軟件可靠性工作的效率。
(3)IEEE軟件可靠性標(biāo)準(zhǔn)建立了一個(gè)可進(jìn)行自由裁剪的可靠性評估過程,以適應(yīng)各種工程評估情況,充分考慮了標(biāo)準(zhǔn)的可操作性和工程易用性。因此,我國的軟件可靠性標(biāo)準(zhǔn)也應(yīng)該綜合考慮軟件工程中的各種情況,以提高軟件可靠性標(biāo)準(zhǔn)執(zhí)行過程的可操作性,做到軟件可靠性標(biāo)準(zhǔn)通用性和針對性相結(jié)合。
(4)IEEE軟件可靠性標(biāo)準(zhǔn)充分考慮了當(dāng)前軟件可靠性的研究成果,及時(shí)地將最新技術(shù)納入標(biāo)準(zhǔn)中。我國制定軟件可靠性標(biāo)準(zhǔn)時(shí),也應(yīng)該及時(shí)將最新學(xué)術(shù)成果進(jìn)行分析、轉(zhuǎn)化,以加快科學(xué)技術(shù)轉(zhuǎn)化為生產(chǎn)力的步伐。
通過對IEEE軟件可靠性系列標(biāo)準(zhǔn)進(jìn)行分析,并結(jié)合我國軟件可靠性標(biāo)準(zhǔn)化現(xiàn)狀,提出我國軟件可靠性標(biāo)準(zhǔn)化工作應(yīng)該借鑒IEEE軟件可靠性標(biāo)準(zhǔn)體系,并且要充分考慮我國軟件技術(shù)和軟件工程化水平,將軟件全生命周期納入到軟件可靠性工程中來,定義明確的、便于工程使用的軟件可靠性度量體系,并建立適應(yīng)各種工程情況的可靠性評估過程,充分考慮標(biāo)準(zhǔn)的可操作性和工程易用性。同時(shí),要緊跟工程需求和軟件可靠性技術(shù)發(fā)展方向,以便及時(shí)將最新學(xué)術(shù)成果進(jìn)行分析、轉(zhuǎn)化,為型號工程提供支撐。
[1]IEEE STD 982.1-1988.Dictionary of measures to produce reliable software.1988.
[2]IEEE STD 982.2-1988.IEEE guide for the use of IEEE standard dictionary of measures to produce reliable software.1988.
[3]IEEE STD 982.1-2005.Dictionaryofmeasuresofthe software aspects of dependability.2005.
[4]IEEE STD 1633-2008.IEEE recommendedpracticeon software reliability.2008.
[5]AIAA/ANSI R-013-1992.Recommended practice for software reliability.1992.
[6]GJB 451A-2005.可靠性維修性保障性術(shù)語.2005.
[7]GJB/Z 102-1997.軟件可靠性和安全性設(shè)計(jì)準(zhǔn)則.1997.
Analysis on the IEEE standards of software reliability
Zheng Jun,F(xiàn)eng Erqiang,Liu Chang
(China Aero-Polytechnology Establishment,Beijing 100028,China)
Based on the analysis of the IEEE standards of software reliability,experience in developed standards by IEEE and the trend of software reliability are proposed.The history of software reliability standards of China,the current trends and existing problems,and specific difficulties are addressed.Possible future directions and promising research subjects in software reliability engineering are also addressed.
software reliability standard;software reliability assessment;software reliability assessment procedure;software reliability model
TP311
A
1674-7720(2011)03-0001-03
航空科學(xué)基金資助(2008ZD41005)
2010-09-10)
鄭軍,男,1969年生,高級工程師,主要研究方向:軟件測試,軟件質(zhì)量度量。
封二強(qiáng),男,1984年生,主要研究方向:軟件可靠性測試,軟件測試,軟件可靠性評估。
劉暢,男,1979年生,主要研究方向:軟件可靠性工程,缺陷預(yù)測,軟件質(zhì)量度量,故障檢測。
網(wǎng)絡(luò)安全與數(shù)據(jù)管理2011年3期