摘要:介紹了當今主要的軟件過程評估與改進模型,比較了它們之間的異同和各自的優缺點。
關鍵詞:軟件過程評估 軟件過程改善 ISO/IEC15504 CMM CMMI
中圖分類號:311.5 文獻標識碼:A 文章編號:1002-2422(2008)03-0010-02
1 當前主流評估模型簡介
1.1軟件能力成熟度模型
CMM的評估包括5個等級,共有18個關鍵過程域,52個目標,300多個核心實踐。每一級的評估由SEI授權的主評估師領導的評估小組進行。由于SEI在軟件工程界的領導地位,CMM在軟件企業中得到了廣泛的應用,并已經取得了巨大的成功,是目前事實上的國際標準。
1.2新一代過程改進模型CMMI
CMMI(Capability Maturity Model Integration)集成了SEI以前開發的一系列成熟度模型,包括SW-CMM、SE-CMM、IPD-CMM、P-CMM、SA-CMM等。但是各種模型在內容上存在重復,并在結構和知道規范上也存在著差異,以至于培訓、評估、改進活動經常被重復執行,對于過程改進工作造成不良的影響。CMMI正是克服了以上的缺點,消除了重復的部分將基于CMM的各種改進活動集成起來。
1.3我國軟件行業標準:SJ/T 11234和SJ/T 11235
SJ/T 11234-2001《軟件過程能力評估模型》和SJ/T11235-200l《軟件能力成熟度模型》這兩個軟件行業正式標準是在深入研究了CMM、CMMI、ISO/IEC TR 15504、ISO9000-3以及其他有關資料和文件后,結合我國軟件工程和標準化的理論和實踐的進展,以CMMI為主要參考文件來制定的軟件工程管理標準。
SJ/T 11234-2001是用于支持軟件企業或企業內的軟件組織對自身的軟件過程能力進行評估及實施持續性的內部改進。SJ/T 11235-2001是用于支持對軟件企業的綜合軟件能力進行第二方和第三方評估的。分別對應著CMMI的連續描述和分級描述。圖1和圖2分別給出了結構框架。

2 各模型之間的比較
2.1 ISO/IEC 15504與CMM
因為IS04EC 15504的出臺要晚于CMM,所以吸收了CMM等早期標準的優點,在完整性、合理性、可操作性等方面有較大的改進和發展。同CMM相比,有以下的特點:
(1)ISO/IEC 15504參考模型的基本應用目的、基本構成、基本原理及能力等級的含義均與CMM相似。
(2)ISO/IEC 15504不僅吸收了CMM的主要思想,還參考了其他類似的工作,并注意克服了CMM所存在的缺陷,因此與CMM有差別。
(3)ISO/IEC 15504軟件過程評估標準,特別是第2部分(ISO/EC 15504-2)直接對準ISO/IEC 12207-1995,并在此基礎上做了必要的補充和擴展,而CMM沒有這樣的考慮。
CMM存在幾個缺點:
(1)從第1級“初始級”到第2級“可重復級”之間的關鍵過程域(KPA)太多,跨度太大,實施周期長而且見效慢,很多企業實施很久也無法達到2級,這在一定程度上挫傷了企業的積極性。而SPICE模型中,軟件能力等級的劃分更加合理,更有利于軟件開發組織逐步提升軟件能力等級。
(2)CMM對第4級“已管理級”和第5級“優化級”的描述過為空泛,關鍵實踐的定義不具體。可操作性較差。
(3)CMM中所涉及的軟件生存周期過程描述與國際標準ISO/IEC 12207不太一致,并且在小型企業中實施CMM有一定的困難。
2.2 CMM與CMMI
CMMI與CMM相比主要有以下優點:
(1)CMM僅側重于對企業軟件能力成熟度級別的描述,而CMMI是集成的,將企業對軟件工程和系統工程的改進結合起來,對企業組織的過程改進帶來巨大的效益。
(2)采用CMMI過程改進可以幫助企業消除內部過程改進環境的冗余。
(3)CMMI增加了許多CMM中沒有的內容。
(4)CMMI提供了一條可增長的組織范圍的過程改進之路,CMMI可以進行持續的過程改進。
2.3我國軟件行業標準:SJ/T 11234和SF/T 11235與CMMI
CMMI模型有連續描述和分級描述兩種表示形式。這兩種模型表示形式所包含的內容基本一致,只是模型的結構和編排的方式有所不同。分別對應于我國的SJ,T 11234-2001和SJ/T 11235-2001。sJ/T 11234-200l《軟件過程能力評估模型》與CMMI連續描述表示形式都是用于支持軟件企業或企業內的軟件組織對自身的軟件過程能力進行評估及實施持續性的內部改進。SJ/T 11235-2001《軟件能力成熟度模型》與CMMI的分級描述形式都是用于支持對軟件企業的綜合軟件能力進行第二方和第三方評估。SJ/T 11234與CMMI連續描述表示形式都是把每個過程的能力分成從0到5的6個等級,為每個等級規定了由目標和慣例組成的一套公認的衡量標準。由這些目標和慣例是否得以實施或實現,可以確定某個實際執行的軟件過程當前所處的能力等級。SJ/T 11235與CMMI的分級描述表示形式都是把軟件企業的綜合軟件能力分成從1到5的5個成熟度等級。除了第1級以外,每個成熟度等級由一組過程來反映。是否達到某個成熟度級別,由這組過程是否都達到一定的能力等級來衡量。
與SJ/T 11234和SJ/T 11235相比CMMI新集成了“集成產品和過程開發”(IPPD)與“供方資源化”(SS)兩種模型。在IPPD模型中增加了兩個過程域:一個是“集成團隊化”,另一個是“組織集成環境”。在SS模型中增加了一個過程域“集成供方管理”。CMMI中原有的一些過程因為涉及IPPD或SS,所以也分別進行了擴充。CMMI將所有過程分成四類:過程管理類、項目管理類、工程化類、支持類。新增的“集成團隊化”和“集成供方管理”都屬于項目管理類過程;而“組織集成環境”屬于支持類過程。在當前最新版的CMMI中過程域增加到了25個。比我國的兩個標準SJ/T 11234和SJ/T 11235多了3個。
3 結束語
軟件企業進行軟件過程改進的最終目標是高質量、高效率、低投入地生產軟件。進行軟件過程改善,采用適合企業自身情況的模型,并對之適當調整,提高軟件過程的成熟度,是軟件企業的必由之路。