樂(lè)亮,張寶林,高員
(工業(yè)和信息化部電子第五研究所,廣州510610)
近年來(lái),軟件質(zhì)量對(duì)整個(gè)軟件產(chǎn)品的影響日益加深,通過(guò)對(duì)軟件質(zhì)量進(jìn)行度量和評(píng)價(jià),進(jìn)而保證軟件質(zhì)量已經(jīng)是指導(dǎo)軟件生命周期中各階段工作的基本原則,也是軟件利益相關(guān)方(如開(kāi)發(fā)方、集成方、需方、所有者、維護(hù)者、合同方、質(zhì)量保證和控制人員、用戶(hù))非常關(guān)心的問(wèn)題。這個(gè)過(guò)程在軟件生命周期過(guò)程中是一直持續(xù)的、不可或缺的,已經(jīng)有許多專(zhuān)家、學(xué)者在對(duì)軟件質(zhì)量的度量和評(píng)價(jià)方法進(jìn)行研究[1]。
對(duì)軟件的質(zhì)量進(jìn)行全面度量和評(píng)價(jià)是保證相關(guān)方利益的關(guān)鍵因素,在軟件中,可以通過(guò)定義與相關(guān)方目標(biāo)相關(guān)的質(zhì)量特性來(lái)實(shí)現(xiàn)度量和評(píng)價(jià),從而實(shí)現(xiàn)對(duì)軟件質(zhì)量的度量和評(píng)價(jià);同時(shí),盡可能使用經(jīng)確認(rèn)的或被廣泛認(rèn)可的措施和測(cè)量方法,對(duì)于度量和評(píng)價(jià)軟件質(zhì)量至關(guān)重要[2]。綜上所述,本文基于GB/T 25000.10-2016 標(biāo)準(zhǔn)的軟件質(zhì)量模型設(shè)計(jì)一個(gè)軟件質(zhì)量度量框架,并以某網(wǎng)絡(luò)通信服務(wù)軟件為例,使用該度量框架進(jìn)行軟件質(zhì)量度量。
軟件的質(zhì)量是指該軟件滿(mǎn)足其不同利益相關(guān)方所明確的或隱含的要求的程度,這些明確的或隱含的要求是通過(guò)標(biāo)準(zhǔn)中的質(zhì)量模型予以表達(dá)的,標(biāo)準(zhǔn)中把軟件質(zhì)量分類(lèi)為一些特性,并在某些情況中進(jìn)一步被分解為子特性(某些子特性又被分解為子子特性)。這一層次化的分解,為軟件質(zhì)量分級(jí)提供了便利。
把一個(gè)軟件可測(cè)量的、與質(zhì)量相關(guān)的屬性被稱(chēng)為與質(zhì)量測(cè)度相關(guān)聯(lián)的質(zhì)量屬性。除去一些可直接測(cè)量該特性或子特性,針對(duì)不可直接測(cè)量的質(zhì)量特性或子特性,有必要標(biāo)識(shí)那些覆蓋該特性或子特性的一組屬性,獲得每一個(gè)質(zhì)量測(cè)度,并通過(guò)計(jì)算把它們組合起來(lái),以獲得對(duì)應(yīng)質(zhì)量特性或子特性的一個(gè)導(dǎo)出的質(zhì)量測(cè)度。下圖給出了質(zhì)量特性、子特性和質(zhì)量屬性之間的關(guān)系。
圖1 質(zhì)量模型結(jié)構(gòu)圖
當(dāng)前,GB/T 25000.10-2016 標(biāo)準(zhǔn)提供了2 個(gè)質(zhì)量模型:使用質(zhì)量模型和產(chǎn)品質(zhì)量模型。這兩個(gè)質(zhì)量模型合起來(lái)作為一個(gè)框架,以確保所有質(zhì)量特性得到考慮。這些模型為相關(guān)的廣泛利益相關(guān)方,如軟件開(kāi)發(fā)方、集成方、需方、所有者、維護(hù)者、合同方、質(zhì)量保證和控制人員、用戶(hù),提供了一個(gè)質(zhì)量特性集。
使用質(zhì)量模型將使用質(zhì)量屬性分為5 個(gè)特性:有效性、效率、滿(mǎn)意度、抗風(fēng)險(xiǎn)和周境覆蓋。每個(gè)特性都可以被賦予到利益相關(guān)方的不同的活動(dòng)中,例如操作人員的交互或開(kāi)發(fā)人員的維護(hù)。軟件的使用質(zhì)量描述了產(chǎn)品(系統(tǒng)或軟件產(chǎn)品)對(duì)利益相關(guān)方造成的影響,它是由軟件、硬件和運(yùn)行環(huán)境的質(zhì)量,以及用戶(hù)、任務(wù)和社會(huì)環(huán)境的特性所決定的。所有這些因素均有利于軟件的使用質(zhì)量。
圖2 使用質(zhì)量模型
產(chǎn)品質(zhì)量模型將軟件產(chǎn)品質(zhì)量屬性分為8 個(gè)特性:功能性、性能效率、兼容性、易用性、可靠性、信息安全性、維護(hù)性和可移植性,每個(gè)特性由一組相關(guān)子特性組成,產(chǎn)品質(zhì)量模型可以應(yīng)用于軟件產(chǎn)品或者包含軟件的計(jì)算機(jī)系統(tǒng)。
圖3 產(chǎn)品質(zhì)量模型
在產(chǎn)品質(zhì)量模型內(nèi),還包括用來(lái)測(cè)量軟件源代碼的某些屬性的單純的內(nèi)部質(zhì)量度量,如軟件的可追蹤性、圈復(fù)雜度、信息流復(fù)雜度、模塊性、代碼規(guī)模、數(shù)據(jù)耦合的模塊率、功能耦合的模塊率、條件語(yǔ)句、變量名的適當(dāng)性、條件語(yǔ)句、程序語(yǔ)句、統(tǒng)一數(shù)據(jù)基準(zhǔn)、平均模塊大小等,它們將影響軟件產(chǎn)品質(zhì)量的部分特性或子特性[3]。
依據(jù)GB/T 25000.10-2016 標(biāo)準(zhǔn),本文設(shè)計(jì)了一個(gè)高層描述的框架實(shí)例,本實(shí)例所示的概念可用不同的定制形式來(lái)實(shí)現(xiàn),以適應(yīng)個(gè)體、組織或者項(xiàng)目,所以只要能理解基本概念,也可以把這些概念映射為其他的軟件生存周期模型[4]。為了測(cè)量軟件可交付項(xiàng)的質(zhì)量(即使用質(zhì)量、產(chǎn)品質(zhì)量),需要建立一個(gè)模型,它需要把軟件開(kāi)發(fā)生存周期過(guò)程的活動(dòng)與其關(guān)鍵的可交付項(xiàng)及相關(guān)的質(zhì)量模型聯(lián)系起來(lái)。本文建立的模型如表1所示。
表1 質(zhì)量度量模型
建好模型后,在開(kāi)發(fā)周期中對(duì)質(zhì)量的評(píng)價(jià)分為下列步驟。步驟1 必須在需求分析活動(dòng)中完成,步驟2到5 必須在上述定義的每個(gè)過(guò)程活動(dòng)中重復(fù)進(jìn)行。
步驟1:質(zhì)量需求的確定
對(duì)質(zhì)量模型中定義的每個(gè)質(zhì)量特性和子特性,可參考下表對(duì)每類(lèi)測(cè)量(使用質(zhì)量、產(chǎn)品質(zhì)量)確定用戶(hù)要求的權(quán)重。根據(jù)分配的相對(duì)權(quán)重,允許評(píng)價(jià)者將精力集中在重要的特性上。
表2 用戶(hù)要求的特性與權(quán)重
步驟2:評(píng)價(jià)的規(guī)格說(shuō)明
質(zhì)量模型中定義的每個(gè)質(zhì)量子特性均標(biāo)識(shí)要應(yīng)用的度量和要求的級(jí)別,以便達(dá)到在步驟1 中設(shè)定的用戶(hù)要求,并按表3 的例子加以記錄。
表3 質(zhì)量度量表
步驟3:評(píng)價(jià)的設(shè)計(jì)
制定一個(gè)包括可交付項(xiàng)的測(cè)量計(jì)劃(可參考表4),這些交付項(xiàng)用作要實(shí)施的測(cè)量過(guò)程的輸入。
表4 測(cè)量計(jì)劃
步驟4:評(píng)價(jià)的執(zhí)行
執(zhí)行評(píng)價(jià)計(jì)劃,填寫(xiě)表3 例子中的每一列。步驟5:反饋給組織
一旦所有測(cè)量均已完成,要把結(jié)果映射到表1 中并以報(bào)告的形式將結(jié)論寫(xiě)成文件。同時(shí)標(biāo)識(shí)產(chǎn)品質(zhì)量需要改進(jìn)的特定區(qū)域以使其滿(mǎn)足需要。
本文以某網(wǎng)絡(luò)通信服務(wù)軟件為例,應(yīng)用上述設(shè)計(jì)的框架實(shí)例,進(jìn)行軟件質(zhì)量度量。首先,根據(jù)軟件需求與用戶(hù)要求,選取表5 中的特性、子特性進(jìn)行度量,并確定其權(quán)重。
表5 某網(wǎng)絡(luò)通信服務(wù)軟件度量特性權(quán)重
表6 某網(wǎng)絡(luò)通信服務(wù)軟件度量特性權(quán)值
綜合評(píng)價(jià)軟件包括兩個(gè)因子:軟件質(zhì)量特性和軟件的純內(nèi)部質(zhì)量特性,即:
綜合特性=ω1×軟件質(zhì)量特性+ω2×純內(nèi)部質(zhì)量特性
其中:ω1 和ω2 是兩個(gè)綜合特性因子的加權(quán)系數(shù),本文中加權(quán)系數(shù)根據(jù)專(zhuān)家評(píng)審評(píng)分確定,ω1=0.5,ω2=0.5。然后根據(jù)以下公式評(píng)價(jià)軟件各質(zhì)量特性:
計(jì)算結(jié)果如表7 所示。
表7
由于軟件產(chǎn)品的最終度量結(jié)果以加權(quán)和的方式進(jìn)行計(jì)算,因此為了便于計(jì)算,要將所有的度量元的取值范圍盡量控制在0.0 到1.0 之間、且確保取值趨于1.0越好,因此測(cè)量值取值范圍不在0.0 到1.0 之間的度量元要做“歸一化”處理。建議產(chǎn)品最終測(cè)量值的優(yōu)劣評(píng)價(jià)等級(jí)如下:
(1)0.9-1.0 為優(yōu)
(2)0.8-0.89 為良
(3)0.6-0.79 為合格
(4)0.59 以下為不合格
依據(jù)上述評(píng)價(jià)等級(jí),某網(wǎng)絡(luò)通信服務(wù)軟件質(zhì)量度量結(jié)果為0.835,評(píng)級(jí)為良。
軟件質(zhì)量度量的目的使軟件的需方、供方和用戶(hù)能夠認(rèn)識(shí)到軟件質(zhì)量特性的重要性,針對(duì)具體產(chǎn)品、項(xiàng)目提出適當(dāng)?shù)馁|(zhì)量模型,并能有效地開(kāi)展質(zhì)量度量。作為需方在項(xiàng)目論證時(shí)或在簽訂合同時(shí),就能提出一些質(zhì)量要求,并且盡量做到合理。作為供方(開(kāi)發(fā)者)在項(xiàng)目論證或需求分析時(shí),既要分析質(zhì)量要求的合理性,又要分析如何滿(mǎn)足需方或用戶(hù)的質(zhì)量要求,同時(shí)要考慮滿(mǎn)足需方或用戶(hù)潛在的隱含的質(zhì)量要求。一旦質(zhì)量需求確定后,就應(yīng)對(duì)這些質(zhì)量需求分析配置:即明確哪些過(guò)程、哪些活動(dòng)、哪些階段要控制、把握哪些質(zhì)量需求。特別是要關(guān)注過(guò)程本身的質(zhì)量。適時(shí)開(kāi)展產(chǎn)品質(zhì)量度量或使用質(zhì)量度量。以使軟件產(chǎn)品最終滿(mǎn)足用戶(hù)或需方的質(zhì)量要求。
針對(duì)具體軟件產(chǎn)品實(shí)施軟件質(zhì)量度量時(shí),要確定評(píng)價(jià)指標(biāo)。也就是說(shuō)衡量一個(gè)軟件產(chǎn)品的好壞,質(zhì)量特性、子特性及度量元的合格與否要給出準(zhǔn)繩,給出每個(gè)特性、子特性及度量元的權(quán)重。這樣數(shù)據(jù)需要通過(guò)長(zhǎng)期積累、總結(jié)獲得,同時(shí)也需要經(jīng)過(guò)專(zhuān)家的評(píng)估確定。因此,在基于GB/T 25000.10-2016 質(zhì)量模型的軟件質(zhì)量度量還需要做大量的研究實(shí)踐工作,深入鉆研。