XP 與CMM 、RUP 的比較

來源:互聯網
上載者:User

RUP是一套管理方法,用於項目從需求到發布的管理
而敏捷則是一種思想,一種價值觀:價值迭代交付,以人為本
有一些基于敏捷思想的實踐比如Scrum、XP等也都是管理方法或開發方法層面的內容
RUP可以與敏捷的思想結合,可以在敏捷思想指導下進行管理,那就是敏捷的RUP

XP 與CMM 、RUP 的比較
CMM
告訴組織為了系統化地建立、實施和改進軟體開發過程應該做些什麼,但沒有說明如何去做以及採用哪些具體的技術、策略和方法。CMM
是一套通用的過程實踐標準,適用面很廣。實施CMM 要求組織在過程的制度化建設上付出大量努力,通常被認為是重載(heavy-weight)的模型。
XP
是一個針對某種特定環境(需求變化快的小型團隊)的具體過程實施模型和方法論。它其實是一種演化式的原型化方法(evolutionary
prototyping)[MCNL96],具有溝通高效、設計簡單、反饋迅速等特點,因而是一種輕載(light-weight)、敏捷(agile)
的過程方法。
Mark Paulk 在他的文章中把XP 的實踐方法與CMM
的KPA(關鍵過程域)進行了對照。得出的結論是,XP部分滿足或大部分滿足了CMM 2-3 級KPA 的要求,而基本上沒有涉及CMM 4-5
級的KPA。這說明XP 的做法基本符合了CMM 的目標和KPA,但還不完備。總體上看,XP 側重於具體的過程和開發技術,而CMM
更關注組織和管理上的問題。XP 缺少的一個重要內容是“制度化(institutionalization)”,它不含有被CMM
認為是使良好的工程和管理實踐制度化的關鍵基礎設施和管理要件。[PALK01]
RUP(Rational Unified
Process)是一個風險驅動的基於UML 和構件式架構的迭代遞增型開發過程(架構)。RUP 定義了4 個階段(起始、細化、構造、移交)和9
個科目(業務建模、需求、分析和設計、實現、測試、部署、配置和變更管理、專案管理、環境)。這些階段對應著關鍵裡程碑的劃分,而不同科目的工作流程和活動
在生命週期的迭代中可以並發進行,具體執行的程度則可以調節。RUP
對於角色、流程、工件和活動的要求是靈活的、可配置的,所以它廣泛地適用於各種類型和規模的項目。RUP 集中體現了6
個軟體開發的最佳實務方法:迭代式開發、需求管理、構件式架構、基於UML 的可視化建模、持續校正品質、變更管理。RUP
是一種以架構為中心的開發過程,而這正是大、中型項目成功的關鍵。
XP
的編碼和設計活動融為一體,弱化了架構的概念,這是它與強調架構設計的RUP
的最大不同。架構的內涵要遠大於一些簡單的隱喻,它要考慮結構、行為、環境、使用、功能、效能、可靠性、彈性、重用、可理解性、約束和權衡乃至美學等諸多
方面的因素。設計架構的目的不是為了完美地表示系統的全部細節,而是為了消除最主要和最關鍵的架構風險。RUP
細化階段的主要目的就是構造出一個可啟動並執行架構原型,作為將來添加需求功能的穩固基礎。另外,XP
沒有包含業務建模、部署等概念,反映了它以編程為中心、節省一切的哲學。
當然兩者也有不少共同點。例如,它們的基礎都是物件導向方法(取代傳統的結構化方法),都重視代碼、文檔的最小化和設計的簡化,採用動態適應變化的演化式迭代周期(取代傳統的瀑布型生命週期)、需求和測試驅動並鼓勵使用者積极參与等等。

於RUP 提供了非常豐富的內容,所以常常被誤解為一個重載的過程。通過定製RUP
這個通用的過程架構,去掉項目不必要的工件(artifacts)和中間環節,把XP
的做法(比如短小的迭代周期、結對程式設計、測試優先的設計和重構)吸收進來,也可以實現RUP 過程的敏捷和輕量化[SMTH01]。“Bob
大叔”(Robert Martin)甚至從RUP中裁剪出了一個酷似XP 的最小化RUP 過程——dx[MART01]。我設想,XP、RUP
乃至其他工程和管理方法可以統一起來使用,姑且成之為統一軟體過程(Unified Software
Process,USP)。例如,一個大項目團隊在起始和細化階段採用RUP 方法完成需求分析和架構設計,在構造和移交階段採用XP
的做法來實現部分子系統或模組。
“輕載”、“敏捷”是美麗的詞彙,無人會拒之於門外。我想XP、RUP
的目標是一致的——提高團隊效率、開發出高品質的軟體,而區別就在於各自的側重點不同,從而導致兩者的適用情況和應用範圍有差異。然而,它們是可以互補
的,無論是以架構為中心,還是以代碼為中心,靈活運用的關鍵就在於掌握其中的最佳實務方法,實施RUP、XP
或者融合了兩者的過程(比如USP)都將有助於組織更好地實現CMM 目標。

RUP是一套管理方法,用於項目從需求到發布的管理
而敏捷則是一種思想,一種價值觀:價值迭代交付,以人為本
有一些基于敏捷思想的實踐比如Scrum、XP等也都是管理方法或開發方法層面的內容
RUP可以與敏捷的思想結合,可以在敏捷思想指導下進行管理,那就是敏捷的RUP

XP 與CMM 、RUP 的比較
CMM
告訴組織為了系統化地建立、實施和改進軟體開發過程應該做些什麼,但沒有說明如何去做以及採用哪些具體的技術、策略和方法。CMM
是一套通用的過程實踐標準,適用面很廣。實施CMM 要求組織在過程的制度化建設上付出大量努力,通常被認為是重載(heavy-weight)的模型。
XP
是一個針對某種特定環境(需求變化快的小型團隊)的具體過程實施模型和方法論。它其實是一種演化式的原型化方法(evolutionary
prototyping)[MCNL96],具有溝通高效、設計簡單、反饋迅速等特點,因而是一種輕載(light-weight)、敏捷(agile)
的過程方法。
Mark Paulk 在他的文章中把XP 的實踐方法與CMM
的KPA(關鍵過程域)進行了對照。得出的結論是,XP部分滿足或大部分滿足了CMM 2-3 級KPA 的要求,而基本上沒有涉及CMM 4-5
級的KPA。這說明XP 的做法基本符合了CMM 的目標和KPA,但還不完備。總體上看,XP 側重於具體的過程和開發技術,而CMM
更關注組織和管理上的問題。XP 缺少的一個重要內容是“制度化(institutionalization)”,它不含有被CMM
認為是使良好的工程和管理實踐制度化的關鍵基礎設施和管理要件。[PALK01]
RUP(Rational Unified
Process)是一個風險驅動的基於UML 和構件式架構的迭代遞增型開發過程(架構)。RUP 定義了4 個階段(起始、細化、構造、移交)和9
個科目(業務建模、需求、分析和設計、實現、測試、部署、配置和變更管理、專案管理、環境)。這些階段對應著關鍵裡程碑的劃分,而不同科目的工作流程和活動
在生命週期的迭代中可以並發進行,具體執行的程度則可以調節。RUP
對於角色、流程、工件和活動的要求是靈活的、可配置的,所以它廣泛地適用於各種類型和規模的項目。RUP 集中體現了6
個軟體開發的最佳實務方法:迭代式開發、需求管理、構件式架構、基於UML 的可視化建模、持續校正品質、變更管理。RUP
是一種以架構為中心的開發過程,而這正是大、中型項目成功的關鍵。
XP
的編碼和設計活動融為一體,弱化了架構的概念,這是它與強調架構設計的RUP
的最大不同。架構的內涵要遠大於一些簡單的隱喻,它要考慮結構、行為、環境、使用、功能、效能、可靠性、彈性、重用、可理解性、約束和權衡乃至美學等諸多
方面的因素。設計架構的目的不是為了完美地表示系統的全部細節,而是為了消除最主要和最關鍵的架構風險。RUP
細化階段的主要目的就是構造出一個可啟動並執行架構原型,作為將來添加需求功能的穩固基礎。另外,XP
沒有包含業務建模、部署等概念,反映了它以編程為中心、節省一切的哲學。
當然兩者也有不少共同點。例如,它們的基礎都是物件導向方法(取代傳統的結構化方法),都重視代碼、文檔的最小化和設計的簡化,採用動態適應變化的演化式迭代周期(取代傳統的瀑布型生命週期)、需求和測試驅動並鼓勵使用者積极參与等等。

於RUP 提供了非常豐富的內容,所以常常被誤解為一個重載的過程。通過定製RUP
這個通用的過程架構,去掉項目不必要的工件(artifacts)和中間環節,把XP
的做法(比如短小的迭代周期、結對程式設計、測試優先的設計和重構)吸收進來,也可以實現RUP 過程的敏捷和輕量化[SMTH01]。“Bob
大叔”(Robert Martin)甚至從RUP中裁剪出了一個酷似XP 的最小化RUP 過程——dx[MART01]。我設想,XP、RUP
乃至其他工程和管理方法可以統一起來使用,姑且成之為統一軟體過程(Unified Software
Process,USP)。例如,一個大項目團隊在起始和細化階段採用RUP 方法完成需求分析和架構設計,在構造和移交階段採用XP
的做法來實現部分子系統或模組。
“輕載”、“敏捷”是美麗的詞彙,無人會拒之於門外。我想XP、RUP
的目標是一致的——提高團隊效率、開發出高品質的軟體,而區別就在於各自的側重點不同,從而導致兩者的適用情況和應用範圍有差異。然而,它們是可以互補
的,無論是以架構為中心,還是以代碼為中心,靈活運用的關鍵就在於掌握其中的最佳實務方法,實施RUP、XP
或者融合了兩者的過程(比如USP)都將有助於組織更好地實現CMM 目標。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.