軟件過程管理
CMM:軟件過程能力成熟度模型
CMM基本概念
1、過程:為實(shí)現(xiàn)既定目標(biāo)的一系列操作步驟
2、軟件過程:指人們用于開發(fā)和維護(hù)軟件及其相關(guān)產(chǎn)品的一系列活動(dòng)、方法、實(shí)踐和革新。
3、軟件過程能力:描述了在遵循一個(gè)軟件過程后能夠先到的預(yù)期結(jié)果的界限范圍,是對(duì)能力的一種衡量,用它可以預(yù)測(cè)一個(gè)組織在承接下一個(gè)軟件項(xiàng)目時(shí),能期望得到的最可能的結(jié)果。
4、軟件過程性能:表示遵循一個(gè)軟件過程后所得到的實(shí)際結(jié)果,軟件過程性能關(guān)注的是實(shí)際得到的結(jié)果,軟件過程能力關(guān)注的是期望得到的結(jié)果。由于項(xiàng)目要求和客觀環(huán)境的差異,軟件過程性能不可能充分反映軟件過程整體能力,即軟件過程性能受限于它的環(huán)境。
5、軟件過程成熟度:指一個(gè)具體的軟件過程被明確地定義、管理、評(píng)價(jià)、控制和產(chǎn)生實(shí)效的程度。表明了組織實(shí)施軟件過程的實(shí)際水平。
6、關(guān)鍵過程域:指一系列相互關(guān)聯(lián)的操作活動(dòng)。這些活動(dòng)反映了一個(gè)軟件組織改進(jìn)軟件過程時(shí)所必須滿足的條件。KPA標(biāo)志了達(dá)到某個(gè)成熟程度級(jí)別時(shí)所必須滿足的條件。
7、關(guān)鍵實(shí)踐:指關(guān)鍵過程域中的一些主要實(shí)踐活動(dòng)。每個(gè)KPA由關(guān)鍵實(shí)踐組成,通過實(shí)現(xiàn)關(guān)鍵實(shí)踐達(dá)到關(guān)鍵過程域的目標(biāo),關(guān)鍵實(shí)踐描述了該做什么,但沒有規(guī)定如何去做。
8、軟件過程評(píng)估:用來判斷一個(gè)組織當(dāng)前所涉及的軟件過程的狀態(tài),以確定組織該如何對(duì)其進(jìn)行有效的改進(jìn)。
9、軟件能力評(píng)價(jià):用來判斷有意承擔(dān)某個(gè)軟件項(xiàng)目的軟件組織的軟件過程能力,或判斷已進(jìn)行的軟件過程所處的狀態(tài)是否正確或是否正常。
10、 軟件工程組:負(fù)責(zé)一個(gè)項(xiàng)目的軟件開發(fā)和維護(hù)活動(dòng)的團(tuán)隊(duì),如分析、設(shè)計(jì)、編碼測(cè)試等
11、 軟件相關(guān)組:支持但不直接負(fù)責(zé)軟件開發(fā)和維護(hù)工作的團(tuán)隊(duì),如質(zhì)量保證組,軟件工程過程組等
12、 軟件工程過程組:由專家組成的組,推進(jìn)組織采用的軟件過程的定義、維護(hù)和改進(jìn)工作。
13、 系統(tǒng)工程組:包括分析系統(tǒng)需求,將系統(tǒng)需求分配給硬件、軟件和其他成分,規(guī)定硬件、軟件和其他成分的界面。
14、 系統(tǒng)測(cè)試組
15、 軟件質(zhì)量保證組
16、 軟件配置管理組
17、 培訓(xùn)組
CMM分級(jí)標(biāo)準(zhǔn)
1、初始級(jí):軟件過程定義無章法和無步驟可循的狀態(tài),成功往往依賴個(gè)別人或機(jī)遇
2、可重復(fù)級(jí):建立了基本的項(xiàng)目管理過程,對(duì)類似的項(xiàng)目,能重復(fù)以往所取得的成功
3、已定義級(jí):定義了組織級(jí)的標(biāo)準(zhǔn)軟件過程
4、已管理級(jí):是量化的管理,所有過程都建立了相應(yīng)的度量方式
5、優(yōu)化級(jí):通過各種定量分析,能夠不斷地、持續(xù)地進(jìn)行過程改進(jìn)。
除第一級(jí)外,每一級(jí)都設(shè)定了一組目標(biāo),如果達(dá)到這組目標(biāo),則表明達(dá)到了這個(gè)成熟級(jí)別,每個(gè)低級(jí)別的實(shí)現(xiàn)均是高級(jí)別實(shí)現(xiàn)的基礎(chǔ),上升一組需12~30個(gè)月之間。
CMM分級(jí)標(biāo)準(zhǔn)有兩個(gè)用途:
1、軟件組織利用它可以評(píng)估自己當(dāng)前的過程成熟度,并以此提出嚴(yán)格改進(jìn)策略
2、作為客戶選擇軟件開發(fā)商的一種評(píng)價(jià)標(biāo)準(zhǔn)。
CMM的內(nèi)部結(jié)構(gòu)
除第一級(jí)外,每一級(jí)按完全相同的內(nèi)部結(jié)構(gòu)構(gòu)成。
1、最頂層為成熟度等級(jí),反映了軟件組織的軟件過程能力
2、成熟度等級(jí)包含關(guān)鍵過程域:要達(dá)到某個(gè)成熟度等級(jí),必須完全滿足關(guān)鍵過程域所規(guī)定的的要求。單個(gè)項(xiàng)目管理在可重復(fù)級(jí),集成、同組評(píng)審,過程、培訓(xùn)在已定義級(jí),定量管理和軟件質(zhì)量管理在已管理級(jí),改進(jìn)和缺陷預(yù)防在優(yōu)化級(jí)
1、可重復(fù)級(jí):需求管理、軟件項(xiàng)目計(jì)劃、軟件項(xiàng)目跟蹤與監(jiān)控、軟件子合同管理、軟件質(zhì)量保證、軟件配置管理
2、已定義級(jí):集成軟件管理、組間協(xié)調(diào)、組織過程焦點(diǎn)、組織過程定義、培訓(xùn)程序、軟件產(chǎn)品工程、同級(jí)評(píng)審
3、已管理級(jí):定量管理過程、軟件質(zhì)量管理
4、優(yōu)化級(jí):技術(shù)改進(jìn)管理、過程改進(jìn)管理、缺陷預(yù)防
3、KPA用5個(gè)公共屬性對(duì)關(guān)鍵實(shí)踐分組,
1、執(zhí)行約定:也稱實(shí)施保證,是組織為了建立和實(shí)施KPA必須采取的行動(dòng),與政策和管理方式有關(guān)
2、執(zhí)行能力:也稱實(shí)施能力,是企業(yè)實(shí)施KPA的前提條件,滿足了這些條件后,可有可能執(zhí)行KPA的實(shí)踐活動(dòng),關(guān)注項(xiàng)目計(jì)劃的實(shí)踐,資源的配置,責(zé)任的分配,培訓(xùn)等
3、實(shí)施活動(dòng):執(zhí)行KPA所需的必要行動(dòng)、任務(wù)和步驟。包括計(jì)劃、執(zhí)行的任務(wù),任務(wù)的跟蹤等。是惟一與項(xiàng)目執(zhí)行相關(guān)的的屬性,其他屬性涉及CMM能力基礎(chǔ)設(shè)施的建立。
4、度量和分析:確定執(zhí)行活動(dòng)的狀態(tài)和執(zhí)行活動(dòng)的有效性
5、實(shí)施驗(yàn)證:驗(yàn)證執(zhí)行活動(dòng)是否與建立的過程一致。如管理評(píng)審和審計(jì),質(zhì)量保證等
軟件過程評(píng)估(SPE)和軟件能力評(píng)價(jià)(SCE)
軟件過程評(píng)估(SPE)針對(duì)的是軟件組織自身內(nèi)部軟件過程的改進(jìn)問題,目的在于發(fā)現(xiàn)缺陷,提出改進(jìn)方向。
軟件能力評(píng)價(jià)(SCE)是對(duì)接受評(píng)價(jià)者在一定條件下、規(guī)定時(shí)間內(nèi)能否完成特定項(xiàng)目的能力的考核。
SPE和SCE的過程:
1、成立評(píng)估小組
2、問卷調(diào)查和取樣
3、結(jié)果分析
4、現(xiàn)場(chǎng)訪問
5、與CMM模型對(duì)照分析
6、依據(jù)KPA的基本情況列出評(píng)估提綱
SPE和SCE不同:
1、SPE和SCE在出發(fā)點(diǎn)和目標(biāo)上的不同,使會(huì)談、調(diào)查、收集的信息和輸出的表示方式有本質(zhì)的不同
2、SPE和SCE結(jié)果和結(jié)果所起的作用不同
3、SPE和SCE對(duì)被評(píng)價(jià)單位的影響不同,進(jìn)而也影響到單位對(duì)SPE和SCE的態(tài)度,一般對(duì)SPE的態(tài)度比較開放,對(duì)SCE的態(tài)度比較慎重。
軟件企業(yè)如何實(shí)施CMM
1、提高思想認(rèn)識(shí)
2、進(jìn)行CMM培訓(xùn)和咨詢工作
3、確定合理的目標(biāo)
4、成立工作組
5、制定和完善軟件過程
6、內(nèi)部評(píng)審:組織內(nèi)部成員,對(duì)自己的軟件過程進(jìn)行評(píng)審,找出其中的不足并進(jìn)行改進(jìn)
7、正式評(píng)估:由美國(guó)卡內(nèi)基梅隆大學(xué)的軟件工程研究所(CMU/SEI)授權(quán)的主任評(píng)估師領(lǐng)導(dǎo)一個(gè)評(píng)審小組進(jìn)行。
8、根據(jù)評(píng)估結(jié)果改進(jìn)軟件過程
CMMI綜述
能力成熟度模型集成是CMM模型的最新版本,專業(yè)領(lǐng)域覆蓋軟件工程、系統(tǒng)工程、集成產(chǎn)品開發(fā)和系統(tǒng)采購(gòu)。
CMMI模型的表示
CMMI模型兩種表示法:階段式和連續(xù)式。連續(xù)式表示法強(qiáng)調(diào)的是單個(gè)過程域的能力,從過程域的角度考察基線和度量結(jié)果的改善,其關(guān)鍵術(shù)語是“能力”。而階段式表示法強(qiáng)調(diào)的是組織的成熟度,從過程域集合的角度考察整個(gè)組織的過程成熟度階段,其關(guān)鍵術(shù)語是“成熟度”。
階段式模型分為5個(gè)級(jí)別
1、級(jí)別1(初始級(jí)):代表了以不可預(yù)測(cè)結(jié)果為特征的過程成熟度,過程處于無序狀態(tài),成功主要取決于團(tuán)隊(duì)的技能
2、級(jí)別2(已管理級(jí)):代表了可以重復(fù)項(xiàng)目執(zhí)行為特征的過程成熟度,主要的過程焦點(diǎn)在于項(xiàng)目級(jí)的活動(dòng)和實(shí)踐。
3、級(jí)別3(嚴(yán)格定義級(jí))代表了以組織內(nèi)改進(jìn)項(xiàng)目執(zhí)行為特征的過程成熟度。建立組織級(jí)的活動(dòng)和實(shí)踐。
4、級(jí)別4(定量管理級(jí))代表了以改進(jìn)組織性能為特征的過程成熟度。在業(yè)務(wù)表現(xiàn)的競(jìng)爭(zhēng)尺度方面的結(jié)果是可預(yù)測(cè)的。
5、級(jí)別5(優(yōu)化級(jí))代表了以可快速進(jìn)行重新配置的組織性能,以及定量的、持續(xù)的過程改進(jìn)為特征的過程成熟度。
CMMI評(píng)估分為三類
1、A類評(píng)估:全面綜合的評(píng)估方法,要求在評(píng)估中全面覆蓋評(píng)估中所使用的模型,并且在評(píng)估結(jié)果中提供對(duì)組織的成熟度等級(jí)的評(píng)定結(jié)果。
2、B類評(píng)估:較少綜合,花費(fèi)也較少。在開始時(shí)做部分自我評(píng)估,并集中于需要關(guān)注的過程域。不評(píng)定組織的成熟度等級(jí)。
3、C類評(píng)估:也稱為快估。主要是檢查特定的風(fēng)險(xiǎn)域,找出過程中的問題所在。
CMMI階段式的基本結(jié)構(gòu)從CMM演變而來,但是CMMI的結(jié)構(gòu)更加形式化和精致,也更加復(fù)雜,尤其為了保證連續(xù)式和階段式的統(tǒng)一性,增加了結(jié)構(gòu)的理解難度
CMMI與CMM相比,強(qiáng)調(diào)對(duì)需求、工程過程、度量、風(fēng)險(xiǎn)的管理。
CMM是作為評(píng)估標(biāo)準(zhǔn)出現(xiàn)的,所以是必要的才能保證評(píng)估的標(biāo)準(zhǔn),CMMI是作為改進(jìn)模型出現(xiàn)的,羅列了較多的最佳實(shí)踐,以利于過程的改進(jìn)。
個(gè)體軟件過程(PSP)
個(gè)體軟件過程是一種可用于控制、管理和改進(jìn)個(gè)人工作方式的自我持續(xù)改進(jìn)過程。是一個(gè)包括軟件開發(fā)表格、指南和規(guī)程的結(jié)構(gòu)化框架。PSP與具體的技術(shù)相對(duì)獨(dú)立,其原則能夠應(yīng)用到幾乎軟件工程任務(wù)之中。
CMM側(cè)重于軟件企業(yè)中有關(guān)軟件過程的宏觀管理,面向軟件開發(fā)單位,PSP則側(cè)重于有關(guān)軟件過程的微觀優(yōu)化,面向軟件開發(fā)人員。
PSP分為四個(gè)級(jí)別:
1、個(gè)體度量過程PSP0和PSP0.1:建立個(gè)體過程基線,學(xué)會(huì)使用PSP的各種表格采集過程的有關(guān)數(shù)據(jù),記錄過程中存在的問題、解決問題的措施,以提高軟件開發(fā)人員的質(zhì)量意識(shí)和過程意識(shí)。
2、個(gè)體規(guī)劃過程PSP1和PSP1.1:重點(diǎn)是個(gè)體計(jì)劃,學(xué)會(huì)編制項(xiàng)目開發(fā)計(jì)劃。
3、個(gè)體質(zhì)量管理過程PSP2和PSP2.1:重點(diǎn)是個(gè)體質(zhì)量管理,根據(jù)程序的缺陷建立檢測(cè)表,按照檢測(cè)表進(jìn)行設(shè)計(jì)復(fù)查和代碼復(fù)查,以便及早發(fā)現(xiàn)缺陷,使修復(fù)缺陷的代價(jià)最小。
4、個(gè)體循環(huán)過程PSP3:把個(gè)體開發(fā)小程序所能達(dá)到的生產(chǎn)效率和生產(chǎn)質(zhì)量,延伸到大型程序。其方法是采用迭代增量式開發(fā)方法。
群組軟件過程(TSP)
TSP對(duì)群組軟件過程的定義、度量和改革提出了一套原則、策略和方法,描述了如何創(chuàng)建高效且具有自我管理能力的工程小組。
實(shí)施TSP的五個(gè)先決條件:
1、高層主管和各級(jí)管理人員的支持
2、全體有關(guān)人員的積極參與
3、循環(huán)往復(fù)、持續(xù)改善,不能一蹴而就
4、項(xiàng)目組的開發(fā)人員需要經(jīng)過PSP培訓(xùn)
5、整個(gè)開發(fā)單位的能力成熟度在應(yīng)處于CMM二級(jí)以上
TSP一般將一個(gè)軟件項(xiàng)目的開發(fā)工作分為四個(gè)階段。
CMM/TSP/PSP三者的結(jié)合
CMM/TSP/PSP為軟件產(chǎn)業(yè)提供了一個(gè)集成化的、三維的軟件過程改進(jìn)框架。CMM是過程改善的第一步,它提供了評(píng)價(jià)組織能力的方式,并為TSP提供了指導(dǎo)原則。PSP為TSP的實(shí)施提供了軟件工程師的個(gè)人技能。TSP結(jié)合了CMM的管理方法和PSP的工程技能。