軟件能力成熟度是屬于軟件質(zhì)量和軟件生產(chǎn)組織管理問題。
這里,先給出軟件質(zhì)量概念;然后討論軟件質(zhì)量模型;最后評論軟件質(zhì)量控制方法。
1.軟件質(zhì)量概念和問題
軟件質(zhì)量是一模糊的、捉摸不定的概念。對于什么是產(chǎn)品質(zhì)量,可以從以下幾個觀點來看:
* 透明性觀點:質(zhì)量是產(chǎn)品一種可以認(rèn)識但不可定義的性質(zhì);
* 使用者觀點:質(zhì)量是產(chǎn)品滿足使用目的之程度;
* 制造者觀點:質(zhì)量是產(chǎn)品性能和規(guī)格要求的符合度;
* 產(chǎn)品觀點:質(zhì)量是聯(lián)結(jié)產(chǎn)品固有性能的紐帶;
* 基于價值觀點:質(zhì)量依賴于顧客愿意付給產(chǎn)品報酬的數(shù)量。
概括地說,有三類方法來改進(jìn)軟件質(zhì)量:控制軟件生產(chǎn)過程、提高軟件生產(chǎn)者組織性和軟件生產(chǎn)者個人能力,已經(jīng)應(yīng)用的著名的方法有:
* 凈化軟件工程(Clearnroom Software Engineering):這是把軟件生產(chǎn)過程,放在統(tǒng)計質(zhì)量控制下的軟件工程管理過程。其特點是:勞動質(zhì)量管理、重視生產(chǎn)過程和定量分析。這一方法的本質(zhì)是干干凈凈生產(chǎn),以求提高產(chǎn)品質(zhì)量。
* 評估軟件能力成熟度:用軟件能力成熟度模型(CMM:Capability Maturity Model)來評估軟件生產(chǎn)組織研制軟件能力的成熟度。CMM是從軟件生產(chǎn)組織過程角度,來評估其生產(chǎn)能力和技術(shù)水平。軟件能力成熟度分5級,當(dāng)前一般的軟件生產(chǎn)組織的軟件能力成熟度水平?jīng)]超過3級。
* 提高軟件生產(chǎn)力和個人技能:用人事軟件過程(PSP:Personal Software Process)作為一個工具和方法,它給軟件工程師提供了測量和分析的工具,并幫助他(她)們理解自己的軟件生產(chǎn)水平和技巧的高低,以求得到提高。
軟件質(zhì)量和很多研究領(lǐng)域及實際問題有關(guān),主要相關(guān)領(lǐng)域和因素有:
需求工程(RE:Requirements Engineering), 理論上,需求工程是應(yīng)用已被證明的原理、技術(shù)和工具,幫助系統(tǒng)分析人員理解問題或描述產(chǎn)品的外在行為。
軟件復(fù)用(SR:Software Reuse), 定義為利用工程知識或方法,由一已存在的系統(tǒng),來建造一新系統(tǒng), 這種技術(shù),可改進(jìn)軟件產(chǎn)品質(zhì)量和生產(chǎn)率。還有軟件檢查、軟件計量、軟件可靠性、軟件可維修性、軟件工具評估和選擇等。
2.軟件質(zhì)量模型
McCall模型
McCall,J.A. 等人對軟件質(zhì)量因素進(jìn)行了研究,將軟件需求按照3個緯度對11個軟件質(zhì)量因素進(jìn)行分類。其模型分為三層:因素、準(zhǔn)則、計量。這就是說,軟件質(zhì)量是正確性、可靠性、效率……的函數(shù)。正確性、可靠性、效率……稱之為軟件質(zhì)量因素,或軟件質(zhì)量特征。每一因素又由一些準(zhǔn)則來衡量,例如正確性由跟蹤性、完全性、相容性來判斷;而每一準(zhǔn)則又有一些定量化指標(biāo)來計量。McCall模型可用下圖表達(dá)。
軟件質(zhì)量特征,在國際標(biāo)準(zhǔn)化組織軟件質(zhì)量測量標(biāo)準(zhǔn)(ISO9126)“信息技術(shù)----軟件產(chǎn)品評估----和應(yīng)用指南”中,給出了一些定義(和McCall,J.A. 等人軟件質(zhì)量因素不盡相同)如下表1。
還有人提出了軟件質(zhì)量計量模型(SQM:Software Quality Metrics Model)。軟件質(zhì)量計量模型是把軟件質(zhì)量因素-準(zhǔn)則-計量三者綜合的軟件質(zhì)量結(jié)構(gòu)模型;其思路如圖2示。
圖2
可把SQM改為目標(biāo)規(guī)則檢查計量層次結(jié)構(gòu)(GRCM)模型:例如評估可讀性、可擴充性。
規(guī)則1:可讀性----目的在于理解類結(jié)構(gòu),界面和方法。
規(guī)則2:可擴性----目的在于可以擴充,保持先進(jìn)性。
要進(jìn)行:
可讀性檢查.1
查看在一個類中方法數(shù)目是否小于20 * 計量1.1 方法個數(shù)(NIS)
可讀性檢查.2
查看在一個類層次機構(gòu)層次數(shù)是否小于6 * 計量2.1 層次結(jié)構(gòu)的層數(shù)(HNL) (從底層開始數(shù))
可讀性檢查.3
查看在一個子類服務(wù)于子類是否合理 * 計量3.1 方法不理會需求的個數(shù)(NMO)
……
一般的思路是:
在GRCM結(jié)構(gòu)中,因素(Factor)對應(yīng)于目的(Goal);準(zhǔn)則(Criteria)對應(yīng)于規(guī)則(Rules)。關(guān)于計量(Metric)可以參考[2]。
SQM綜合模型和ISO9216對比如圖3所示:
圖3
GRCM模型在軟件工程過程中的作用和地位如圖4所示:
圖4
實際上,軟件質(zhì)量特性通過有形的質(zhì)量載體性質(zhì)表達(dá)。而這可由一些計量(定量化)指標(biāo)表示。
軟件生產(chǎn)部門能力成熟模型 Capability Maturity Model(CMM)
1993年,美國防部設(shè)在卡內(nèi)基-梅隆大學(xué)的軟件研究所(SEI)正式發(fā)表了能力成熟度模型。這是評估軟件生產(chǎn)部門(組織、廠家)軟件生產(chǎn)能力成熟度的模型,是從軟件生產(chǎn)組織過程角度,來評估其達(dá)到的水平級別。它分5級(如圖5),當(dāng)前我國一般的軟件生產(chǎn)組織的水平?jīng)]超過3級。
圖5
這5個級別包含18項內(nèi)容:
5(優(yōu)化):過程變化管理、技術(shù)變化管理、缺點防止;
4(管理):軟件質(zhì)量管理、過程定量化管理;
3(確定):仔細(xì)觀察、整體協(xié)調(diào)、軟件生產(chǎn)工程、集成軟件管理、訓(xùn)練規(guī)劃、組織過程確定、組織過程中心點;
2(重復(fù)):軟件構(gòu)形管理、軟件質(zhì)量保證、軟件合同管理、軟件工程跟蹤和統(tǒng)籌、軟件工程計劃、需求管理;
1(初始):經(jīng)驗和個人行為。
還可以進(jìn)一步分解,例如:軟件工程跟蹤和統(tǒng)籌可分解為13項活動。軟件生產(chǎn)組織的這13項活動水平,可進(jìn)行評分;0分;1分;2分……9分;10分。比如第6項,軟件計劃費用跟蹤并采取修正。評分標(biāo)準(zhǔn)是0~10,分為:差-0分;弱-2分;中等-4分;基本合格-6分;合格-8分;優(yōu)秀-10分。事實上,每一級別、每一項內(nèi)容都有豐富的內(nèi)涵,為CMM實施奠定了基礎(chǔ)。
目前,SEI研制和保有的能力成熟度模型有:
* 軟件集成能力成熟度模型(CMMISM: CMM IntegrationSM );
* 軟件能力成熟度模型(SW-CMM :Capability Maturity Model(r) for Software);
* 人力能力成熟度模型( P-CMM :People Capability Maturity Model );
* 軟件采辦能力成熟度模型(SA-CMM:Software Acquisition Capability Maturity Model );
* 系統(tǒng)工程能力成熟度模型(SE-CMM: Systems Engineering Capability Maturity Model );
* 一體化生產(chǎn)研制能力成熟度模型( IPD-CMM :Integrated Product Development Capability Maturity Model )。
建立這些模型的指導(dǎo)思想和方法論,都是一樣的:評估能力,發(fā)現(xiàn)問題,幫助改進(jìn)。
3.軟件質(zhì)量—系統(tǒng)工程問題和系統(tǒng)方法
軟件質(zhì)量是一復(fù)雜系統(tǒng)工程問題,它必需用系統(tǒng)方法(Systems Approach)來研究。軟件研制是一過程,是以個人智力為基礎(chǔ)的有組織的團隊性生產(chǎn)活動。這一過程可用水滴模型或螺旋模型來描述,基本內(nèi)容是:需求、設(shè)計、編程、測試、運用,如圖6所示。
圖6
用全面質(zhì)量管理思想方法,把軟件研制和運用過程全壽命全系統(tǒng)科學(xué)的管理,這就是我們的軟件質(zhì)量管理觀點和思路,可稱之為軟件質(zhì)量系統(tǒng)管理。這是保證軟件質(zhì)量的必由之路。根本原因在于,影響軟件質(zhì)量的因素太多、太復(fù)雜。軟件質(zhì)量系統(tǒng)管理,是要把上述水滴模型的每一階段、每一步驟都管起來。例如,對設(shè)計、編程和測試活動的質(zhì)量保證,如圖7所示。
圖7
圖7中,拿顯微鏡這位老專家,代表質(zhì)量系統(tǒng)管理組,根據(jù)質(zhì)量管理規(guī)范、程序和方法,實施其質(zhì)量管理職責(zé)。重要的問題在于質(zhì)量管理規(guī)范、程序和方法制定與選擇,必需從三個方面進(jìn)行研究和實施:
* 軟件生產(chǎn)組織;
* 軟件生產(chǎn)過程;
* 軟件生產(chǎn)者個人。
給定軟件生產(chǎn)組織環(huán)境和個人水平,研究軟件生產(chǎn)規(guī)律,通過生產(chǎn)過程質(zhì)量特性計量,反過來對軟件質(zhì)量進(jìn)行控制。把軟件質(zhì)量控制和軟件可靠性、可維修性、測試和監(jiān)控接合起來。當(dāng)前,對軟件生產(chǎn)組織可用CMM方法,評估其能力成熟程度; 用個人能力軟件評價其軟件生產(chǎn)水平。然后,再深入軟件生產(chǎn)過程中,研究軟件計量(定量)和質(zhì)量控制方法,就能夠取得成功。