郭棟 劉文紅 董冠濤 張碩 陸璐
(1.中國(guó)航天系統(tǒng)科學(xué)與工程研究院 北京市 100048 2.北京跟蹤與通信技術(shù)研究所 北京市 100095)
型號(hào)軟件往往規(guī)模巨大、價(jià)格高昂、型號(hào)繁多、系統(tǒng)復(fù)雜、關(guān)鍵等級(jí)高。參與軟件研制的單位多,同時(shí)能力水平不一,對(duì)型號(hào)軟件的質(zhì)量帶來了較大影響。而現(xiàn)有的基于GJB5000A 來評(píng)價(jià)承制單位軟件研制能力的評(píng)價(jià)模型,仍存在一些局限性。例如:
(1)對(duì)軟件管理要求與技術(shù)要求權(quán)重一樣,而且管理要求比技術(shù)要求多。以三級(jí)為例,技術(shù)要求140 條,管理要求256 條,評(píng)價(jià)時(shí)權(quán)重一樣。通過調(diào)研發(fā)現(xiàn),研制單位在實(shí)施要求時(shí)投入大量的精力在管理要求上,技術(shù)要求并沒有得到有效提升。因此,需要深入研究如何在現(xiàn)有軟件研制能力評(píng)價(jià)方法的基礎(chǔ)上,突出型號(hào)軟件研制技術(shù)能力要求,以便引導(dǎo)承制單位更加注重軟件研制技術(shù)能力的提升[1]。
(2)現(xiàn)有的評(píng)價(jià)方法重點(diǎn)關(guān)注了開發(fā)過程的能力評(píng)價(jià),對(duì)聯(lián)調(diào)、試驗(yàn)和交付后出現(xiàn)的問題無法有效評(píng)價(jià)。例如:研制單位在接受評(píng)價(jià)時(shí),不反映聯(lián)調(diào)、試驗(yàn)和交付后出現(xiàn)的問題,評(píng)價(jià)組將無法準(zhǔn)確了解軟件的實(shí)際狀況[2]。
(3)目前采用的研制能力評(píng)價(jià)方法,是對(duì)研制單位自薦項(xiàng)目進(jìn)行評(píng)價(jià),只體現(xiàn)過程最優(yōu)的四個(gè)項(xiàng)目的研制能力,未能對(duì)研制單位的軟件整體和歷史數(shù)據(jù)進(jìn)行分析評(píng)價(jià)。
綜上所述,需要在現(xiàn)有軟件研制能力評(píng)價(jià)方法的基礎(chǔ)上,針對(duì)型號(hào)軟件研制的特點(diǎn),制定對(duì)型號(hào)軟件研制能力進(jìn)行評(píng)價(jià)的方法。
20世紀(jì)70年度中期,美國(guó)國(guó)防部就組織力量研究軟件項(xiàng)目失敗的原因,統(tǒng)計(jì)發(fā)現(xiàn)失敗的軟件項(xiàng)目中70%是由于管理不善造成的,從而掀起了研究軟件工程化管理的熱潮。為評(píng)價(jià)型號(hào)軟件承研機(jī)構(gòu)的能力,研究和發(fā)布了CMMI,規(guī)定了必須具有相應(yīng)軟件研制能力成熟度等級(jí)的機(jī)構(gòu)才能承擔(dān)研制合同。CMMI 中包括了對(duì)軟件研制機(jī)構(gòu)的管理、技術(shù)、組織、支持等各方面的要求。
根據(jù)2015年度美國(guó)國(guó)防部發(fā)布的《軟件概況》中的數(shù)據(jù),其軟件承研機(jī)構(gòu)中軟件能力成熟度等級(jí)(CMMI)100%達(dá)到三級(jí)以上,達(dá)到最高級(jí)五級(jí)的占比57%[3]。具體數(shù)據(jù)如圖1所示。
圖1:美國(guó)防部軟件承研機(jī)構(gòu)的成熟度等級(jí)分布
目前,隨著工作的一步步深入推進(jìn),型號(hào)軟件研制能力評(píng)價(jià)成效顯著,科學(xué)化、信息化水平已逐步提高,但仍存在如引言中所述的受理審查項(xiàng)可操作性不強(qiáng),研制能力評(píng)價(jià)更關(guān)注軟件開發(fā)過程能力,對(duì)軟件產(chǎn)品交付后的問題無法評(píng)價(jià),現(xiàn)階段對(duì)管理要求和工程要求重點(diǎn)不突出等問題。
針對(duì)軟件研制能力進(jìn)行評(píng)價(jià)的過程中,考慮到如果模型中包含的評(píng)價(jià)指標(biāo)數(shù)量過多,會(huì)使處理過程及建模過程復(fù)雜化,指標(biāo)重要性程度的確定也將變得困難,改變系統(tǒng)本質(zhì)的可能性將升高;相反,若評(píng)價(jià)指標(biāo)數(shù)量過少,則難以客觀、全面的刻畫系統(tǒng)發(fā)展?fàn)顟B(tài)。
軟件的研制能力一方面需要依靠軟件開發(fā)與測(cè)試人員的技術(shù)能力,另一方面,合理的軟件開發(fā)過程管理能夠降低開發(fā)過程中不必要的失誤,利于后期維護(hù)與提高軟件質(zhì)量。高質(zhì)量的軟件離不開高質(zhì)量的軟件研制過程。軟件的研制能力,還直接與其研制出的產(chǎn)品質(zhì)量相掛鉤,在實(shí)際項(xiàng)目累積數(shù)據(jù)中不斷更新。
考慮到以上因素,本文從軟件研制過程側(cè)面和項(xiàng)目/產(chǎn)品累積數(shù)據(jù)側(cè)面這樣兩個(gè)大的方面來對(duì)型號(hào)軟件研制能力進(jìn)行綜合評(píng)價(jià)。其中,以軟件研制能力成熟度評(píng)分作為研制單位的研制過程側(cè)面參數(shù),以該研制單位當(dāng)前已研制的各個(gè)項(xiàng)目/產(chǎn)品的累積數(shù)據(jù)為研制單位產(chǎn)品質(zhì)量側(cè)面參數(shù),分別進(jìn)行獲取。具體結(jié)構(gòu)如圖2所示。
圖2:軟件研制能力模型框架
考慮到該軟件研制能力評(píng)價(jià)方法的實(shí)施,是由軟件研制總體單位來對(duì)下方各子系統(tǒng)研制單位進(jìn)行評(píng)價(jià),總體單位在匯總各型號(hào)數(shù)據(jù)時(shí)可以拿到大量歷史承制軟件項(xiàng)目的質(zhì)量信息,因此這樣搭建的評(píng)價(jià)模型在實(shí)際操作中是可行的。
3.2.1 GJB 5000A 的評(píng)分成績(jī)與歸一化處理
評(píng)價(jià)機(jī)構(gòu)對(duì)GJB 5000A 的評(píng)分方式使用SCAMPI 方法[4]進(jìn)行,由被評(píng)單位自行提供自己的項(xiàng)目來進(jìn)行度量,根據(jù)這些項(xiàng)目的相關(guān)質(zhì)量數(shù)據(jù),對(duì)每個(gè)實(shí)踐域進(jìn)行評(píng)價(jià),給出每個(gè)實(shí)踐以S/L/P/NY 的分值。最終的統(tǒng)計(jì)評(píng)分采用木桶原理式,以短板作為能力的記錄點(diǎn)。一個(gè)目標(biāo)未實(shí)現(xiàn),則整體過程域評(píng)價(jià)為不通過;一個(gè)過程域不通過,則本級(jí)別評(píng)價(jià)不通過。通過對(duì)應(yīng)級(jí)別軟件研制能力成熟度的單位,統(tǒng)計(jì)其所有實(shí)踐,最終得到的得分成績(jī)記為A。A 必然是大于6 分,最大能得到8 分。
GJB 5000A 一共分為5 個(gè)等級(jí),考慮到不同等級(jí)的要求不同,本文在讀入對(duì)應(yīng)的GJB 5000A 得分后,還要根據(jù)具體單位的成熟度通過權(quán)值對(duì)分?jǐn)?shù)進(jìn)行調(diào)整。例如:讀入的原始GJB 5000A 得分成績(jī)相同時(shí),成熟度三級(jí)的單位在本算法中的得分成績(jī)應(yīng)比成熟度二級(jí)的得分更高。
本文設(shè)置成熟度5 級(jí)權(quán)重為1.0,成熟度等級(jí)越低權(quán)重越低。如果直接讀出某單位的軟件研制能力成熟度打分成績(jī)?yōu)锳,該單位的成熟度等級(jí)為N0,假設(shè)隨著熟度等級(jí)每降一級(jí)減少的權(quán)重為p0,則該單位軟件研制能力成熟度打分成績(jī)得分計(jì)算公式為:
其中,p0初始值可以根據(jù)專家經(jīng)驗(yàn)確定,后期累積歷史數(shù)據(jù)后,可通過對(duì)原始數(shù)據(jù)經(jīng)過數(shù)學(xué)處理獲取權(quán)重來進(jìn)行進(jìn)一步調(diào)整。A 為0 ~8 之間的連續(xù)值,PSCM取值范圍即為0 ~8。
歸一化后軟件研制能力成熟度打分成績(jī)得分計(jì)算公式為:
3.2.2 已研制每項(xiàng)目研制過程評(píng)價(jià)與歸一化處理
該階段考察的指標(biāo)包括需求評(píng)審問題數(shù)、單元測(cè)試問題數(shù)、測(cè)試用例數(shù)等。每個(gè)階段的指標(biāo)都有一個(gè)基準(zhǔn)值,與基準(zhǔn)值偏差越大,研制過程評(píng)價(jià)得分越低。
設(shè)所有參與評(píng)價(jià)的單位中考察指標(biāo)數(shù)(或者給定標(biāo)準(zhǔn)的考察指標(biāo)數(shù))最多為nmax,PYZ歸一化后計(jì)算公式為:
3.2.3 已研制每產(chǎn)品交付后問題評(píng)價(jià)與歸一化處理
交付后問題評(píng)價(jià)考察的指標(biāo)包括發(fā)現(xiàn)問題難度、問題嚴(yán)重等級(jí)、發(fā)現(xiàn)問題的階段、發(fā)現(xiàn)問題數(shù)量。
針對(duì)每個(gè)問題都具有發(fā)現(xiàn)問題難度、問題嚴(yán)重等級(jí)、發(fā)現(xiàn)問題的發(fā)生階段三個(gè)屬性,發(fā)現(xiàn)問題難度越小、問題嚴(yán)重等級(jí)越高、發(fā)現(xiàn)問題的發(fā)生階段越靠后,最終的評(píng)價(jià)分?jǐn)?shù)越低。
設(shè)發(fā)現(xiàn)問題難度包括1、2、3、4、5 五個(gè)等級(jí)。其中,等級(jí)1為執(zhí)行軟件基本功能即能發(fā)現(xiàn)的問題;等級(jí)2 為需要進(jìn)行一定的用例設(shè)計(jì)方法,執(zhí)行到較偏的邏輯分支才能發(fā)現(xiàn)的問題;如此遞推直至等級(jí)5 為極為隱蔽難以發(fā)現(xiàn)的問題。發(fā)現(xiàn)問題難度每增加一個(gè)等級(jí),則權(quán)重增加p1,發(fā)現(xiàn)的問題難度等級(jí)為N1,則發(fā)現(xiàn)問題難度對(duì)交付后軟件問題評(píng)價(jià)結(jié)果權(quán)重公式為:
設(shè)發(fā)現(xiàn)問題嚴(yán)重等級(jí)包括1(致命)、2(嚴(yán)重)、3(一般)、4(輕微)、5(建議)五個(gè)等級(jí),發(fā)現(xiàn)問題嚴(yán)重等級(jí)每降低一個(gè)等級(jí)(對(duì)應(yīng)的值增加),則權(quán)重增加p2,發(fā)現(xiàn)的問題難度等級(jí)為N2,則發(fā)現(xiàn)問題難度對(duì)交付后軟件問題評(píng)價(jià)結(jié)果權(quán)重公式為:
設(shè)發(fā)現(xiàn)問題發(fā)生階段包括方案、需求、設(shè)計(jì)、編碼、使用等,假設(shè)劃分階段數(shù)為S,按階段先后順序?qū)?yīng)的標(biāo)注值為1、2、3、…、S,發(fā)現(xiàn)問題發(fā)生階段往后一個(gè)階段,則權(quán)重增加p3,發(fā)現(xiàn)問題發(fā)生階段對(duì)應(yīng)值為N3,則發(fā)現(xiàn)問題難度對(duì)交付后軟件問題評(píng)價(jià)結(jié)果權(quán)重公式為:
設(shè)該階段總分為B,如果在軟件交付后共發(fā)現(xiàn)k 個(gè)問題,第i 問題對(duì)應(yīng)的發(fā)現(xiàn)問題難度、問題嚴(yán)重等級(jí)、發(fā)現(xiàn)問題的發(fā)生階段指標(biāo)值分別為(當(dāng)未發(fā)現(xiàn)問題,即k=0 時(shí),),對(duì)應(yīng)該階段的得分值權(quán)重為:
同前,p1,p2,p3初始值可以根據(jù)專家經(jīng)驗(yàn)確定,在后期累積歷史數(shù)據(jù)后,可通過對(duì)原始數(shù)據(jù)經(jīng)過數(shù)學(xué)處理獲取權(quán)重來進(jìn)行調(diào)整。
PJF歸一化后計(jì)算公式為:
3.2.4 綜合評(píng)價(jià)方法
綜合評(píng)價(jià)方法采用加權(quán)平均的方式。假設(shè)綜合評(píng)價(jià)得分滿分為100,三個(gè)方面的評(píng)價(jià)結(jié)果權(quán)重為W1,W2,W3,且滿足W1+W2+W3=1。
則綜合評(píng)價(jià)得分Q 的計(jì)算公式為:
為了驗(yàn)證本文所提的型號(hào)軟件研制能力評(píng)價(jià)方法,本文選擇了兩個(gè)型號(hào)軟件研制單位來進(jìn)行試點(diǎn)應(yīng)用。兩個(gè)單位均已通過GJB5000A 能力評(píng)價(jià)二級(jí),且在同一型號(hào)中分別承擔(dān)了多個(gè)軟件配置項(xiàng)的研制。
針對(duì)單位A,首先讀取其軟件研制能力成熟度二級(jí)評(píng)分成績(jī)?nèi)绫?所示。
表1:?jiǎn)挝籄 的軟件研制能力成熟度二級(jí)評(píng)分
該研制單位在本型號(hào)的配套軟件中負(fù)責(zé)了3 個(gè)軟件配置項(xiàng)的研制,每個(gè)軟件配置項(xiàng)的研制均可視為一個(gè)獨(dú)立研制項(xiàng)目進(jìn)行統(tǒng)計(jì)。對(duì)應(yīng)這3 個(gè)軟件配置項(xiàng),其研制過程中的相關(guān)指標(biāo)統(tǒng)計(jì)如表2所示。
表2:?jiǎn)挝籄 負(fù)責(zé)的配置項(xiàng)相關(guān)指標(biāo)
配置項(xiàng)1 在交付后發(fā)現(xiàn)的軟件問題情況如表3所示。
表3:?jiǎn)挝籄 配置項(xiàng)1 的問題
配置項(xiàng)2 在交付后發(fā)現(xiàn)的軟件問題情況如表4所示。
表4:?jiǎn)挝籄 配置項(xiàng)2 的問題
配置項(xiàng)3 在交付后發(fā)現(xiàn)的軟件問題情況如表5所示。
表5:?jiǎn)挝籄 配置項(xiàng)3 的問題
在將該單位的數(shù)據(jù)代入了專家經(jīng)驗(yàn)相關(guān)參數(shù)p 和a 的取值矩陣后進(jìn)行計(jì)算,得到P1=0.871,P2=0.881,P3=0.936,最終得分Q=89.6分。
針對(duì)單位B,首先讀取其軟件研制能力成熟度二級(jí)評(píng)分成績(jī)?nèi)绫?所示。
表6:?jiǎn)挝籅 的軟件研制能力成熟度二級(jí)評(píng)分
該研制單位在本型號(hào)的配套軟件中負(fù)責(zé)了2 個(gè)軟件配置項(xiàng)的研制,每個(gè)軟件配置項(xiàng)的研制均可視為一個(gè)獨(dú)立研制項(xiàng)目進(jìn)行統(tǒng)計(jì)。對(duì)應(yīng)這2 個(gè)軟件配置項(xiàng),其研制過程中的相關(guān)指標(biāo)統(tǒng)計(jì)如表7所示。
表7:?jiǎn)挝籅 負(fù)責(zé)的配置項(xiàng)相關(guān)指標(biāo)
配置項(xiàng)1 在交付后發(fā)現(xiàn)的軟件問題情況如表8所示。
表8:?jiǎn)挝籅 配置項(xiàng)1 的問題
配置項(xiàng)2 在交付后發(fā)現(xiàn)的軟件問題情況如表9所示。
H.264的編碼算法有:幀內(nèi)預(yù)測(cè)編碼,幀間預(yù)測(cè)編碼,DCT變換和量化,熵編碼。 幀間預(yù)測(cè)編碼消耗時(shí)間占到整套算法運(yùn)行時(shí)間80%左右,所以H.264編碼器算法優(yōu)化的重點(diǎn)就是幀間預(yù)測(cè)編碼算法的優(yōu)化。
表9:?jiǎn)挝籅 配置項(xiàng)2 的問題
在將該單位的數(shù)據(jù)代入了專家經(jīng)驗(yàn)相關(guān)參數(shù)p 的取值矩陣后進(jìn)行計(jì)算,P1=0.888,P2=0.884,P3=0.818,最終得分Q=86.3 分。
如表10所示,從兩個(gè)單位原始的軟件研制能力打分情況來看,兩個(gè)單位均為軟件成熟度二級(jí)單位,得分情況單位B 略優(yōu)于單位A。
表10:兩個(gè)單位的得分比較
而從該型號(hào)中所承擔(dān)的軟件研制任務(wù)情況看,單位A 承接的軟件中,交付后的問題尤其較易檢出的低級(jí)錯(cuò)誤相對(duì)較少,但存在部分需求、設(shè)計(jì)階段的問題未在研制過程中及時(shí)檢出。單位B 所承接的軟件中交付后的問題數(shù)量相對(duì)更多,級(jí)別也相對(duì)高一些,但主要為編碼階段發(fā)生的問題。在交付后仍存在部分較易檢出的問題未在研制過程中予以檢出,說明其管理能力較好(與原始軟件研制能力得分情況一致)但技術(shù)能力略弱。
以上情況體現(xiàn)在兩個(gè)單位的最終得分中,單位B 的得分從原來的單純的軟件研制能力評(píng)分高于A 單位,變?yōu)榱嗽诟倪M(jìn)后的軟件研制能力綜合評(píng)價(jià)方法下低于A 單位,說明該評(píng)價(jià)方法將各單位實(shí)際的技術(shù)能力和研制項(xiàng)目的產(chǎn)品質(zhì)量也納入了考慮。
本文的主要技術(shù)創(chuàng)新點(diǎn)包括:
(1)提供了一種基于過程評(píng)估和測(cè)試結(jié)果的軟件質(zhì)量評(píng)價(jià)方法,基于軟件研制過程中的質(zhì)量評(píng)審問題、GJB5000A 評(píng)分和年審問題、以及當(dāng)前軟件研制測(cè)試過程中的問題來綜合計(jì)算,得到所研制軟件質(zhì)量的綜合評(píng)估結(jié)果。
本文在現(xiàn)有軟件質(zhì)量評(píng)價(jià)研究成果的基礎(chǔ)上,提出了一種基于過程評(píng)估和測(cè)試結(jié)果的軟件質(zhì)量評(píng)價(jià)方法,立足于總體單位所能方便獲得的質(zhì)量數(shù)據(jù),快速便捷評(píng)估各軟件的質(zhì)量。該軟件質(zhì)量評(píng)價(jià)方法可在型號(hào)軟件領(lǐng)域推廣實(shí)施,綜合軟件研制過程要素和測(cè)試結(jié)果來快速度量軟件質(zhì)量。