| > > > | 軟件開(kāi)發(fā)過(guò)程學(xué)習總結 目的:初步理解CMM、RUP、XP分別是怎樣的過(guò)程,弄懂其關(guān)鍵步驟,分析其優(yōu)劣及適應情況。最后綜各家之長(cháng),給出一個(gè)可能較實(shí)用可行的軟件開(kāi)發(fā)過(guò)程體系X Process,以用在項目(或產(chǎn)品)開(kāi)發(fā)中。 By Robin Zhang. http://robinzhang.cnblogs.com/ MSN:Robinsz@hotmail.com 一、 CMM 1. 綜述 CMM2-CMM3,可以看作是一個(gè)嚴謹的,傳統瀑布式的開(kāi)發(fā)體系。 CMM并未提供具體的過(guò)程體系,它只是一個(gè)評價(jià)標準(“軟件能力成熟度”)。 但它提供了一個(gè)目標:一個(gè)可重復賦值成功經(jīng)驗的開(kāi)發(fā)體系應該是怎樣的。 知識點(diǎn): 1).通常應該從CMM2開(kāi)始實(shí)現,一般做到CMM3的已經(jīng)難得了。 2).CMM2是一套已定義的項目管理過(guò)程,CMM3是總結不同項目的經(jīng)驗,最終形成組織(公司)的一套過(guò)程標準。 3).可以考慮交叉引用,即上CMM2及CMM3的培訓、同行評審。 4).CMM與CMMI的區別:前者僅限于軟件工程,后者還包括其他學(xué)科的CMM,如系統工程等;前者一般意味著(zhù)瀑布過(guò)程,后者支持迭代方法。 參考: CMM2:“定義了項目管理過(guò)程,將項目劃分成幾個(gè)明確定義的階段,每個(gè)階段結束都是控制點(diǎn),增加了軟件開(kāi)發(fā)過(guò)程的透明度和可控性。項目執行中好的經(jīng)驗可以在別的項目中重復,軟件開(kāi)發(fā)有了一定的保證。” CMM3: “是對CMM 2 項目管理的全面整合和提高,綜合公司所有類(lèi)型項目的過(guò)程經(jīng)驗,制定公司統一的最佳過(guò)程,增加了對項目每個(gè)階段的內部過(guò)程規定和檢查點(diǎn),使得軟件開(kāi)發(fā)工程更加透明和可控。” 2. 關(guān)鍵過(guò)程 包括: CMM2:項目計劃、需求管理、配置管理、質(zhì)量管理、項目過(guò)程控制。 CMM3:同行評審(需求、設計、代碼評審)、培訓計劃、體系規范 注:能做到上面8項就可以了。
3. 適用情況 1).中大型軟件企業(yè),同時(shí)進(jìn)行多個(gè)項目、產(chǎn)品的研發(fā)(必須有一套體系以便管理、控制)。 2).需求比較明確,并已經(jīng)定義凍結的情況,如產(chǎn)品項目。 3)適合用瀑布式過(guò)程開(kāi)發(fā)的項目。 4. 優(yōu)劣 優(yōu)點(diǎn):體系嚴謹,提高了軟件開(kāi)發(fā)過(guò)程的透明度和可控性,令項目成功經(jīng)驗可以重復復制。 缺點(diǎn):因瀑布過(guò)程需要,要求需求凍結,導致需求過(guò)程要求非常高。而在項目中,需求變更是不可避免的。 5. 其他 企業(yè)上到一定規模,偏重產(chǎn)品開(kāi)發(fā)時(shí),可以考慮上CMM。中小軟件企業(yè)可借鑒并精簡(jiǎn)地實(shí)現它的關(guān)鍵過(guò)程,如項目計劃、需求管理、配置管理、質(zhì)量管理、項目過(guò)程控制、同行評審、培訓計劃。 二、 RUP1. 綜述 RUP是一個(gè)由用例驅動(dòng)、以架構為中心的、迭代增量的開(kāi)發(fā)過(guò)程框架。 2. 關(guān)鍵過(guò)程 迭代開(kāi)發(fā)過(guò)程及產(chǎn)出:見(jiàn):《UML和設計模式》第一頁(yè)。
s開(kāi)始,r精化提煉 3. 適用情況 4. 優(yōu)劣 5. 其他 參考: 三、 XP Xp注重人的因數,提倡盡量敏捷輕量級的過(guò)程。 重要過(guò)程:測試驅動(dòng)、迭代開(kāi)發(fā)、持續集成構建、客戶(hù)現場(chǎng)參與(確定迭代內的功能集,提供業(yè)務(wù)邏輯的確認,驗證程序等)、只在必要時(shí)做簡(jiǎn)單設計 一)、Xp的缺點(diǎn): 1. 要求客戶(hù)現場(chǎng)參與。通常國內項目都是前期作需求確認,無(wú)法提供整個(gè)開(kāi)發(fā)過(guò)程的需求確認支持。除非是分段來(lái)確認(如迭代結束時(shí))。 2. 測試驅動(dòng)開(kāi)發(fā)。目前還很難做到,因為編寫(xiě)測試腳本需要花費不少精力,一般項目無(wú)法做到。由此也無(wú)法作重構,無(wú)法保證能有靈活的設計來(lái)支持因前期不明確的需求而導致的變更。 3. 缺少文檔、設計支持。Xp只在必要時(shí)才寫(xiě)文檔及設計,這樣可能導致xp新手缺乏良好的設計指引,項目開(kāi)發(fā)過(guò)程透明度不夠,可能會(huì )失控。 二)、xp可借鑒的地方 1. 對整個(gè)開(kāi)發(fā)過(guò)程:迭代開(kāi)發(fā)、持續集成 2. 對特定迭代:編碼規范、保持設計靈活(允許需求改動(dòng)) 3. 設計編碼過(guò)程:測試驅動(dòng)、重構(用在編碼過(guò)程中,以客戶(hù)端來(lái)“測試驅動(dòng)”業(yè)務(wù)邏輯層、以重構減少重復代碼) 參考: 四、實(shí)用過(guò)程X Process:RUP+XP,并達到CMM2-3 考慮目前國內項目現況:需求調研先行,但需求不明確導致需求變更。中小公司缺乏過(guò)程規范指導,基本在CMM1即混亂狀態(tài)。 X Process = CMM的體系+RUP的過(guò)程+XP的最佳實(shí)踐 參考文檔:xp_vs_cmm.pdf, RUPvsXP.pdf, RUP and XP.pdf,dX Process 1. 過(guò)程:取RUP的過(guò)程 過(guò)程還是取項目啟動(dòng)、細化、構建、交付四個(gè)過(guò)程。 啟動(dòng)階段: 定義項目計劃、風(fēng)險分析、項目前景、范圍、約束;確定Actor、涉眾及收益;確定概要需求;作一個(gè)原型,實(shí)現關(guān)鍵用例。 細化階段: 確定用戶(hù)需要、產(chǎn)品特性并確認優(yōu)先級、風(fēng)險;確定80%需求,編寫(xiě)需求規格書(shū)。制定迭代計劃,需求基線(xiàn);完成重要用例的設計及實(shí)現,由此確定系統架構及第三方組件。已制定迭代計劃。同時(shí)編寫(xiě)對應用例的測試用例。 構建階段: 按計劃迭代開(kāi)發(fā)。在每個(gè)迭代里采用小瀑布的方式,應用部分XP的最佳實(shí)踐(見(jiàn)下2),每個(gè)迭代為一個(gè)里程碑,提交給客戶(hù)確認,由此得到需求變更,分析后調整迭代計劃。 交付階段: 提交客戶(hù)測試,作小的修改。編寫(xiě)產(chǎn)品說(shuō)明,用戶(hù)培訓,上線(xiàn)運行。項目總結、關(guān)閉報告。 2. 迭代內的步驟:取xp的最佳實(shí)踐 合并細化的后期+構造期,為“設計編程期”,在這期間,啟用“保持設計靈活”、編碼規范、代碼審核(結隊編程)、持續集成、測試驅動(dòng)、重構的最佳實(shí)踐。 3. 使用CMM的關(guān)鍵域的規范流程,,以達到CMM2-3的效果 在RUP的四個(gè)階段中,應用CMM的關(guān)鍵域,來(lái)保證各種產(chǎn)出的質(zhì)量。如下: 先啟階段:項目計劃、項目過(guò)程控制、配置管理、培訓計劃(設計、編碼規范) 細化階段:體系規范、同行評審(需求、設計、代碼評審)、需求管理、質(zhì)量管理 構建階段:編碼規范、設計、代碼評審、需求變更管理 交付階段:體系規范 三者的關(guān)系如下: 1. RUP:是由用例驅動(dòng)、迭代增量開(kāi)發(fā)的過(guò)程,主要定義了各個(gè)階段應該做什么,做到什么程度。 2. CMM:是一套評估標準,提供了一些關(guān)鍵實(shí)現域(需求管理等),對每一個(gè)產(chǎn)出提出了質(zhì)量要求。 3. XP:主要關(guān)注編碼階段的一些最佳實(shí)踐。是一個(gè)提倡敏捷的輕量級軟件開(kāi)發(fā)方法。強調“交流;簡(jiǎn)單;反饋;實(shí)事求是”。強調客戶(hù)參與,簡(jiǎn)單設計(靈活設計)、允許需求變更等。 4. 下面是按傳統瀑布式的過(guò)程,來(lái)考察三種過(guò)程方法在各個(gè)階段的活動(dòng)及產(chǎn)出。
|
聯(lián)系客服