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