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