Posted on 2005-01-16 23:18
laogao 閱讀(859)
評論(0) 編輯 收藏 所屬分類:
Project Management
一個典型的J2EE項目通常應該使用哪一種開發流程呢?流行開發流程有很多種,應用比較廣泛的有:瀑布式、迭代式、以及RUP (Rational Unified Process)。每一種都有其優點和不足,所以通常我們應該把它們結合起來而不是認定其中一個然后100%按著它的規范走。
首先來看看每一種大致是什么意思:
[瀑布式]
這種模式的流程強調在開始編碼和測試之前完成所有的需求分析和設計,這種模式歷史相當久遠,也很成熟,甚至到了今天,這種模式還是被廣泛的采用到絕大多數公司和項目中。采用這種模式開發的項目通常很大,并且需要較長時間交付。正因為如此,這些項目通常會有更多的風險:在業務需求不斷變化的今天,如果待開發的系統不能及時反應出這些需求的變化,最終開發出來的產品可能已經不是客戶真正需要的了。
[迭代式]
為了應對傳統瀑布式的開發在處理需求變更上的不足,近些年出現了一種全新的極限編程的概念。極限編程(XP)的核心思想在于:從長遠看,早期發現錯誤以及降低復雜度可以節約成本。極限編程強調我們將任務/系統細分為可以在較短周期解決的一個個子任務/模塊,并且強調測試、代碼質量和及早發現問題。通常,通過一個個短小的迭代周期,我們就可以獲得一個個階段性的進展,并且可以及時形成一個版本供用戶參考,以便及時對用戶可能的需求變更作出響應。
[RUP]
RUP的全稱是Rational Unified Process,是一套定義得很完整的軟件工程模型。它強調編碼前的需求分析和設計,以及短迭代周期的開發和發布。它鼓勵團隊首先開發項目中風險最高的模塊,用更多的時間發現和應對問題,當設計需要變化時,它也能夠在一定程度上減輕一些重復工作。不過,因為RUP十分嚴謹,也比較具體,通常要完全跟著這個流程走也不是100%必要。
下面我們來看看實際上我們應該采取什么樣的流程或者策略:
實際的J2EE項目中,RUP的應用呈逐年上升的趨勢,不過也并非所有這些采用了RUP的項目也是完完全全RUP式的。我們可以考慮一種綜合上面三種流程的優點的方式,根據具體的項目量體裁衣。需要對這幾種的優點來一個總結:瀑布式由于比較成熟,通常很好的強調了先需求后設計再編碼的重要性,也比較適合大公司先預算后執行的方式;極限編程強調測試先行和簡單是美,這樣有利于及早發現問題以及更好的應對變化;RUP強調的集中化的分析和設計也有其不可替代的優越性。
要做出一個結論性的答案并不容易,如果貴公司相對較大并且愿意支付一定的管理成本來推一套成熟且完整的開發流程并在公司內部所有項目或者是大多數項目嚴格執行,我想RUP應該是首選;如果貴公司希望有更大的靈活性,可以考慮一些折衷的方案,根據具體的項目,從上面三種流程提取有價值的部分,來確定具體的流程。