UML Distlled的第二章的閱讀筆記
UML是一組統一的建模工具。建模是Development Process的一個不可缺少的組成部分。Development Process是計算機科學中的管理學科。
RUP(Rational Unified Process)是一個非常流行的Development Process Framework。
兩類Development Process: Iterative和Waterfall
Waterfall以軟件開發的工作為基礎來劃分,依次分為需求分析,設計,編碼和測試。一個1年長的項目可能分為2個月的需求分析,跟著4個月的設計周期,3個月的編碼周期和3個月的測試周期。
Iterative以軟件的功能為基礎來劃分。一個1年長的項目可能分成4個循環,每個循環持續3個月,每個循環實現四分之一的功能。每個循環都要經過需求分析,設計,編碼和測試四個步驟。在開始新的循環之前要保證上一循環的質量,絕對不能把測試推遲到最后。
當然,這只是對兩類Development Process的簡單劃分,在實踐中,有不少現象模糊兩者之間的區別。
Waterfall的分析和設計很可能在編碼的周期里還需要修改,甚至返回重新設計。編碼可能在分析結束之前就開始了。但是Waterfall的一個目的就是為了盡可能地減少這些活動。
采用Iterative方式,在真正的循環開始之前,可能會有一個實驗階段。以分析開發這一軟件的可行性和經濟性。在實驗階段還需要做一定的需求分析,但是并不深入到如Waterfall的需求分析和真正循環里的需求分析那樣的細度,這里做的需求分析的目的是為了能夠劃分各個循環的功能,至少是第一個循環的功能。
兩類Development Process也存在混合使用的可能,比如分析和高級的設計采用Waterfall的方式,編碼和測試采用Iterative的方式。采用這種方式,可能先用4個月做分析和設計,跟著3個2個月長的周期循環。
采用Iterative Development方式的時候,當無法在一個Iteration里實現指定的功能的時候,應該將一部分功能推遲到下個Iteration,而不是推遲Iteration的時間,更加不應該減少測試的時間。這就需要一種給功能定等級的方法,等級高的功能應該優先實現。
采用Iterative Development經常要面對的一個問題是扔掉代碼。后期循環的分析和設計,可能會影響前面循環中編寫的代碼,這時你可以選擇修改或者重新寫,有意思的是,在軟件開發領域,重新寫的效率比修改代碼要高?,F在有很多工具幫助人們提高重新寫的效率,自動破壞測試(Automated Regression Test),重構(Refactoring), 持續集成(Continuous Integration).
轉載請保留
http://www.aygfsteel.com/xilaile/archive/2007/04/21/112452.html