事業(yè)單位考試計(jì)算機(jī)專業(yè)基礎(chǔ)知識(shí):軟件生命周期模型

字號(hào):

軟件生命周期同任何事物一樣,一個(gè)軟件產(chǎn)品或軟件系統(tǒng)也要經(jīng)歷孕育、誕生、成長(zhǎng)、成熟、衰亡等階段,一般稱為軟件生存周期(軟件生命周期)。軟件生命周期 (SDLC,軟件生存周期)是軟件的產(chǎn)生直到報(bào)廢的生命周期。為了使規(guī)模大、結(jié)構(gòu)復(fù)雜和管理復(fù)雜的軟件開(kāi)發(fā)變的容易控制和管理,人們把整個(gè)軟件生命周期劃分為若干階段,使得每個(gè)階段有明確的任務(wù),整理出軟件生命周期模型。在1970年人類整理了第一個(gè)軟件生命周期,即是瀑布型生命周期。在沒(méi)有總結(jié)到其它生命周期模型時(shí),人們直接將其命名為軟件生命周期,而隨著越來(lái)越多的生命周期模型被識(shí)別,原先的軟件生命周期就不再是瀑布型生命周期的專有名稱。而在 1970年~2000年瀑布型生命周期占統(tǒng)治地位的時(shí)候,軟件生命周期是瀑布型生命周期的另一個(gè)稱呼,也就是說(shuō)軟件生命周期指的就是瀑布型生命周期。
    瀑布型生命周期包括可行性分析與開(kāi)發(fā)項(xiàng)計(jì)劃、需求分析、設(shè)計(jì)(概要設(shè)計(jì)和詳細(xì)設(shè)計(jì))、編碼、測(cè)試、維護(hù)等階段。而其它軟件生命周期未必有與瀑布型生命周期相同的階段。敏捷類生命周期的階段劃分是按照迭代來(lái)進(jìn)行,而迭代內(nèi)部不再有階段劃分,在如測(cè)試驅(qū)動(dòng)開(kāi)發(fā)等的實(shí)踐下,就算是更細(xì)節(jié)的活動(dòng)也難以明確劃分是需求還是設(shè)計(jì)還是編碼還是測(cè)試。
    迭代式模型是是RUP推薦的周期模型。在RUP中,迭代被定義為:迭代包括產(chǎn)生產(chǎn)品發(fā)布(穩(wěn)定、可執(zhí)行的產(chǎn)品版本)的全部開(kāi)發(fā)活動(dòng)和要使用該發(fā)布必需的所有其他外圍元素。所以,在某種程度上,開(kāi)發(fā)迭代是一次完整地經(jīng)過(guò)所有工作流程的過(guò)程:(至少包括)需求工作流程、分析設(shè)計(jì)工作流程、實(shí)施工作流程和測(cè)試工作流程。實(shí)質(zhì)上,它類似小型的瀑布式項(xiàng)目。
    迭代和瀑布的的差別就在于風(fēng)險(xiǎn)的暴露時(shí)間上。 “任何項(xiàng)目都會(huì)涉及到一定的風(fēng)險(xiǎn)。如果能在生命周期中盡早確保避免了風(fēng)險(xiǎn),那么您的計(jì)劃自然會(huì)更趨精確。有許多風(fēng)險(xiǎn)直到已準(zhǔn)備集成系統(tǒng)時(shí)才被發(fā)現(xiàn)。不管開(kāi)發(fā)團(tuán)隊(duì)經(jīng)驗(yàn)如何,都絕不可能預(yù)知所有的風(fēng)險(xiǎn)?!庇捎谄俨寄P偷奶攸c(diǎn),很多的問(wèn)題在最后才會(huì)暴露出來(lái),為了解決這些問(wèn)題的風(fēng)險(xiǎn)是巨大的?!霸诘缴芷谥校枰鶕?jù)主要風(fēng)險(xiǎn)列表選擇要在迭代中開(kāi)發(fā)的新的增量?jī)?nèi)容。每次迭代完成時(shí)都會(huì)生成一個(gè)經(jīng)過(guò)測(cè)試的可執(zhí)行文件,這樣就可以核實(shí)是否已經(jīng)降低了目標(biāo)風(fēng)險(xiǎn)。”