版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、軟件項(xiàng)目管理,第六章 軟件過(guò)程管理,本章內(nèi)容提要,軟件過(guò)程與過(guò)程管理CMMI概述CMMI的成熟度等級(jí)及其過(guò)程域CMMI的應(yīng)用PSP,TSP與CMMI敏捷軟件開(kāi)發(fā)方法,第四節(jié) CMMI的應(yīng)用,實(shí)施CMMI過(guò)程改進(jìn)的兩種方法階段表示連續(xù)表示CMMI評(píng)估,實(shí)施CMMI過(guò)程改進(jìn)的兩種方法,CMMI模型支持兩種實(shí)施過(guò)程改進(jìn)的方法,一種稱為階段表示,一種稱為連續(xù)表示。階段表示(Staged Representation)為過(guò)程改進(jìn)
2、提供了一個(gè)預(yù)定義的路線圖,即從成熟度等級(jí)1到成熟度等級(jí)5逐級(jí)增加,要達(dá)到某一成熟度等級(jí),必須滿足該等級(jí)(及其以下等級(jí))上所有過(guò)程域的目標(biāo)。,連續(xù)表示(Continuous Representation)支持單個(gè)過(guò)程域的改進(jìn),可理解為一個(gè)過(guò)程域接著一個(gè)過(guò)程域?qū)嵤└倪M(jìn)。在每個(gè)過(guò)程域上從能力等級(jí)0到能力等級(jí)5逐級(jí)增加。,實(shí)施CMMI過(guò)程改進(jìn)的兩種方法,階段表示和連續(xù)表示的對(duì)比,階段表示是從CMM模型繼承而來(lái),已經(jīng)過(guò)多年的實(shí)踐檢驗(yàn)。它提供了一個(gè)
3、明確的、被證實(shí)的過(guò)程改進(jìn)路徑,遵循這條路徑不需要過(guò)多的討論和爭(zhēng)論。而且由于它的明確性和統(tǒng)一性,有助于進(jìn)行跨組織的比較。連續(xù)表示的優(yōu)點(diǎn)是提供了靈活性。用戶可根據(jù)具體的業(yè)務(wù)目標(biāo)來(lái)選擇需要實(shí)現(xiàn)的過(guò)程域及其實(shí)現(xiàn)次序。,CMMI評(píng)估,成熟度等級(jí)的評(píng)估由美國(guó)卡內(nèi)基梅隆大的軟件工程研究所授權(quán)的主任評(píng)估師領(lǐng)導(dǎo)一個(gè)評(píng)審小組進(jìn)行,其成員大部分來(lái)自企業(yè)內(nèi)部。評(píng)估過(guò)程包括員工培訓(xùn)(企業(yè)的高層領(lǐng)導(dǎo)也要參加)、問(wèn)卷填寫和統(tǒng)計(jì)、文檔審查、數(shù)據(jù)分析、與企業(yè)的高層領(lǐng)
4、導(dǎo)討論和撰寫評(píng)估報(bào)告等。評(píng)估結(jié)束由主任評(píng)估師簽字生效。評(píng)估結(jié)果報(bào)告給SEI,但SEI不會(huì)發(fā)“認(rèn)證”證書。,CMMI評(píng)估,一般有兩種類型的評(píng)估:軟件過(guò)程評(píng)估和軟件能力評(píng)價(jià)。軟件過(guò)程評(píng)估用于確定機(jī)構(gòu)當(dāng)前過(guò)程的狀態(tài),決定一個(gè)機(jī)構(gòu)所面臨的高優(yōu)先級(jí)的過(guò)程相關(guān)問(wèn)題,并且獲得機(jī)構(gòu)對(duì)軟件過(guò)程改進(jìn)的支持。軟件能力評(píng)價(jià)用來(lái)確定合格的軟件項(xiàng)目承制方,或用來(lái)監(jiān)督在目前的軟件項(xiàng)目中正在進(jìn)行軟件過(guò)程的狀態(tài)。,軟件過(guò)程評(píng)估方法,判斷一個(gè)組織當(dāng)前的軟件過(guò)程的能力
5、狀態(tài),并發(fā)現(xiàn)過(guò)程中的缺陷。判斷并確定一個(gè)組織面對(duì)的與軟件過(guò)程相關(guān)的改進(jìn)策略。利用組織的支持來(lái)對(duì)該組織的軟件過(guò)程進(jìn)行有效的改進(jìn)。,軟件能力評(píng)價(jià)方法,判斷有意承擔(dān)某個(gè)軟件項(xiàng)目的軟件組織(投標(biāo)者)的過(guò)程能力。利用評(píng)價(jià)結(jié)果確定選擇某一承包者的風(fēng)險(xiǎn)。判斷已進(jìn)行的軟件過(guò)程所處的狀態(tài)是否正確或是否正常。推動(dòng)承包者在工作過(guò)程中改進(jìn)他們的軟件過(guò)程。,過(guò)程評(píng)估和能力評(píng)價(jià)步驟,挑選隊(duì)伍:成員必須具有專業(yè)的軟件工程和管理方面的知識(shí),并接受過(guò)基本CMM
6、/CMMI概念和特定評(píng)估及評(píng)價(jià)方法的訓(xùn)練。問(wèn)卷調(diào)查:讓來(lái)自被評(píng)估單位的代表完成軟件過(guò)程成熟度問(wèn)卷并回答評(píng)估評(píng)價(jià)組提出的診斷性問(wèn)題。響應(yīng)分析:明確哪些回答與問(wèn)題的答案相吻合,并確定須進(jìn)一步調(diào)查的領(lǐng)域。,現(xiàn)場(chǎng)調(diào)查:從響應(yīng)分析的結(jié)果出發(fā),評(píng)估小組進(jìn)行提問(wèn)、檢查、協(xié)商等,以獲取專業(yè)性的結(jié)論,說(shuō)明軟件過(guò)程的 KPA是否達(dá)到了應(yīng)有的目標(biāo)。評(píng)估小組提供一個(gè)定義軟件過(guò)程優(yōu)缺點(diǎn)的結(jié)果清單。對(duì)于軟件過(guò)程評(píng)估來(lái)說(shuō),這些結(jié)果將成為過(guò)程改進(jìn)的基礎(chǔ)和參考;
7、對(duì)于軟件能力評(píng)價(jià)來(lái)說(shuō),這些結(jié)果為決策者提供風(fēng)險(xiǎn)分析的技術(shù)基礎(chǔ)。,過(guò)程評(píng)估和能力評(píng)價(jià)步驟,評(píng)估小組完成KPA基本概況的描述文件,給出組織已經(jīng)滿足的KPA目標(biāo)和尚未滿足的KPA目標(biāo)。,過(guò)程評(píng)估和能力評(píng)價(jià)步驟,軟件過(guò)程評(píng)估和軟件能力評(píng)價(jià)之間的不同,軟件過(guò)程評(píng)估和軟件能力評(píng)價(jià)的結(jié)果可能不同(主要是因?yàn)樵u(píng)估和評(píng)價(jià)的側(cè)重點(diǎn)不一樣,而且被評(píng)估和被評(píng)價(jià)的組織、項(xiàng)目、軟件產(chǎn)品都會(huì)發(fā)生變化,因此,應(yīng)該考慮評(píng)估和評(píng)價(jià)的Context)。軟件過(guò)程評(píng)估和軟件能
8、力評(píng)價(jià)在出發(fā)點(diǎn)和目標(biāo)上是不同的(導(dǎo)致成熟度提問(wèn)單的內(nèi)容組織不一樣,收集的信息不一樣,結(jié)論的評(píng)價(jià)不一樣)。,軟件過(guò)程評(píng)估是在一個(gè)開(kāi)放的、互相協(xié)作的環(huán)境下進(jìn)行的。而軟件能力評(píng)價(jià)往往是在有較大阻力的環(huán)境中進(jìn)行的。(過(guò)程評(píng)估是為了提高管理者和工程師的工作水平,而能力評(píng)價(jià)是為了表明一個(gè)軟件組織的實(shí)際軟件過(guò)程能力,為選擇承包者和減少費(fèi)用服務(wù))。,軟件過(guò)程評(píng)估和軟件能力評(píng)價(jià)之間的不同,CMMI評(píng)估的注意事項(xiàng),籌備必備機(jī)構(gòu)SEPG:負(fù)責(zé)過(guò)程的定義和策
9、劃。SQA:負(fù)責(zé)審核軟件過(guò)程的實(shí)施情況;產(chǎn)品質(zhì)量的審核和控制。確定合適的目標(biāo)對(duì)指定的KPA作評(píng)估或診斷,2級(jí)時(shí)也可要求對(duì)3級(jí)的KPA進(jìn)行評(píng)估。有些組織一開(kāi)始可能并不想進(jìn)行評(píng)分和評(píng)級(jí),而是希望評(píng)估組從其現(xiàn)有的實(shí)踐中確定最佳實(shí)踐,作為組織的標(biāo)準(zhǔn)實(shí)踐進(jìn)行推廣。,確定范圍部門:哪些部門參加。項(xiàng)目:選擇合適的項(xiàng)目。KPA:確定對(duì)那些KPA進(jìn)行評(píng)估。人數(shù):為了保證評(píng)估取證有足夠的可信度,人數(shù)總和應(yīng)該超過(guò)組織人數(shù)的20%。約束對(duì)不
10、參加的部門,評(píng)估組無(wú)權(quán)進(jìn)行訪談或取證。,CMMI評(píng)估的注意事項(xiàng),對(duì)不參加的人員,評(píng)估組無(wú)權(quán)進(jìn)行訪談或取證。經(jīng)費(fèi)和預(yù)算不得超過(guò)某個(gè)限度。進(jìn)度安排應(yīng)該在一個(gè)適當(dāng)?shù)钠谙迌?nèi)。期望要求評(píng)估師簽署結(jié)論性證明文件。要求評(píng)估組指明每個(gè)KPA的優(yōu)缺點(diǎn),哪些實(shí)踐有待改進(jìn)。要求評(píng)估組提出下一步過(guò)程改進(jìn)的計(jì)劃和大致的日程安排。,CMMI評(píng)估的注意事項(xiàng),承諾組織主管保證參加評(píng)估的人員不會(huì)影響評(píng)估活動(dòng)的正常進(jìn)展。保證為評(píng)估工作提供相應(yīng)的后勤服務(wù)。
11、向評(píng)估組授權(quán)“開(kāi)工令”(從某日起開(kāi)始工作)。,CMMI評(píng)估的注意事項(xiàng),準(zhǔn)備待審文檔 -組織級(jí)文檔軟件生存期模型研發(fā)過(guò)程的各種方針項(xiàng)目遵循的規(guī)程選用的標(biāo)準(zhǔn)裁剪指南標(biāo)準(zhǔn)報(bào)表標(biāo)準(zhǔn)測(cè)量集,CMMI評(píng)估的注意事項(xiàng),-項(xiàng)目級(jí)文檔軟件開(kāi)發(fā)計(jì)劃軟件質(zhì)量保證計(jì)劃軟件配置管理計(jì)劃項(xiàng)目在實(shí)施中遵循的規(guī)程測(cè)量計(jì)劃培訓(xùn)教材,CMMI評(píng)估的注意事項(xiàng),-實(shí)現(xiàn)級(jí)文檔會(huì)議概要:評(píng)審會(huì)等項(xiàng)目管理過(guò)程的狀態(tài)報(bào)告:月度報(bào)告等各類變更申請(qǐng)
12、測(cè)試記錄開(kāi)發(fā)過(guò)程中產(chǎn)生的各類工作產(chǎn)品:設(shè)計(jì)文檔,源代碼清單等。,CMMI評(píng)估的注意事項(xiàng),影響CMMI過(guò)程改進(jìn)成敗的因素,過(guò)程改進(jìn)必須有高級(jí)主管的支持與委托,并積極地管理過(guò)程改進(jìn)的進(jìn)展。獲取中層管理的支持,以方便地獲取過(guò)程改進(jìn)的資源(人員、時(shí)間、經(jīng)費(fèi)和設(shè)備)?;鶎蛹夹g(shù)人員的參與和支持極端重要。利用定量的可觀察數(shù)據(jù)盡快使過(guò)程改進(jìn)的成果可見(jiàn),從而激勵(lì)參與者的興趣。按照軟件過(guò)程改進(jìn)對(duì)企業(yè)文化的要求進(jìn)行變革,要求軟件過(guò)程改進(jìn)為商業(yè)利益
13、服務(wù),并與企業(yè)其他部分協(xié)調(diào)。,第五節(jié) PSP,TSP與CMMI,PSP的產(chǎn)生CMM/CMMI只關(guān)注“做什么”,而不關(guān)注“怎么做”,未提供實(shí)現(xiàn)各過(guò)程域所需要的知識(shí)和方法。為了解決上述問(wèn)題,CMU-SEI在CMM1.1基礎(chǔ)上提出了PSP/TSP。,PSP的產(chǎn)生,1995年,CMU-SEI的Watts s. Humphrey領(lǐng)導(dǎo)開(kāi)發(fā)出PSP(Personal Software Processes),被認(rèn)為是由定性軟件工程走向定量軟件工程
14、的標(biāo)志。PSP是一種可用于控制、管理和改進(jìn)軟件工程師個(gè)人工作方式的自我改善過(guò)程,是一個(gè)包括軟件開(kāi)發(fā)表格、指南和規(guī)程的結(jié)構(gòu)化框架。,PSP關(guān)注點(diǎn),如何制訂計(jì)劃如何控制質(zhì)量如何與其他人相互協(xié)作如何預(yù)防缺陷(PSP重點(diǎn))關(guān)鍵是如何提高設(shè)計(jì)質(zhì)量,PSP中的個(gè)人任務(wù),為每一個(gè)項(xiàng)目/模塊制訂開(kāi)發(fā)計(jì)劃;記錄開(kāi)發(fā)時(shí)間;跟蹤錯(cuò)誤;在工程摘要報(bào)表中保留數(shù)據(jù);使用已有的數(shù)據(jù)計(jì)劃以后的項(xiàng)目/模塊;分析已有的數(shù)據(jù)以改進(jìn)開(kāi)發(fā)過(guò)程,不斷提高開(kāi)發(fā)
15、水平。,PSP的使用效果,參加PSP培訓(xùn)的104位軟件人員在應(yīng)用了PSP后:軟件中總的差錯(cuò)數(shù)減少了58.0%;在測(cè)試階段發(fā)現(xiàn)的差錯(cuò)減少了71.9%;生產(chǎn)效率提高了20.8%,PSP過(guò)程,PSP是一個(gè)軟件過(guò)程的描述、測(cè)量和改進(jìn)方法的結(jié)構(gòu)化集合,它可以為軟件工程師帶來(lái)更少的錯(cuò)誤代碼、更好的預(yù)算和計(jì)劃以及更高的生 產(chǎn)率,從而能夠幫助軟件工程師改善其個(gè)人性能。 PSP提供了幫助軟件工程師開(kāi)發(fā)軟件的表格、腳本和標(biāo)準(zhǔn),以估算和計(jì)劃軟件工程師
16、的工作,以便軟件工程師可以更加清楚自己的個(gè)人技術(shù)并且提升個(gè)人表現(xiàn)。PSP顯示了如何定義過(guò)程及如何測(cè)量其質(zhì)量和生產(chǎn)率。,PSP過(guò)程,PSP不依賴于任何技術(shù)(語(yǔ)言、工具和設(shè)計(jì)方法),它:示范了軟件過(guò)程原則;幫助工程師做正確的計(jì)劃;告訴工程師怎樣提高軟件質(zhì)量;建立個(gè)人軟件過(guò)程提升的度量標(biāo)準(zhǔn);確定過(guò)程改進(jìn)在工程師表現(xiàn)中的影響。,PSP過(guò)程改進(jìn),PSP0(個(gè)人過(guò)程基線),PSP0是過(guò)程基線,目的是為了在個(gè)人的工作中引入表格和腳本,以便工
17、程師按照測(cè)量和報(bào)告格式記錄軟件過(guò)程。 PSP0-1.目前過(guò)程:記錄軟件工程師在工程中使用的具有代表性的軟件開(kāi)發(fā)方法。 PSP0-2.時(shí)間記錄:記錄軟件工程師在不同的軟件開(kāi)發(fā)階段(計(jì)劃、設(shè)計(jì)、編碼、編譯和測(cè)試、維護(hù))所花費(fèi)的時(shí)間。,PSP0-3.失誤記錄:按照一致的格式記錄軟件工程師引入軟件中的缺陷,并記錄軟件工程師嘗試解決問(wèn)題的方法和步驟。 PSP0-4.錯(cuò)誤分類標(biāo)準(zhǔn):一方面為軟件工程師提供在系統(tǒng)中可觀察到的典型缺陷種類列表,有助
18、于軟件工程師把典型缺陷標(biāo)準(zhǔn)化;另一方面提供一種預(yù)定義的步驟和工具方便軟件工程師對(duì)新的缺陷進(jìn)行歸類和記錄。,PSP0(個(gè)人過(guò)程基線),PSP0可以通過(guò)增加下列過(guò)程而擴(kuò)展到 PSP0.1。 PSP0.1-1.代碼規(guī)范:通過(guò)對(duì)設(shè)計(jì)過(guò)程、開(kāi)發(fā)過(guò)程和設(shè)計(jì)語(yǔ)言結(jié)構(gòu)進(jìn)行規(guī)范,約束具有不同技術(shù)背景和軟件開(kāi)發(fā)風(fēng)格的軟件工程師。由組織統(tǒng)一制訂設(shè)計(jì)方法和編碼標(biāo)準(zhǔn)。PSP0.1-2.代碼規(guī)模度量:測(cè)量代碼的長(zhǎng)度、功能、復(fù)雜度、再利用數(shù)、冗余數(shù)等。一般基于某
19、種測(cè)量標(biāo)準(zhǔn)進(jìn)行,如LOC,軟件工程師應(yīng)該了解 LOC及相關(guān)測(cè)量概念。,PSP0.1(個(gè)人過(guò)程基線),PSP0.1-3.過(guò)程優(yōu)化計(jì)劃:針對(duì)已經(jīng)記錄的軟件過(guò)程中的問(wèn)題和經(jīng)驗(yàn)教訓(xùn),幫助軟件工程師給出軟件過(guò)程能力的改進(jìn)建議,并以結(jié)構(gòu)化的方式表達(dá)軟件過(guò)程、問(wèn)題、建議教訓(xùn)、改進(jìn)建議等項(xiàng)目。,PSP0.1(個(gè)人過(guò)程基線),PSP1(個(gè)人計(jì)劃過(guò)程),PSP1在PSP0的基礎(chǔ)上增加了計(jì)劃步驟:PSP1-1.規(guī)模估計(jì):分為代碼規(guī)模估算、時(shí)間估算、資源估算
20、。 (1)代碼規(guī)模估算:軟件工程師可以憑借PSP0級(jí)代碼規(guī)模測(cè)量經(jīng)驗(yàn)預(yù)測(cè)他們將要寫的任務(wù)模塊或算法的可能規(guī)模。 (2)時(shí)間估算:PSP0級(jí)時(shí)間測(cè)量過(guò)程可以總結(jié)出不同復(fù)雜度模塊的編寫時(shí)間,憑借這些經(jīng)驗(yàn),軟件工程師可以針對(duì)當(dāng)前系統(tǒng)的模塊結(jié)構(gòu)層次給出完成每個(gè)模塊的估算時(shí)間(樂(lè)觀時(shí)間、最可能時(shí)間、悲觀時(shí)間)。,(3)資源估算:對(duì)于軟件開(kāi)發(fā)的一段生存期,軟件工程師預(yù)測(cè)所需要的軟件、硬件和人力資源,其中人力資源預(yù)測(cè)包括人力需求、人力成本
21、估算和項(xiàng)目管理標(biāo)準(zhǔn)。PSP1-2.狀態(tài)報(bào)告:對(duì)軟件工程師的工作進(jìn)行跟蹤,檢查規(guī)模估計(jì)與實(shí)際狀態(tài)之間的差異。,PSP1(個(gè)人計(jì)劃過(guò)程),PSP1.1在PSP1的基礎(chǔ)上引入了任務(wù)計(jì)劃和安排。PSP1.1-1.任務(wù)計(jì)劃及安排:基于PSP1中的規(guī)模估計(jì)數(shù)據(jù)制訂軟件項(xiàng)目的需要完成的任務(wù)計(jì)劃,并將任務(wù)按時(shí)間段分配給不同的人力資源。一般采納網(wǎng)絡(luò)安排技術(shù),如PERT(Program Evaluation and Review Techniques)
22、和CPM(Critical Path Method),軟件工程師應(yīng)該理解網(wǎng)絡(luò)安排技術(shù)和計(jì)劃策略。,PSP1.1(個(gè)人計(jì)劃過(guò)程),PSP2(個(gè)人質(zhì)量管理),PSP2強(qiáng)調(diào)提高質(zhì)量,引入了缺陷管理。PSP2-1.代碼審查。對(duì)代碼進(jìn)行檢查和分析,以發(fā)現(xiàn)程序缺陷。PSP2-2.設(shè)計(jì)審查。設(shè)計(jì)審查要求提供一些評(píng)估設(shè)計(jì)質(zhì)量的指標(biāo),如:代碼重用率、代碼冗余、代碼完整性和協(xié)作性。設(shè)計(jì)的一致性檢查主要涉及:結(jié)構(gòu)化(控制和數(shù)據(jù))一致性、耦合一致性、可移植
23、和互用一致性。,PSP2.1(個(gè)人質(zhì)量管理),PSP2.1在PSP2.0基礎(chǔ)上增加了設(shè)計(jì)模板。 設(shè)計(jì)模板提供了設(shè)計(jì)過(guò)程的完全標(biāo)準(zhǔn)化,并且連同缺陷預(yù)防、過(guò)程分析和過(guò)程基準(zhǔn)一起形成了各種設(shè)計(jì)檢驗(yàn)技術(shù)。可類似地將此方法應(yīng)用到許多過(guò)程階段之中去,包括:需求說(shuō)明、文檔和測(cè)試等。,PSP3(循環(huán)個(gè)人過(guò)程),PSP3將個(gè)人軟件過(guò)程的應(yīng)用拓展到大規(guī)模程序開(kāi)發(fā)當(dāng)中。 將開(kāi)發(fā)大型程序的個(gè)體過(guò)程細(xì)分為可以應(yīng)用PSP2的片段,遵照PSP2過(guò)程循環(huán)
24、增量地開(kāi)發(fā)大型程序,從而支持迭代式的開(kāi)發(fā)。在任何時(shí)間點(diǎn),只有一個(gè)PSP2級(jí)過(guò)程是活動(dòng)的。,TSP,軟件開(kāi)發(fā)通常是以團(tuán)隊(duì)形式進(jìn)行的,因此僅有PSP是不夠的。CMU-SEI又以PSP為基礎(chǔ),開(kāi)發(fā)了TSP(Team Software Processes),即小組軟件過(guò)程。TSP指導(dǎo)項(xiàng)目組中的成員如何有效規(guī)劃和管理所面臨的項(xiàng)目開(kāi)發(fā)任務(wù),并且使軟件開(kāi)發(fā)隊(duì)伍始終以最佳狀態(tài)來(lái)完成工作。,TSP實(shí)施集體管理與自我管理相結(jié)合的原則,最終目的在于指導(dǎo)開(kāi)發(fā)
25、人員如何在最少的時(shí)間內(nèi),以預(yù)定的費(fèi)用生產(chǎn)出高質(zhì)量的軟件產(chǎn)品,所采用的方法是對(duì)小組開(kāi)發(fā)過(guò)程進(jìn)行定義、度量和改進(jìn)。小組遠(yuǎn)不只是一群有才能的個(gè)人的集合。為了建立并保持高效率的工作關(guān)系,小組需要共同的目標(biāo),大家一致同意的行動(dòng)計(jì)劃和適當(dāng)?shù)念I(lǐng)導(dǎo),小組成員要在需要的時(shí)候樂(lè)于尋求幫助。,TSP,TSP實(shí)施條件,需要有高層主管和各級(jí)經(jīng)理的支持,以取得必要的資源。整個(gè)軟件開(kāi)發(fā)小組至少應(yīng)在CMM的第二級(jí)(已管理級(jí))。全體軟件開(kāi)發(fā)人員必須經(jīng)過(guò)PSP的培訓(xùn)
26、,并有按TSP工作的愿望和熱情。開(kāi)發(fā)小組成員應(yīng)在2到20個(gè)人之間。經(jīng)驗(yàn)表明,4~8個(gè)人的小組工作效率最高。,TSP的管理原則,TSP遵循集體管理和自己管理自己相結(jié)合的原則。在每一項(xiàng)目階段開(kāi)始要作好工作計(jì)劃。要有明確定義的目標(biāo),努力完成已經(jīng)接受的委托任務(wù)。應(yīng)定期追蹤項(xiàng)目進(jìn)展?fàn)顟B(tài)并進(jìn)行定期匯報(bào)。按自己管理自己的原則管理軟件過(guò)程。按集體管理的原則進(jìn)行管理,全體成員都要參加和關(guān)心小組工作的規(guī)劃、進(jìn)展的追蹤和決策的制訂等項(xiàng)工作。,TS
27、P的循環(huán)開(kāi)發(fā)策略,TSP通過(guò)循環(huán)開(kāi)發(fā)策略完成產(chǎn)品。先在第一個(gè)周期中開(kāi)發(fā)出最小的合理產(chǎn)品,再?zèng)Q定在接下來(lái)的每一個(gè)周期中要加進(jìn)去的功能。這樣的步驟可以保證得到一系列最終產(chǎn)品的可運(yùn)行的前期版本。每個(gè)周期包括7個(gè)步驟:決定策略、進(jìn)行計(jì)劃、考慮需求、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試和最終檢查。,TSP度量要素,對(duì)軟件開(kāi)發(fā)小組進(jìn)行度量的基本要素:所編文檔頁(yè)數(shù);所編代碼行數(shù);花費(fèi)在各個(gè)開(kāi)發(fā)階段或各個(gè)開(kāi)發(fā)任務(wù)上的時(shí)間;在各個(gè)開(kāi)發(fā)階段中注入和改正的差錯(cuò)數(shù)目;在
28、各個(gè)階段對(duì)最終產(chǎn)品增加的價(jià)值。,TSP度量要素,TSP有關(guān)質(zhì)量度量的經(jīng)驗(yàn)原則:軟件設(shè)計(jì)時(shí)間應(yīng)大于軟件實(shí)現(xiàn)時(shí)間;設(shè)計(jì)評(píng)審時(shí)間至少應(yīng)占一半以上的設(shè)計(jì)時(shí)間;代碼評(píng)審時(shí)間應(yīng)大于編制代碼的時(shí)間;每千行源程序在編譯階段發(fā)現(xiàn)的差錯(cuò)不應(yīng)超過(guò)10個(gè);每千行源程序在測(cè)試階段發(fā)現(xiàn)的差錯(cuò)不應(yīng)超過(guò)5個(gè)。,PSP、TSP與CMMI之間的關(guān)系,PSP、 TSP 和CMMI為軟件產(chǎn)業(yè)提供了一個(gè)集成化的、三維的軟件過(guò)程改革框架。,PSP注重于個(gè)人的技能,能夠指
29、導(dǎo)軟件工程師保證自己的工作質(zhì)量,估計(jì)和規(guī)劃自身的工作,度量和追蹤個(gè)人的表現(xiàn),管理自身的軟件過(guò)程和產(chǎn)品質(zhì)量。經(jīng)過(guò)PSP的學(xué)習(xí)和實(shí)踐,軟件工程師們能夠在他們參與的項(xiàng)目中更為高效和高質(zhì)量地完成工作,從而保證了項(xiàng)目整體的進(jìn)度和質(zhì)量。,PSP、TSP與CMMI之間的關(guān)系,TSP注重團(tuán)隊(duì)的高效工作和產(chǎn)品交付能力,結(jié)合PSP的工程技能,使軟件工程師將個(gè)體過(guò)程結(jié)合進(jìn)小組軟件過(guò)程,并通過(guò)指導(dǎo)管理層如何支持和授權(quán)項(xiàng)目小組,堅(jiān)持團(tuán)隊(duì)的高質(zhì)量的工作,并且依據(jù)數(shù)
30、據(jù)進(jìn)行項(xiàng)目管理,以達(dá)到生產(chǎn)高質(zhì)量產(chǎn)品的目的。,PSP、TSP與CMMI之間的關(guān)系,CMMI注重于組織能力和成熟度的提高,它提供了評(píng)價(jià)組織的能力、改進(jìn)組織過(guò)程的管理方式,比TSP具有更高的層次。CMMI關(guān)注“做什么”,PSP和TSP則提供了“怎么做”。,PSP、TSP與CMMI之間的關(guān)系,第六節(jié) 敏捷軟件開(kāi)發(fā)方法,核心思想:敏捷軟件開(kāi)發(fā)方法的思想是現(xiàn)代管理理念的延伸,其核心是以人為本,發(fā)揮人的主觀能動(dòng)性。敏捷軟件開(kāi)發(fā)方法認(rèn)為,對(duì)項(xiàng)
31、目最重要的影響因素是人,而不是過(guò)程和技術(shù)。不能把人員當(dāng)做由過(guò)程驅(qū)動(dòng)的“可插拔替換的編程單元”,而要發(fā)揮人的能動(dòng)性,建立緊密協(xié)作的、自組織的團(tuán)隊(duì)。,核心思想,以過(guò)程為核心(而不是以人為核心)的軟件組織為了少犯錯(cuò)誤,保證項(xiàng)目成功,而從項(xiàng)目開(kāi)發(fā)經(jīng)驗(yàn)中總結(jié)和定義了許多過(guò)程,用于約束開(kāi)發(fā)行為,避免重復(fù)相同的錯(cuò)誤。由于項(xiàng)目的復(fù)雜性和多樣性,這種過(guò)程定義會(huì)越來(lái)越多,最終形成一個(gè)龐大的、笨重的過(guò)程集合,這樣的過(guò)程集合會(huì)降低開(kāi)發(fā)效率和產(chǎn)品質(zhì)量,增加開(kāi)發(fā)成
32、本。,敏捷軟件開(kāi)發(fā)宣言,我們正在通過(guò)親身實(shí)踐以及幫助他人實(shí)踐,揭示更好的軟件開(kāi)發(fā)方法。通過(guò)這項(xiàng)工作,我們認(rèn)為: 人和交互 重于 過(guò)程和工具 可以工作的軟件 重于 面面俱到的文檔 客戶合作 重于 合同談判 隨時(shí)應(yīng)對(duì)變化 重于 遵循計(jì)劃 雖然右項(xiàng)也有其價(jià)值,但我們認(rèn)為左項(xiàng)更加重要。,人和
33、交互重于過(guò)程和工具,只有好的過(guò)程而缺乏合格的人員,不能保證項(xiàng)目不失敗。優(yōu)秀的人員不一定是頂尖的技術(shù)人才,但一定能和其它人員良好地協(xié)作。擁有一般的技術(shù)人才,但能夠有效溝通、緊密協(xié)作的團(tuán)隊(duì)比那種雖擁有技術(shù)精英,但不能有效溝通的團(tuán)隊(duì)更有可能取得成功。,工具雖然重要,但那種最先進(jìn)的、大而復(fù)雜的工具不一定適合組織的需要,而且可能會(huì)給組織帶來(lái)負(fù)面影響。先嘗試小而靈便的工具。首先要致力于建立團(tuán)隊(duì),然后讓團(tuán)隊(duì)根據(jù)自己的需要配置工具環(huán)境。,人和交
34、互重于過(guò)程和工具,可以工作的軟件重于面面俱到的文檔,過(guò)多的文檔會(huì)帶來(lái)許多負(fù)面影響。需花費(fèi)許多資源來(lái)產(chǎn)生這些文檔并保持它們之間的一致性(特別是文檔與編碼之間的一致性)。如果不一致,文檔將成為產(chǎn)生混亂的根源。應(yīng)該書寫一些文檔來(lái)描述系統(tǒng)的基本結(jié)構(gòu)和原理,但文檔一定要短而精煉,只用來(lái)描述總體設(shè)計(jì)原理和最高層次的系統(tǒng)結(jié)構(gòu)。代碼已包含了最豐富的、且無(wú)歧義的系統(tǒng)信息。,當(dāng)有新的成員加入項(xiàng)目團(tuán)隊(duì),通過(guò)與他不斷地交流和密切地合作來(lái)使他熟悉當(dāng)前項(xiàng)目,而
35、不是讓他閱讀大量文檔。不要去產(chǎn)生文檔,除非有緊迫而明顯的需求。,可以工作的軟件重于面面俱到的文檔,客戶合作重于合同談判,軟件項(xiàng)目的成功依賴于客戶頻繁的反饋,而不是依賴于與客戶達(dá)成的合同或協(xié)議。合同中所規(guī)定的需求、進(jìn)度和成本很容易變得沒(méi)有意義,因?yàn)轫?xiàng)目處在持續(xù)不斷的變化中??蛻舯仨毭刻炫c開(kāi)發(fā)團(tuán)隊(duì)一起工作,對(duì)開(kāi)發(fā)團(tuán)隊(duì)的工作及時(shí)提供反饋。,隨時(shí)應(yīng)對(duì)變化重于遵循計(jì)劃,由于項(xiàng)目中存在很多不確定因素,應(yīng)對(duì)變化的能力常常決定了項(xiàng)目的成敗。計(jì)劃
36、必須是靈活的,能夠適應(yīng)業(yè)務(wù)和技術(shù)的變化。一個(gè)比較好的計(jì)劃策略是:對(duì)未來(lái)兩星期的工作制定詳細(xì)的計(jì)劃;對(duì)未來(lái)3個(gè)月的工作制定很粗略的計(jì)劃;對(duì)更遠(yuǎn)的時(shí)間段,則制定最初級(jí)的計(jì)劃。,敏捷原則,由敏捷軟件開(kāi)發(fā)宣言的思想衍生出敏捷軟件開(kāi)發(fā)的12條原則。(1)我們最優(yōu)先要做的是通過(guò)盡早地、持續(xù)地交付有價(jià)值的軟件來(lái)滿足客戶的需要。有統(tǒng)計(jì)數(shù)字表明,越早、越頻繁地向用戶交付軟件,軟件的質(zhì)量就越好。敏捷開(kāi)發(fā)方法力求項(xiàng)目開(kāi)始幾周后,就向用戶交付一個(gè)最初的
37、系統(tǒng),以后每隔兩周就交付一個(gè)增加了功能的系統(tǒng)。,對(duì)于每次交付的軟件,客戶可以將其投入應(yīng)用,如果軟件的功能還不足以滿足應(yīng)用的需要,就只對(duì)其進(jìn)行審查,并提出修改意見(jiàn)。,敏捷原則,敏捷原則,(2)歡迎需求的變化,即使到了開(kāi)發(fā)的后期。敏捷過(guò)程能夠駕馭變化,為客戶創(chuàng)造競(jìng)爭(zhēng)優(yōu)勢(shì)。使用敏捷過(guò)程的開(kāi)發(fā)組織歡迎需求的變化,因?yàn)樗麄冋J(rèn)為需求變化可以讓它們更多地了解市場(chǎng)。敏捷開(kāi)發(fā)組織采用各種方法和技術(shù),使軟件的結(jié)構(gòu)高度靈活,需求的變化對(duì)系統(tǒng)的影響被最小化
38、。,敏捷原則,(3)頻繁交付可以工作的軟件,從幾個(gè)星期到幾個(gè)月,時(shí)間越短越好。敏捷開(kāi)發(fā)組織不滿足于交付文檔和計(jì)劃,他們的目標(biāo)是頻繁地交付可以工作的軟件,從而滿足客戶的需要。,(4)在整個(gè)項(xiàng)目開(kāi)發(fā)期間,業(yè)務(wù)人員和開(kāi)發(fā)人員必須每天工作在一起。軟件項(xiàng)目必須被不斷地調(diào)整和引導(dǎo),這要求用戶、開(kāi)發(fā)者和其他利益干系人要頻繁地交流。,敏捷原則,敏捷原則,(5)圍繞斗志高昂的人構(gòu)建項(xiàng)目,給他們提供所需的環(huán)境和支持,并且信任他們能夠完成任務(wù)。在一個(gè)敏
39、捷項(xiàng)目中,人員被認(rèn)為是最重要的因素,其它所有因素(過(guò)程、環(huán)境、管理等)都被認(rèn)為是次要的,當(dāng)這些因素對(duì)人員造成不利影響時(shí),就必須對(duì)其做出改變。例如,如果某些過(guò)程步驟對(duì)團(tuán)隊(duì)人員來(lái)說(shuō)是個(gè)障礙,那么過(guò)程就必須改變。,(6)在團(tuán)隊(duì)內(nèi)部,最有效率和最有效果的信息傳達(dá)方式就是面對(duì)面的交流。在敏捷項(xiàng)目中,主要的交流方式就是交談。文檔在必要的時(shí)候會(huì)被創(chuàng)建,但不會(huì)試圖用文檔來(lái)捕獲所有項(xiàng)目信息。在敏捷項(xiàng)目組中,默認(rèn)的交流方式是交談,而不是文檔。,敏捷原
40、則,(7)可以工作的軟件是進(jìn)度的主要度量標(biāo)準(zhǔn)。對(duì)于敏捷項(xiàng)目來(lái)說(shuō),進(jìn)度的度量標(biāo)準(zhǔn)是當(dāng)前可滿足用戶需求的軟件的量,而不是當(dāng)前項(xiàng)目所處的階段、文檔數(shù)量或基礎(chǔ)代碼的數(shù)量。項(xiàng)目完成了30%的含義是30%的用戶所需功能已被實(shí)現(xiàn)。,敏捷原則,(8)敏捷過(guò)程提倡可持續(xù)開(kāi)發(fā)。出資人、開(kāi)發(fā)者和用戶應(yīng)該共同維持一個(gè)穩(wěn)定的開(kāi)發(fā)速度。敏捷小組會(huì)在整個(gè)項(xiàng)目開(kāi)發(fā)期間保持一個(gè)適當(dāng)?shù)?、可持續(xù)的開(kāi)發(fā)速度,從而維持最高的質(zhì)量標(biāo)準(zhǔn)。敏捷項(xiàng)目不會(huì)使開(kāi)發(fā)者感到疲憊不堪。,敏
41、捷原則,(9)對(duì)卓越技術(shù)和良好設(shè)計(jì)的不斷追求有助于提高敏捷性。敏捷開(kāi)發(fā)團(tuán)隊(duì)認(rèn)為提高質(zhì)量會(huì)加快開(kāi)發(fā)進(jìn)度。因此要保持軟件的精簡(jiǎn)和健壯。敏捷開(kāi)發(fā)團(tuán)隊(duì)的每個(gè)成員都要致力于開(kāi)發(fā)高質(zhì)量的代碼,不能把混亂的、底質(zhì)量的代碼留到以后去修改。,敏捷原則,(10)簡(jiǎn)單——盡量減少工作量的藝術(shù)是至關(guān)重要的。敏捷開(kāi)發(fā)方法總是選擇達(dá)到目標(biāo)的最簡(jiǎn)單途徑。敏捷開(kāi)發(fā)團(tuán)隊(duì)并不花費(fèi)大量精力去預(yù)防將來(lái)可能出現(xiàn)的問(wèn)題,而是專注于對(duì)當(dāng)前工作采用最簡(jiǎn)單、最高質(zhì)量的解決方案,
42、并相信將來(lái)如果問(wèn)題出現(xiàn),可以很方便地進(jìn)行修改。,敏捷原則,(11)最好的架構(gòu)、需求和設(shè)計(jì)都出自于自組織的團(tuán)隊(duì)。敏捷開(kāi)發(fā)團(tuán)隊(duì)是自組織的團(tuán)隊(duì)。職責(zé)并非是從團(tuán)隊(duì)外部加給每一個(gè)團(tuán)隊(duì)成員,而是團(tuán)隊(duì)作為一個(gè)整體接受職責(zé)并自己決定怎樣去完成它。敏捷開(kāi)發(fā)團(tuán)隊(duì)成員在項(xiàng)目的各個(gè)方面(架構(gòu)、需求、測(cè)試等)都是共同負(fù)責(zé)的,不會(huì)出現(xiàn)某一人單獨(dú)負(fù)責(zé)一方面任務(wù)的情況。,敏捷原則,(12)每隔一定時(shí)間,團(tuán)隊(duì)都要總結(jié)怎樣更有效率地工作,然后相應(yīng)地調(diào)整自己的行為。敏
43、捷開(kāi)發(fā)團(tuán)隊(duì)認(rèn)識(shí)到環(huán)境在不斷地改變,因此團(tuán)隊(duì)也需要不斷地對(duì)組織、規(guī)則、慣例和各種關(guān)系進(jìn)行調(diào)整,以保持自身的敏捷性。,敏捷原則,極限編程實(shí)踐,符合敏捷軟件開(kāi)發(fā)思想和原則的具體實(shí)踐方法有多種,如極限編程(XP)、Scrum、Crystal Methods、FDD等。極限編程(Extreme Programming,XP)是最著名的敏捷開(kāi)發(fā)方法,它由一系列簡(jiǎn)單的、互相依賴的最佳實(shí)踐組成。,客戶也是開(kāi)發(fā)團(tuán)隊(duì)成員,客戶作為開(kāi)發(fā)團(tuán)隊(duì)的成員,與開(kāi)發(fā)人
44、員密切合作,共同解決存在的問(wèn)題。,短交付周期,XP項(xiàng)目每?jī)芍芟蚩蛻艚桓兑淮诬浖桓兜能浖婕翱蛻舻囊徊糠中枨?,客戶要及時(shí)作出反饋。為了實(shí)現(xiàn)短交付周期,項(xiàng)目組需要制定迭代計(jì)劃和發(fā)布計(jì)劃。兩周為一個(gè)迭代周期,迭代代表向用戶的一次產(chǎn)品交付,是用戶所需功能的一個(gè)集合。六個(gè)迭代(約三個(gè)月時(shí)間)形成一個(gè)發(fā)布(Release),發(fā)布是一個(gè)主要的產(chǎn)品交付,會(huì)被集成到最終產(chǎn)品中。,項(xiàng)目組必須為每次迭代和發(fā)布制定預(yù)算。用戶根據(jù)預(yù)算來(lái)選擇迭代和發(fā)布中
45、所包含的功能。,短交付周期,結(jié)對(duì)編程,兩個(gè)程序員用一臺(tái)電腦一起工作,其中一人操作鍵盤,輸入程序,另一人與他密切交流,檢查錯(cuò)誤和需要改進(jìn)的地方。兩人的角色頻繁互換。所編寫的代碼由兩人共同負(fù)責(zé)。每個(gè)程序員至少每天更換一次配對(duì)的對(duì)象,這樣當(dāng)一個(gè)迭代結(jié)束后,每個(gè)程序員都與小組中所有其它程序員配過(guò)對(duì),工作涉及到本次迭代的所有內(nèi)容。,結(jié)對(duì)編程能夠極大地促進(jìn)知識(shí)在團(tuán)隊(duì)中的傳播,沒(méi)有任何一個(gè)程序模塊由單獨(dú)一人完成,這樣就保證了任何人的工作在必要時(shí)都
46、可由其他人代替完成。經(jīng)驗(yàn)證明,結(jié)對(duì)編程沒(méi)有降低開(kāi)發(fā)團(tuán)隊(duì)的效率,而且大幅度地減小了缺陷率。,結(jié)對(duì)編程,集體所有權(quán),代碼歸集體所有,團(tuán)隊(duì)中的所有成員都有權(quán)訪問(wèn)和改進(jìn)項(xiàng)目的所有模塊代碼。沒(méi)有一個(gè)人單獨(dú)負(fù)責(zé)某一模塊或技術(shù)。集體所有權(quán)可促進(jìn)交流,增強(qiáng)團(tuán)隊(duì)凝聚力和發(fā)揮集體創(chuàng)造力。,可持續(xù)的開(kāi)發(fā)速度,軟件項(xiàng)目不是短跑,而是馬拉松,它需要一個(gè)可持續(xù)的速度,能夠保持能量和敏銳性。極限編程的一個(gè)原則是“不要加班”,但也有例外,即在一個(gè)發(fā)布周期的最后
47、一周加班是允許的,因?yàn)檫@時(shí)可能需要加速以達(dá)到發(fā)布目標(biāo)。,開(kāi)放工作空間,開(kāi)發(fā)小組在一個(gè)大的辦公區(qū)域中一同工作,每個(gè)桌子上放兩到三臺(tái)電腦,墻上可以張貼狀態(tài)圖、任務(wù)分解圖等各種圖表。這樣的工作環(huán)境便于交流,每個(gè)人員都可以及時(shí)了解到小組其他人員的工作狀態(tài),知道他們是否遇到了麻煩。,計(jì)劃游戲,XP項(xiàng)目計(jì)劃的主導(dǎo)思想是將業(yè)務(wù)責(zé)任和開(kāi)發(fā)責(zé)任相分離。業(yè)務(wù)人員(客戶)確定哪些產(chǎn)品特征是重要的,開(kāi)發(fā)人員確定實(shí)現(xiàn)這些特征需花費(fèi)多少成本。在每個(gè)迭代或發(fā)布周
48、期的開(kāi)始,開(kāi)發(fā)人員交給客戶一個(gè)預(yù)算,說(shuō)明在該迭代或發(fā)布周期中能夠完成多少工作,客戶根據(jù)這個(gè)預(yù)算選擇需實(shí)現(xiàn)哪些產(chǎn)品功能。,敏捷軟件開(kāi)發(fā)方法參考資料,《解析極限編程:擁抱變化(第二版)》,Kent Beck著,電子工業(yè)出版社《敏捷軟件開(kāi)發(fā):原則、模式與實(shí)踐》,Robert C. Martin著,人民郵電出版社,敏捷開(kāi)發(fā)方法是針對(duì)傳統(tǒng)的重量級(jí)開(kāi)發(fā)方法的缺點(diǎn)而提出的,但它并沒(méi)有全盤否定重量級(jí)開(kāi)發(fā)方法。兩種方法不是誰(shuí)取代誰(shuí)的關(guān)系,它們互相吸取
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- it軟件項(xiàng)目管理
- 軟件項(xiàng)目管理-進(jìn)度管理
- 淺談軟件項(xiàng)目管理
- 軟件項(xiàng)目管理規(guī)范
- 軟件項(xiàng)目管理方案
- 軟件項(xiàng)目管理習(xí)題
- 公司軟件項(xiàng)目管理規(guī)范
- 軟件開(kāi)發(fā)項(xiàng)目管理
- 軟件項(xiàng)目研發(fā)管理流程
- 軟件測(cè)試項(xiàng)目過(guò)程管理
- 軟件項(xiàng)目管理試題集
- 軟件項(xiàng)目管理習(xí)題答案
- 軟件項(xiàng)目風(fēng)險(xiǎn)管理
- 軟件開(kāi)發(fā)項(xiàng)目管理
- 軟件項(xiàng)目管理流程總結(jié)
- 軟件項(xiàng)目管理流程總結(jié)
- 6軟件外包項(xiàng)目管理
- 軟件項(xiàng)目實(shí)施管理計(jì)劃
- 關(guān)于軟件項(xiàng)目質(zhì)量管理
- 軟件項(xiàng)目管理教學(xué)大綱
評(píng)論
0/150
提交評(píng)論