◆苑學賀 賈冀芳 文建軍
?
基于CMMI和ISO25000的軟件研發質量管理體系設計
◆苑學賀 賈冀芳 文建軍
(北京中電普華信息技術有限公司研發事業部 北京 100192)
為了提高系統/軟件質量同時最大限度地降低系統/軟件質量風險,緩解基于CMMI能力成熟度集成模型在系統/軟件質量指標要求方面以及ISO25000標準在過程質量控制方面的不足,集成CMMI的過程質量檢查項和ISO25000的質量指標設計一種基于過程和結果的軟件質量管理體系。在CMMI的需求、設計、測試、實施過程檢查項中增加系統/軟件質量指標檢查項,保證系統/軟件質量指標要求在研發各關鍵環節得到落實,從而確保系統/軟件的最終質量。該體系彌補了CMMI對系統/軟件質量指標要求的缺失。也彌補了ISO25000對過程質量檢查項的缺失,充分發揮了CMMI和ISO25000的優勢,完備了軟件研發質量管理指標體系。
CMMI;ISO25000系列;系統/軟件質量;過程質量;軟件研發質量管理體系
黨的十九大報告指出“我國經濟已由高速增長階段轉向高質量發展階段”。“質量第一”和“質量強國”被同時寫進黨的十九大報告,進一步充分體現出質量對各行業發展的重要性。在信息化時代和即將進入的人工智能時代,軟件做為各行業信息化、智能化的工具,其質量高低更加深入影響各行業的信息化水平、智能化水平以及質量水平,因此,其重要性和意義不言而喻。目前,軟件質量相關標準分兩大類:一類是基于過程質量管理,比如CMMI,ISO9001;一類基于結果質量評價,比如ISO25000系列。過程質量管理標準對過程活動和過程輸出物提出要求。結果質量評價對結果質量提出評價指標要求。大多數軟件公司注重過程質量管理,即按照CMMI或ISO9001的要求對軟件研發各關鍵過程進行質量管控,缺少在研發各關鍵過程中對軟件自身質量提出明確評價要求。導致研發過程質量合格,但是最終軟件質量不合格。為了解決這一問題,本文設計一種在過程質量管理環節中增加對結果質量評價要求的質量管理體系,即基于CMMI和ISO25000的軟件研發質量管理體系,從而針對過程和結果兩個方面對軟件質量進行管控。
隨著信息化建設與應用的不斷深入,以及智能化時代的開啟,信息系統的集成度、復雜度、深度以及規模都有了進一步提高,信息系統新的質量問題也隨之突顯出來。怎樣保證并提高信息系統或軟件的質量水平成為亟待解決的問題。國際上用來規范系統/軟件質量的標準分為兩大類:一類是過程質量管理,一類是結果質量評價。過程質量管理軟件負責對軟件研發各關鍵過程活動和活動輸出物進行質量管控。結果質量評價負責對研發完成的系統/軟件質量進行評價。
目前,針對系統/軟件研發過程質量管理的主流標準有ISO9001[1]和CMMI[2]。針對結果即系統/軟件質量的評級標準主要有ISO25000系列[3]。
質量保證體系ISO9000是保證產品及服務質量的管理措施的標準。其中ISO9001適用于軟件企業。包含四部分內容:(1)規定質量相關管理機構及職責權限。(2)規定過程質量檢查程序,并使之文件化。(3)按質量檢查程序對生產過程加以控制,并要求控制過程具有標識性、監督性、可追溯性。(4)不斷地改進質量管理體系,使質量管理呈螺旋式上升。
ISO9001對軟件企業從三個方面提出質量管理要求:(1)針對研發方提出研發過程中每個環節的質量要求;(2)針對質量管理方提出質量管理過程要求;(3)針對質量測評方提出質量測量、評價、分析、改進方法。如圖1所示。

圖1 ISO9001體系架構
CMMI的全稱為:Capability Maturity Model Integration,即能力成熟度集成模型,從人、程序方法、工具三個維度定義22個關鍵過程域,用于管理質量、進度、成本。這些關鍵過程域為軟件企業提供基于過程改進的管理框架和指南。
CMMI由22個關鍵過程域構成。22個過程域分為四類: 項目管理類,支持類,工程類,過程管理類。每個過程域由目標和相應的執行方法構成。目標是必須實現的,執行方法是推薦使用的。如圖2所示。

圖2 CMMI體系架構I[2]
ISO25000是系統/軟件質量要求與評價(SQuaRE)系列標準,由六個分部組成:(1)ISO/IEC 2500n質量管理分部,概述標準的組成部分、各部分的結構及各部分之間的關系;(2)ISO/IEC 2501n質量模型分部,定義系統/軟件質量模型;(3)ISO/IEC 2503n質量要求分部,定義系統/軟件質量模型對應的質量指標要求;(4)ISO/IEC 2502n 質量測量分部,定義系統/軟件質量指標的度量方法;(5)ISO/IEC 2504n 質量評價分部,定義系統/軟件質量的評價方法;(6)ISO/IEC 25050~ISO/IEC 25099擴展標準分部,保留用于SQuaRE的擴展。

圖3 ISO25000系列標準
CMMI和ISO9001是針對系統/軟件研發過程的質量管理體系,ISO25000是針對結果即系統/軟件質量的評價體系。其中CMMI和ISO9001的區別在于,CMMI對過程規定目標和實現目標要做的事情。ISO9001沒有對過程規定目標,只規定了過程中要做的事情。ISO25000規定在軟件需求中對系統/軟件的質量提出明確要求,在測試時確定質量需求的實現情況。ISO25000與CMMI和ISO9001的關系從系統/軟件質量角度看是直接和間接關系、也是互為補充的關系。

表1 三種質量標準比較
目前,絕大部分軟件企業在研發全過程:需求、設計、實現、測試、發布、實施環節使用過程質量管理體系ISO9001或CMMI,而只在測試環節使用結果即系統/軟件質量評價標準ISO25000,沒有在需求、設計、實施階段使用系統/軟件質量評價標準,導致研發過程質量和結果質量脫節。過程質量合格,結果質量不合格。針對這一問題,本文提出在需求、設計、測試和實施階段中除了使用過程質量標準外增加使用系統/軟件質量評價標準。確保系統/軟件質量要求在研發各關鍵環節得到落實,從而確保最終系統/軟件的質量。
在研發過程中的需求、設計、測試、實施階段中增加系統/軟件的質量評價要求。即在需求階段對系統/軟件質量指標提出明確需求,在設計階段對系統/軟件質量指標進行明確設計,在測試階段對系統/軟件質量指標進行測試,在實施階段對系統/軟件質量進行用戶評價。
在軟件研發需求階段,項目組質量專責應對需求過程進行質量檢查,并同步完成需求過程檢查單評價表。評價不達標者,進行整改,直到需求過程達標才可以進行后續工作。
質量管理部門應組織專家對《軟件需求規格說明書》進行內部評審,并同步完成軟件需求評審檢查單評價表。評價不達標者,進行修改,直到達標才可以進行后續工作。

表2 需求階段質量評價表
其中《軟件需求評審檢查單》中包括對系統/軟件質量指標需求的檢查項,如下表中的“非功能性需求定義”一項。

表3 需求評審檢查單
其中,《系統/軟件質量指標項》是依據ISO25000標準定義的質量指標。如表4所示。

表4 系統/軟件質量指標項[3]
在設計階段項目組質量專責應對設計過程進行質量檢查,并同步完成設計過程檢查單評價表。評價不達標者,進行整改,直到設計過程達標才可以進行后續工作。
質量管理部門應組織專家對《概要設計說明書》進行內部評審,并同步完成概要設計評審檢查單評價表。評價不達標者,進行修改,直到達標才可以進行后續工作。

表5 設計階段質量評價表
其中《軟件概要設計評審檢查單》中包括對軟件質量指標設計的檢查項,如表6中的“非功能性需求定義”。

表6 概要設計評審檢查單
在測試階段質量管理部門應對項目測試過程進行質量檢查,并同步完成測試過程檢查單評價表。評價不達標者,進行整改,直到設計過程達標。
質量管理部門應組織專家對測試部門編寫的《測試方案及用例》進行內部評審,并同步完成測試方案及用例評審檢查單評價表。評價不達標者,進行修改,直到達標才可以進行后續工作。并且內部評審應在內部測試之前完成。
測試部門應對系統/軟件質量進行內部測試,并同步完成系統/軟件質量測試評價表。測試不達標者,進行修改,直到內部測試達標才可以進行后續工作。

表7 測試階段質量評價表
其中,軟件質量測試依據即是表4《系統/軟件質量指標項》。
實施階段項目組質量專責應對項目實施過程進行質量檢查,并同步完成實施過程檢查單評價表。評價不達標者,進行整改,直到設計過程達標。
質量管理部門應組織專家對《實施方案》進行內部評審,并同步完成實施方案評審檢查單評價表。評價不達標者,進行修改,直到達標才可以進行后續工作。并且內部評審應在實施之前完成。
用戶應對實施后的系統/軟件質量進行評價,并同步完成系統/軟件質量用戶評價表。

表8 實施階段質量評價表
表9 系統/軟件質量用戶評價指標[3]

質量模型指標名稱 一級指標 有效性準確性 完備性 效率 時間 資源 滿意度有用性 可信性 愉悅性 舒適性 抗風險經濟風險緩解性 健康和安全風險緩解性 環境風險緩解性 周境覆蓋周境完備性 靈活性
在軟件研發各關鍵過程通過結合CMMI的過程檢查項及ISO25000的系統/軟件質量指標項完善了現有質量管理體系中的檢查要素,從源頭解決了系統/軟件質量不可控問題。彌補了CMMI或ISO9001中缺少的針對結果質量指標的檢查項,同時也彌補了ISO25000中缺少的過程質量檢查項,充分發揮了兩類質量標準的優勢,更加完備和精確地對軟件研發質量進行管控。
基于CMMI和ISO25000的軟件研發質量管理體系為軟件質量管理提供了一種新的思路,新的管理機制。對軟件行業的質量提升有比較大的意義,同時,也為其他行業的質量管理體系提供參考。
[1]ISO9000系列標準.
[2]CMMI系統標準.
[3]ISO25000系統標準.