樂亮,張寶林,高員
(工業和信息化部電子第五研究所,廣州510610)
近年來,軟件質量對整個軟件產品的影響日益加深,通過對軟件質量進行度量和評價,進而保證軟件質量已經是指導軟件生命周期中各階段工作的基本原則,也是軟件利益相關方(如開發方、集成方、需方、所有者、維護者、合同方、質量保證和控制人員、用戶)非常關心的問題。這個過程在軟件生命周期過程中是一直持續的、不可或缺的,已經有許多專家、學者在對軟件質量的度量和評價方法進行研究[1]。
對軟件的質量進行全面度量和評價是保證相關方利益的關鍵因素,在軟件中,可以通過定義與相關方目標相關的質量特性來實現度量和評價,從而實現對軟件質量的度量和評價;同時,盡可能使用經確認的或被廣泛認可的措施和測量方法,對于度量和評價軟件質量至關重要[2]。綜上所述,本文基于GB/T 25000.10-2016 標準的軟件質量模型設計一個軟件質量度量框架,并以某網絡通信服務軟件為例,使用該度量框架進行軟件質量度量。
軟件的質量是指該軟件滿足其不同利益相關方所明確的或隱含的要求的程度,這些明確的或隱含的要求是通過標準中的質量模型予以表達的,標準中把軟件質量分類為一些特性,并在某些情況中進一步被分解為子特性(某些子特性又被分解為子子特性)。這一層次化的分解,為軟件質量分級提供了便利。
把一個軟件可測量的、與質量相關的屬性被稱為與質量測度相關聯的質量屬性。除去一些可直接測量該特性或子特性,針對不可直接測量的質量特性或子特性,有必要標識那些覆蓋該特性或子特性的一組屬性,獲得每一個質量測度,并通過計算把它們組合起來,以獲得對應質量特性或子特性的一個導出的質量測度。下圖給出了質量特性、子特性和質量屬性之間的關系。

圖1 質量模型結構圖
當前,GB/T 25000.10-2016 標準提供了2 個質量模型:使用質量模型和產品質量模型。這兩個質量模型合起來作為一個框架,以確保所有質量特性得到考慮。這些模型為相關的廣泛利益相關方,如軟件開發方、集成方、需方、所有者、維護者、合同方、質量保證和控制人員、用戶,提供了一個質量特性集。
使用質量模型將使用質量屬性分為5 個特性:有效性、效率、滿意度、抗風險和周境覆蓋。每個特性都可以被賦予到利益相關方的不同的活動中,例如操作人員的交互或開發人員的維護。軟件的使用質量描述了產品(系統或軟件產品)對利益相關方造成的影響,它是由軟件、硬件和運行環境的質量,以及用戶、任務和社會環境的特性所決定的。所有這些因素均有利于軟件的使用質量。

圖2 使用質量模型
產品質量模型將軟件產品質量屬性分為8 個特性:功能性、性能效率、兼容性、易用性、可靠性、信息安全性、維護性和可移植性,每個特性由一組相關子特性組成,產品質量模型可以應用于軟件產品或者包含軟件的計算機系統。

圖3 產品質量模型
在產品質量模型內,還包括用來測量軟件源代碼的某些屬性的單純的內部質量度量,如軟件的可追蹤性、圈復雜度、信息流復雜度、模塊性、代碼規模、數據耦合的模塊率、功能耦合的模塊率、條件語句、變量名的適當性、條件語句、程序語句、統一數據基準、平均模塊大小等,它們將影響軟件產品質量的部分特性或子特性[3]。
依據GB/T 25000.10-2016 標準,本文設計了一個高層描述的框架實例,本實例所示的概念可用不同的定制形式來實現,以適應個體、組織或者項目,所以只要能理解基本概念,也可以把這些概念映射為其他的軟件生存周期模型[4]。為了測量軟件可交付項的質量(即使用質量、產品質量),需要建立一個模型,它需要把軟件開發生存周期過程的活動與其關鍵的可交付項及相關的質量模型聯系起來。本文建立的模型如表1所示。

表1 質量度量模型
建好模型后,在開發周期中對質量的評價分為下列步驟。步驟1 必須在需求分析活動中完成,步驟2到5 必須在上述定義的每個過程活動中重復進行。
步驟1:質量需求的確定
對質量模型中定義的每個質量特性和子特性,可參考下表對每類測量(使用質量、產品質量)確定用戶要求的權重。根據分配的相對權重,允許評價者將精力集中在重要的特性上。

表2 用戶要求的特性與權重
步驟2:評價的規格說明
質量模型中定義的每個質量子特性均標識要應用的度量和要求的級別,以便達到在步驟1 中設定的用戶要求,并按表3 的例子加以記錄。

表3 質量度量表
步驟3:評價的設計
制定一個包括可交付項的測量計劃(可參考表4),這些交付項用作要實施的測量過程的輸入。

表4 測量計劃
步驟4:評價的執行
執行評價計劃,填寫表3 例子中的每一列。步驟5:反饋給組織
一旦所有測量均已完成,要把結果映射到表1 中并以報告的形式將結論寫成文件。同時標識產品質量需要改進的特定區域以使其滿足需要。
本文以某網絡通信服務軟件為例,應用上述設計的框架實例,進行軟件質量度量。首先,根據軟件需求與用戶要求,選取表5 中的特性、子特性進行度量,并確定其權重。

表5 某網絡通信服務軟件度量特性權重

表6 某網絡通信服務軟件度量特性權值
綜合評價軟件包括兩個因子:軟件質量特性和軟件的純內部質量特性,即:
綜合特性=ω1×軟件質量特性+ω2×純內部質量特性
其中:ω1 和ω2 是兩個綜合特性因子的加權系數,本文中加權系數根據專家評審評分確定,ω1=0.5,ω2=0.5。然后根據以下公式評價軟件各質量特性:

計算結果如表7 所示。

表7
由于軟件產品的最終度量結果以加權和的方式進行計算,因此為了便于計算,要將所有的度量元的取值范圍盡量控制在0.0 到1.0 之間、且確保取值趨于1.0越好,因此測量值取值范圍不在0.0 到1.0 之間的度量元要做“歸一化”處理。建議產品最終測量值的優劣評價等級如下:
(1)0.9-1.0 為優
(2)0.8-0.89 為良
(3)0.6-0.79 為合格
(4)0.59 以下為不合格
依據上述評價等級,某網絡通信服務軟件質量度量結果為0.835,評級為良。
軟件質量度量的目的使軟件的需方、供方和用戶能夠認識到軟件質量特性的重要性,針對具體產品、項目提出適當的質量模型,并能有效地開展質量度量。作為需方在項目論證時或在簽訂合同時,就能提出一些質量要求,并且盡量做到合理。作為供方(開發者)在項目論證或需求分析時,既要分析質量要求的合理性,又要分析如何滿足需方或用戶的質量要求,同時要考慮滿足需方或用戶潛在的隱含的質量要求。一旦質量需求確定后,就應對這些質量需求分析配置:即明確哪些過程、哪些活動、哪些階段要控制、把握哪些質量需求。特別是要關注過程本身的質量。適時開展產品質量度量或使用質量度量。以使軟件產品最終滿足用戶或需方的質量要求。
針對具體軟件產品實施軟件質量度量時,要確定評價指標。也就是說衡量一個軟件產品的好壞,質量特性、子特性及度量元的合格與否要給出準繩,給出每個特性、子特性及度量元的權重。這樣數據需要通過長期積累、總結獲得,同時也需要經過專家的評估確定。因此,在基于GB/T 25000.10-2016 質量模型的軟件質量度量還需要做大量的研究實踐工作,深入鉆研。