程新宇 鄭 軍
(中航工業綜合技術研究所, 北京 100028)
隨著軍用電子系統集成化、復雜化發展,軍用軟件綜合化、高實時性特點,使得軍用軟件質量成為軍用武器裝備的重要審核內容。
軟件質量評價技術作為軟件質量控制的核心內容一直受到國內外專家學者的關注,并取得了不少成果。目前在學術界比較著名的軟件質量關系型模型有Perry模型和Gillies模型,層次型模型有McCall模型、Boehm模型和ISO/IEC9126軟件質量模型。與此同時國內和多個國際組織都制定了軟件質量模型和評價過程的相關標準,ISO/IEC9126 Software Engineering-product Quality定義了軟件質量模型,ISO/IEC14598 Software Product Evaluation定義了軟件質量評價的基本過程,GJB 5236-2004《軍用軟件質量度量》定義了我國軍用軟件質量模型,GJB 2434A-2004《軍用軟件產品評價》定義了我國軍用軟件產品評價的基本過程。雖然目前學術界已經存在較多的軟件質量評價模型,但上述質量模型和評價過程的理論性太強,造成其在工程應用中不易操作、不易實施,而針對軍用軟件特殊的軟件研制過程和產品結構,現有的軟件質量評價技術無法支撐其在工程中廣泛、有效的應用。
本文基于ISO/IEC9126軟件質量模型,結合GJB 2786A-2009《軍用軟件開發通用要求》,考慮軍用軟件本身及研制特點,軟件的類型、軟件重要度等級兩方面因素,提出了基于軍用軟件研制過程的軍用軟件質量評價模型,以實現對軍用軟件質量的全面分析和客觀評價。
軟件質量模型是對軟件質量進行評價的基礎,由4層結構組成,包括軟件綜合質量、軟件質量主屬性、軟件質量子屬性、軟件質量度量元。其中軟件質量度量元包括度量公式以及度量元所需數據的收集方法。
ISO/IEC 9126軟件質量模型是軟件工程界應用最廣的軟件質量模型,其包含功能性、可靠性、效率、可維護性、可移植性、易用性6個質量主屬性,27個質量子屬性,134個質量度量元(質量模型結構圖如圖1所示)。其從功能性、可靠性、效率、可維護性、可移植性、易用性6個大方面對軟件質量進行評價。

圖1 ISO/IEC9126軟件質量模型圖示
ISO/IEC 9126軟件質量模型從6個主屬性、27個子屬性對軟件質量進行評價,其包含的134個軟件質量度量元涵蓋軟件生命周期全過程,其中大部分軟件質量度量元的計算方法及其度量元數據的收集方法高度抽象,很難在具體軟件工程中應用,尤其不適用有著特殊軟件研制過程和軟件特點的軍用軟件質量評價過程。
本文考慮GJB 2786A-2009《軍用軟件開發通用要求》中軟件質量影響因素和軟件特點,對ISO/ IEC 9126軟件質量模型進行裁剪和重新定義,以使其適用于軍用軟件質量評價過程。
GJB 2786A-2009《軍用軟件開發通用要求》中定義了軍用軟件從項目策劃、系統需求分析到驗收、產品評價全過程,其中要求在軟件研制過程中和最終的軟件產品交付階段進行軟件質量評價。
基于目前軍用軟件開發通用要求中定義的軟件研制過程及各階段所產生的階段性產品(文檔、代碼、記錄等),這極大地限制了軟件質量模型的范圍。
如ISO/IEC9126軟件質量模型中的可維護性、易用性主屬性,依據ISO/IEC 9126 Software Engineering-product Quality中對該主屬性的定義,需要在維護階段和用戶使用階段對軟件維護及用戶使用體驗中數據進行收集,并采用用戶評分的方法給出兩個主屬性中各質量度量元的所需數據。但在軍用軟件研制過程中,維護階段和用戶使用階段并不系統地產生上述質量度量元所需數據,這直接導致可維護性和易用性質量主屬性在工程應用中數據不易收集、主屬性無法評價。
故軍用軟件質量評價技術必需依據GJB 2786A-2009《軍用軟件開發通用要求》中定義的軟件研制過程及各階段的輸入輸出。通過對GJB 2786A-2009《軍用軟件開發通用要求》中研制過程的分析,適用于軍用軟件研制過程的軟件質量主屬性包含功能性、可靠性、效率、可移植性4個主屬性;適用于軍用軟件質量評價技術的質量度量元所需數據只能來源于軟件系統需求分析、軟件需求分析、設計、編碼、測試階段數據。
由于軍用軟件大部分為獨立加載的嵌入式軟件,其本身對于可移植性要求不高,故適用于軍用軟件特點的軟件質量主屬性包含功能性、可靠性、效率3個主屬性。
基于對國內外資料和大量工程經驗的分析與總結,確定以下兩種因素會對軍用軟件的質量子屬性及質量度量元產生影響。
● 軟件類型
軍用軟件根據其所在系統可劃分為機電管理系統軟件、控制系統軟件、顯示控制系統軟件等多種不同類型,每種類型的軟件具備自身特有的特性和系統要求,故每種類型的軟件都應有相應的適合于該類軟件的質量屬性及度量元集合,來滿足其特性需要和系統需要。
● 軟件重要度等級
在國內外軟件工程實踐中,不同軟件重要度等級的軟件產品,開發、驗證和驗收等環節具有不同的目標要求。對于重要度高的軟件,需要在軟件生存周期中執行更為嚴格的軟件質量控制才能達到客戶提出的目標和要求,且最終交付的軟件的安全性要求應該更高,質量應該更可靠。因此,不同重要度等級的軟件,其開展軟件質量工作的要求和內容不同,從而對軟件質量模型的屬性及相應度量元產生影響。
2.2.1 軟件類型影響
按照軍用軟件系統功能,可以將軍用軟件劃分為不同的軟件類型。由于不同的軟件類型具有不同的軟件特性,則不同類型軟件具有不同的軟件質量子屬性及度量元集合。
由于不同類型的軍用軟件,其系統對軟件可靠性、安全性要求不同,本文從軍用軟件類型的不同要求為基礎,對軟件子屬性及度量元范圍給出建議,如表1所示,其中度量元的范圍由GJB 2786A-2009《軍用軟件開發通用要求》中各研制階段的輸出確定,其選取過程以及度量元的計算公式、所需數據源收集方法在本文中不進行詳述。

表1 基于軟件類型的軟件子屬性及度量元范圍
2.2.2 軟件重要度等級影響
軟件重要度等級是軍用軟件重點關注的軟件特性,本文參考RTCA/DO-178B Software Considerations in Airborne Systems and Equipment Certification中軟件重要度等級劃分,對軟件子屬性及度量元范圍給出建議如表2所示,其中度量元的范圍由GJB 2786A-2009《軍用軟件開發通用要求》中各研制階段的輸出決定,其選取過程以及度量元的計算公式、所需數據源收集方法在本文中不進行詳述。

表2 基于軟件重要度等級的軟件子屬性及度量元范圍
我們綜合考慮GJB 2786A-2009《軍用軟件開發通用要求》中質量影響因素和軍用軟件特點影響因素,給出特定軍用軟件質量模型的構建原則及屬性說明,以針對不同軍用軟件給出適用于本軟件工程中有效、可操作、易應用的軍用軟件質量模型。
通過對軟件類型和軟件重要度等級的分析,確定了軟件類型和軟件重要度等級,并可依據下列軍用軟件質量模型構建準則,構建針對該軟件的軍用軟件質量模型,其具體步驟如下:
● 分析軟件類型特點依據表1選取軍用軟件質量屬性及度量元集合;
● 依據軟件重要度等級依據表2選取軍用軟件質量屬性及度量元集合;
● 取軟件類型和軟件重要度等級所確定質量屬性及度量元集合的并集。
● 當依據軟件類型所確定的質量屬性及度量元中存在更高軟件重要度等級所確定的質量屬性及度量元時,可依據軟件的重要度等級進行適當增加或裁剪,以滿足實際軍用型號工作的要求;
● 當依據軟件重要度等級確定的質量屬性及度量元不適用于某類型軟件時(屬性無法測量),可以進行適當裁剪,以防止出現由于軟件類型的特點而無法收集某些度量元數據的問題。
以軍用配電系統軟件為例。軍用配電系統軟件的重要度等級為A級,且屬于“電源/電氣/照明/告警”類型軟件,該軟件具有接口復雜特點。
由該軟件類型決定的質量屬性及度量元集合如表3所示。

表3 由軟件類型確定的軍用配電系統軟件質量屬性及度量元
依據表2,由該軟件重要度等級決定的質量屬性及度量元集合如表4所示。
依據本節提出的質量模型構建準則,取表3和表4的并集來確定軍用配電系統軍用軟件質量模型,如圖2所示,其包含3個主屬性,6個子屬性,27個度量元。

表4 由軟件重要度等級確定的軍用配電系統軟件質量屬性及度量元
軍用軟件質量模型中軟件功能性、可靠性、效率3大屬性定義如下。
3.2.1 功能性
當軟件在指定條件下使用時,軟件產品提供滿足明確和隱含要求的功能的能力。其包含適合性、準確性、數據的可交換性、與規范的符合性4個子屬性。
適合性:考察軟件產品為指定的任務和目標提供一組合適功能的能力。其包含軟件需求項數密度、軟件設計單元項數密度、需求實現的覆蓋率、需求的穩定性、需求的可追蹤性5個度量元。
準確性:考察軟件產品提供所需精度要求及準確結果的能力。其包括計算的精準性度量元。
數據的可交換性:考察軟件產品與其它交聯系統、設備的交互能力。其包含數據的可交換性度量元。
與規范的符合性:考察軟件過程、產品與GJB 5000A-2008《軍用軟件研制能力成熟度模型》、軟件需求標準、軟件設計標準、軟件編碼標準的一致性,質量保證評價、配置管理評價的有效性。
3.2.2 可靠性
當軟件在指定條件下使用時,軟件產品維持規定的性能級別的能力。由于軟件本身不會損耗或老化,則主要由軟件需求、設計和代碼中的缺陷影響軟件可靠性。其包含成熟性子屬性。
成熟性:考察軟件產品由缺陷而導致失效的可能程度。其包含代碼缺陷密度,1、2、3級代碼缺陷比率、代碼缺陷解決、測試需求覆蓋率、語句覆蓋率、分支覆蓋率、MC/DC覆蓋率、軟件安全性需求密度、避免失效(基于失效模式)、評審問題解決、內部測試質量11個度量元。
3.2.3 效率
在規定條件下,軟件產品提供適當性能的能力。其包含時間特性子屬性。
時間特性:考察在規定條件下,軟件產品執行其功能時,提供適當響應和處理時間的能力。其包含響應時間(從系統發出指令到得到結果為止所需的時間,該時間必須有指令激發)和處理時間(系統完成自身處理功能所需的時間,該時間無需指令激發)兩個度量元。
本文結合軍用軟件特點,參考了ISO/IEC9126軟件質量模型,考慮了GJB 2786A-2009《軍用軟件開發通用要求》,依據軍用軟件類型、軟件重要度等級方面因素,提出了適用于軍用軟件研制過程及特點的軍用軟件質量模型。
軍用軟件質量模型綜合考慮了目前我國軍用軟件產品的研制階段和過程,考慮了軍用軟件的安全性、可靠性、性能要求,使軟件質量模型在不同類型和重要度等級的軟件系統中易于應用,其符合現階段軍用軟件質量分析工作的要求,能夠融入現有軍用軟件研制過程和驗證過程。工程實踐表明,其能夠為目前軍用軟件質量給出客觀分析評價的模型基礎,為我軍軍用軟件質量評價工作提供有效的技術支撐。
[1] ISO 9126 Software Engineering-product Quality [S]. 2004.
[2] ISO/IEC 14598 Software Product Evaluation[S]. 2004.
[3] GJB 5236-2004 軍用軟件質量度量[S].
[4] GJB 2432A-2009 軍用軟件產品評價[S].
[5] GJB 2786A-2009軍用軟件開發通用要求[S].
[6] 熊策. 軟件質量控制技術的研究與應用[D].碩士學位論文.中南大學. 2004.
[7] William E. Perry. Quality Assurance for Information Systems: Methods. Tools and Techniques[M]. New York: Johnwiley&Sons (September 1991).