国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

淺談軟件生命周期模型及其選擇

2014-10-21 20:07朱婕
電腦迷 2014年17期

朱婕

摘 要 同任何事物一樣,一個(gè)軟件產(chǎn)品或軟件系統(tǒng)也要經(jīng)歷孕育、誕生、成長(zhǎng)、成熟、衰亡等階段,一般稱為軟件生存周期(軟件生命周期)。把整個(gè)軟件生存周期劃分為若干階段,使得每個(gè)階段有明確的任務(wù),使規(guī)模大,結(jié)構(gòu)復(fù)雜和管理復(fù)雜的軟件開(kāi)發(fā)變的容易控制和管理。通常,軟件生存周期包括可行性分析與開(kāi)發(fā)項(xiàng)計(jì)劃、需求分析、設(shè)計(jì)(概要設(shè)計(jì)和詳細(xì)設(shè)計(jì))、編碼、測(cè)試、維護(hù)等活動(dòng),可以將這些活動(dòng)以適當(dāng)?shù)姆绞椒峙涞讲煌碾A段去完成。

關(guān)鍵詞 軟件生命周期 瀑布型 快速原型

中圖分類號(hào):TP31 文獻(xiàn)標(biāo)識(shí)碼:A

1瀑布模型

雖然瀑布模型仍然存在很多的問(wèn)題有待解決,但瀑布模型仍然是最基本的和最效的一種可供選擇的軟件開(kāi)發(fā)生命周期模型.瀑布模型要求軟件開(kāi)發(fā)嚴(yán)格按照:需求->分析->設(shè)計(jì)->編碼->測(cè)試的階段進(jìn)行,每一個(gè)階段都可以定義明確的產(chǎn)出物和驗(yàn)證準(zhǔn)則.瀑布模型在每一個(gè)階段完成后都可以組織相關(guān)的評(píng)瀑布模型的優(yōu)點(diǎn)仍然是可以保證整個(gè)軟件產(chǎn)品較高的質(zhì)量,保證缺陷能夠提前的被發(fā)現(xiàn)和解決。采用瀑布模型可以保證系統(tǒng)在整體上的充分把握,使系統(tǒng)具備良好的擴(kuò)展性和可維護(hù)性.但對(duì)于前期需求不明確,而又很難短時(shí)間明確清楚的項(xiàng)目則很難很好的利用瀑布模型。另外對(duì)于中小型的項(xiàng)目,需求設(shè)計(jì)和開(kāi)發(fā)人員往往在項(xiàng)目開(kāi)始后就會(huì)全部投入到項(xiàng)目中,而不是分階段投入,因此采用瀑布模型會(huì)導(dǎo)致項(xiàng)目人力資源過(guò)多的閑置的情況,這也是必須要考慮的問(wèn)題。審核驗(yàn)證,只有在評(píng)審?fù)ㄟ^(guò)后才能夠進(jìn)入到下一個(gè)階段。

瀑布模型強(qiáng)調(diào)文檔的作用,并要求每個(gè)階段都要仔細(xì)驗(yàn)證。但是,這種模型的線性過(guò)程太理想化,已不再適合現(xiàn)代的軟件開(kāi)發(fā)模式,幾乎被業(yè)界拋棄,其主要問(wèn)題在于:

(1) 各個(gè)階段的劃分完全固定,階段之間產(chǎn)生大量的文檔,極大地增加了工作量。

(2) 由于開(kāi)發(fā)模型是線性的,用戶只有等到整個(gè)過(guò)程的末期才能見(jiàn)到開(kāi)發(fā)成果,從而增加了開(kāi)發(fā)的風(fēng)險(xiǎn)。

(3)早期的錯(cuò)誤可能要等到開(kāi)發(fā)后期的測(cè)試階段才能發(fā)現(xiàn),進(jìn)而帶來(lái)嚴(yán)重的后果。

2螺旋模型

首先螺旋模型是遵從瀑布模型的,即需求->架構(gòu)->設(shè)計(jì)->開(kāi)發(fā)->測(cè)試的路線。螺旋模型最大的價(jià)值在于整個(gè)開(kāi)發(fā)過(guò)程是迭代和風(fēng)險(xiǎn)驅(qū)動(dòng)的,通過(guò)將瀑布模型的多個(gè)階段轉(zhuǎn)化到多個(gè)迭代過(guò)程中,以減少項(xiàng)目的風(fēng)險(xiǎn)。

螺旋模型的每一次迭代都包含了以下六個(gè)步驟:

(1)決定目標(biāo)

(2)替代方案和約束識(shí)別和解決

(3)項(xiàng)目的風(fēng)險(xiǎn)評(píng)估技術(shù)方案和替代解決方案開(kāi)發(fā)

(4)本次迭代的交付物和驗(yàn)證迭代產(chǎn)出的正確性

(5)計(jì)劃下一次迭代

(6)提交下一次迭代的步驟和方案

螺旋模型是隨著項(xiàng)目成本投入不斷增加,風(fēng)險(xiǎn)逐漸減小的,以幫助我們加強(qiáng)項(xiàng)目的管理和跟蹤,在每次迭代結(jié)束后都需要對(duì)產(chǎn)出物進(jìn)行評(píng)估和驗(yàn)證,當(dāng)發(fā)現(xiàn)無(wú)法繼續(xù)進(jìn)行下去時(shí)可以及早的終止項(xiàng)目。

螺旋模型復(fù)雜的地方在于盡責(zé),專心和知識(shí)淵博的管理。因?yàn)閷?duì)于每一次迭代都要制定出清晰的目標(biāo),分析出相關(guān)的關(guān)鍵風(fēng)險(xiǎn)和計(jì)劃中可以驗(yàn)證和測(cè)試的交付物并不是一件容易的事情。

3增量迭代模型

迭代式模型是RUP(RationalUnifiedProcess,統(tǒng)一軟件開(kāi)發(fā)過(guò)程,統(tǒng)一軟件過(guò)程)推薦的周期模型。在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)目。RUP認(rèn)為,所有的階段(需求及其它)都可以細(xì)分為迭代。每一次的迭代都會(huì)產(chǎn)生一個(gè)可以發(fā)布的產(chǎn)品,這個(gè)產(chǎn)品是最終產(chǎn)品的一個(gè)子集。

迭代和瀑布的最大的差別就在于風(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)。

4快速原型(RapidPrototype)模型

快速原型模型在功能上等價(jià)于產(chǎn)品的一個(gè)子集。注意,這里說(shuō)的是功能上。瀑布模型的缺點(diǎn)就在于不夠直觀,快速原型法就解決了這個(gè)問(wèn)題。一般來(lái)說(shuō),根據(jù)客戶的需要在很短的時(shí)間內(nèi)解決用戶最迫切需要,完成一個(gè)可以演示的產(chǎn)品。這個(gè)產(chǎn)品只是實(shí)現(xiàn)部分的功能(最重要的)。它最重要的目的是為了確定用戶的真正需求。在我的經(jīng)驗(yàn)中,這種方法非常的有效,原先對(duì)計(jì)算機(jī)沒(méi)有絲毫概念的用戶在你的原型面前往往口若懸河,有些觀點(diǎn)讓你都覺(jué)得非常的吃驚。在得到用戶的需求之后,原型將被拋棄。

上述的模型中都有自己獨(dú)特的思想,其實(shí)現(xiàn)在的軟件組織中很少說(shuō)標(biāo)準(zhǔn)的采用那一種模型的。模型和實(shí)用還是有很大的區(qū)別的。軟件生命周期模型的發(fā)展實(shí)際上是體現(xiàn)了軟件工程理論的發(fā)展。在最早的時(shí)候,軟件的生命周期處于無(wú)序、混亂的情況。一些人為了能夠控制軟件的開(kāi)發(fā)過(guò)程,就把軟件開(kāi)發(fā)嚴(yán)格的區(qū)分為多個(gè)不同的階段,并在階段間加上嚴(yán)格的審查。這就是瀑布模型產(chǎn)生的起因。瀑布模型體現(xiàn)了人們對(duì)軟件過(guò)程的一個(gè)希望:嚴(yán)格控制、確保質(zhì)量。可惜的是,現(xiàn)實(shí)往往是殘酷的。瀑布模型根本達(dá)不到這個(gè)過(guò)高的要求,因?yàn)檐浖倪^(guò)程往往難于預(yù)測(cè)。反而導(dǎo)致了其它的負(fù)面影響,例如大量的文檔、繁瑣的審批。因此人們就開(kāi)始嘗試著用其它的方法來(lái)改進(jìn)或替代瀑布方法。例如把過(guò)程細(xì)分來(lái)增加過(guò)程的可預(yù)測(cè)性?,F(xiàn)總結(jié)如下:

(1)在前期需求明確的情況下盡量采用瀑布模型或改進(jìn)型的瀑布模型。

(2)在用戶無(wú)信息系統(tǒng)使用經(jīng)驗(yàn),需求分析人員技能不足情況下一定要借助原型。

(3)在不確定性因素很多,很多東西前面無(wú)法計(jì)劃情況下盡量采用增量迭代和螺旋模型。

(4)在需求不穩(wěn)定情況下盡量采用增量迭代模型。

(5)在資金和成本無(wú)法一次到位情況下可以采用增量模型,軟件產(chǎn)品分多個(gè)版本進(jìn)行發(fā)布。

(6)對(duì)于完全多個(gè)獨(dú)立功能開(kāi)發(fā)可以在需求階段就分功能并行,但每個(gè)功能內(nèi)都應(yīng)該遵循瀑布模型。

(7)對(duì)于全新系統(tǒng)的開(kāi)發(fā)必須在總體設(shè)計(jì)完成后再開(kāi)始增量或并行。

(8)對(duì)于編碼人員經(jīng)驗(yàn)較少情況下建議不要采用敏捷或迭代等生命周期模型。

(9)增量,迭代和原型可以綜合使用,但每一次增量或迭代都必須有明確的交付和出口準(zhǔn)則。

參考文獻(xiàn)

[1] (美)MichaelHoward&(美)SteveLipner.軟件安全開(kāi)發(fā)生命周期(中譯本掃描版).電子工業(yè)出版社,2008.01.

[2] 張向宏.軟件生命周期質(zhì)量保證與測(cè)試.電子工業(yè)出版社,中國(guó)軟件評(píng)測(cè)中心組編,2009.05.01.