【软件工程】软件生命周期模型 --- 瀑布模型、快速原型模型、增量模型、螺旋模型及喷泉模型
軟件生命周期模型是跨越整個(gè)生存期的系統(tǒng)開(kāi)發(fā)、運(yùn)作和維護(hù)所實(shí)施的全部過(guò)程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架。
下面介紹幾種常見(jiàn)的軟件生命周期模型:
瀑布模型
瀑布模型是將軟件生存周期的各項(xiàng)活動(dòng)規(guī)定為按固定順序而連接的若干階段工作,形如瀑布流水,最終得到軟件產(chǎn)品。
瀑布模型一直是唯一被廣泛采用的生命周期模型,現(xiàn)在它仍然是軟件工程中應(yīng)用得最廣泛的過(guò)程模型。
瀑布模型的核心思想:
瀑布模型核心思想是按工序?qū)?wèn)題化簡(jiǎn),將功能的實(shí)現(xiàn)與設(shè)計(jì)分開(kāi),便于分工協(xié)作,即采用結(jié)構(gòu)化的分析與設(shè)計(jì)方法將邏輯實(shí)現(xiàn)與物理實(shí)現(xiàn)分開(kāi)。將軟件生命周期劃分為制定計(jì)劃、需求分析、軟件設(shè)計(jì)、程序編寫(xiě)、軟件測(cè)試和運(yùn)行維護(hù)等六個(gè)基本活動(dòng),并且規(guī)定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級(jí)下落。
瀑布模型的特點(diǎn):
- 階段間具有順序性和依賴(lài)性
1、必須等前一階段的工作完成之后,才能開(kāi)始后一階段的工作
2、前一階段的輸出文檔就是后一階段的輸入文檔 - 推遲實(shí)現(xiàn)的觀點(diǎn)
清楚地區(qū)分邏輯設(shè)計(jì)與物理設(shè)計(jì),盡可能推遲程序的物理實(shí)現(xiàn),是按照瀑布模型開(kāi)發(fā)軟件的一條重要的指導(dǎo)思想。 - 質(zhì)量保證的觀點(diǎn)
軟件工程的基本目標(biāo)是優(yōu)質(zhì)、高產(chǎn)。為保證所開(kāi)發(fā)的軟件的質(zhì)量,在瀑布模型的每個(gè)階段都應(yīng)堅(jiān)持兩個(gè)重要做法:
1、每個(gè)階段都必須完成規(guī)定的文檔,沒(méi)有交出合格的文檔就是沒(méi)有完成該階段的任務(wù)。
2、每個(gè)階段結(jié)束前都要對(duì)所完成的文檔進(jìn)行評(píng)審,以便盡早發(fā)現(xiàn)問(wèn)題,改正錯(cuò)誤。
瀑布模型的優(yōu)點(diǎn):
1、為項(xiàng)目提供了按階段劃分的檢查點(diǎn)。
2、當(dāng)前一階段完成后,您只需要去關(guān)注后續(xù)階段。
3、可在迭代模型中應(yīng)用瀑布模型。
增量迭代應(yīng)用于瀑布模型。迭代1解決最大的問(wèn)題。每次迭代產(chǎn)生一個(gè)可運(yùn)行的版本,同時(shí)增加更多的功能。每次迭代必須經(jīng)過(guò)質(zhì)量和集成測(cè)試。
4、它提供了一個(gè)模板,這個(gè)模板使得分析、設(shè)計(jì)、編碼、測(cè)試和支持的方法可以在該模板下有一個(gè)共同的指導(dǎo)。雖然有不少缺陷但比在軟件開(kāi)發(fā)中隨意的狀態(tài)要好得多。
瀑布模型的缺點(diǎn):
1、實(shí)際的項(xiàng)目大部分情況難以按照該模型給出的順序進(jìn)行,而且這種模型的迭代是間接的,這很容易由微小的變化而造成大的混亂。
2、通常情況下客戶難以表達(dá)真正的需求,而這種模型卻要求如此,這種模型是不歡迎具有二義性問(wèn)題存在的。
3、客戶要等到開(kāi)發(fā)周期的晚期才能看到程序運(yùn)行的測(cè)試版本,而在這時(shí)發(fā)現(xiàn)大的錯(cuò)誤時(shí),可能引起客戶的驚慌,而后果也可能是災(zāi)難性的。
傳統(tǒng)的瀑布模型過(guò)于理想化了,事實(shí)上,人在工作過(guò)程中不可能不犯錯(cuò)誤。實(shí)際的瀑布模型是帶“反饋環(huán)”的。如下圖:
圖中實(shí)線箭頭表示開(kāi)發(fā)過(guò)程,虛線箭頭表示維護(hù)過(guò)程。
實(shí)際的瀑布模型當(dāng)在后面階段發(fā)現(xiàn)前面階段的錯(cuò)誤時(shí),需要沿圖中左側(cè)的反饋線返回前面的階段,修正前面階段的產(chǎn)品之后再回來(lái)繼續(xù)完成后面階段的任務(wù)。
快速原型模型
快速原型是快速建立起來(lái)的可以在計(jì)算機(jī)上運(yùn)行的程序,它所能完成的功能往往是最終產(chǎn)品能完成的功能的一個(gè)子集。
快速原型模型是不帶反饋環(huán)的,這正是這種過(guò)程模型的主要優(yōu)點(diǎn)。軟件產(chǎn)品的開(kāi)發(fā)基本上是線性順序進(jìn)行的。能基本上做到線性順序開(kāi)發(fā)的主要原因如下:
1、原型系統(tǒng)已經(jīng)通過(guò)與用戶交互而得到驗(yàn)證,據(jù)此產(chǎn)生的規(guī)格說(shuō)明文檔正確地描述了用戶需求,因此,在開(kāi)發(fā)過(guò)程的后續(xù)階段不會(huì)因?yàn)榘l(fā)現(xiàn)了規(guī)格說(shuō)明文檔的錯(cuò)誤而進(jìn)行較大的返工。
2、開(kāi)發(fā)人員通過(guò)建立原型系統(tǒng)已經(jīng)學(xué)到了許多東西,因此,在設(shè)計(jì)和編碼階段發(fā)生錯(cuò)誤的可能性也比較小,這自然減少了在后續(xù)階段需要改正前面階段所犯錯(cuò)誤的可能性。
快速原型模型的優(yōu)點(diǎn):
使用戶能夠感受到實(shí)際的系統(tǒng),使開(kāi)發(fā)者能夠快速地構(gòu)造出系統(tǒng)的框架。
快速原型模型缺點(diǎn):
產(chǎn)品的先天性不足,因?yàn)殚_(kāi)發(fā)者常常需要做實(shí)現(xiàn)上的折中,可能采用不合適的操作系統(tǒng)或程序設(shè)計(jì)語(yǔ)言,以使原型能夠盡快工作。
增量模型
增量模型也稱(chēng)為漸增模型。使用增量模型開(kāi)發(fā)軟件時(shí),把軟件產(chǎn)品作為一系列的增量構(gòu)件來(lái)設(shè)計(jì)、編碼、集成和測(cè)試。每個(gè)構(gòu)件由多個(gè)相互作用的模塊構(gòu)成,并且能夠完成特定的功能。使用增量模型時(shí),第一個(gè)增量構(gòu)件往往實(shí)現(xiàn)軟件的基本需求,提供最核心的功能。
增量模型的優(yōu)點(diǎn):
1、人員分配靈活,剛開(kāi)始不用投入大量人力資源,當(dāng)核心產(chǎn)品很受歡迎時(shí),可增加人力實(shí)現(xiàn)下一個(gè)增量。
2、能在較短時(shí)間內(nèi)向用戶提交可完成部分工作的產(chǎn)品。
3、逐步增加產(chǎn)品功能可以使用戶有較充裕的時(shí)間學(xué)習(xí)和適應(yīng)新產(chǎn)品,從而減少一個(gè)全新的軟件可能給客戶組織帶來(lái)的沖擊。
增量模型的缺點(diǎn):
1、 至始至終開(kāi)發(fā)者和客戶糾纏在一起,直到完全版本出來(lái)。
2、適合于軟件需求不明確、設(shè)計(jì)方案有一定風(fēng)險(xiǎn)的軟件項(xiàng)目。
使用增量模型的困難:
1、在把每個(gè)新的增量構(gòu)件集成到現(xiàn)有軟件體系結(jié)構(gòu)中時(shí),必須不破壞原來(lái)已經(jīng)開(kāi)發(fā)出的產(chǎn)品。
2、必須把軟件的體系結(jié)構(gòu)設(shè)計(jì)得便于按這種方式進(jìn)行擴(kuò)充,向現(xiàn)有產(chǎn)品中加入新構(gòu)件的過(guò)程必須簡(jiǎn)單、方便,也就是說(shuō),軟件體系結(jié)構(gòu)必須是開(kāi)放的。
該模型具有一定的市場(chǎng)。
風(fēng)險(xiǎn)更大的增量模型:
螺旋模型
螺旋模型的基本思想是,使用原型及其他方法來(lái)盡量降低風(fēng)險(xiǎn)。理解這種模型的一個(gè)簡(jiǎn)便方法,是把它看作在每個(gè)階段之前都增加了風(fēng)險(xiǎn)分析過(guò)程的快速原型模型。
螺旋模型的優(yōu)點(diǎn):
對(duì)于大型系統(tǒng)及軟件的開(kāi)發(fā),這種模型是一個(gè)很好的方法。開(kāi)發(fā)者和客戶能夠較好地對(duì)待和理解每一個(gè)演化級(jí)別上的風(fēng)險(xiǎn)。
螺旋模型的缺點(diǎn):
1、需要相當(dāng)?shù)娘L(fēng)險(xiǎn)分析評(píng)估的專(zhuān)門(mén)技術(shù),且成功依賴(lài)于這種技術(shù)。
2、很明顯一個(gè)大的沒(méi)有被發(fā)現(xiàn)的風(fēng)險(xiǎn)問(wèn)題,將會(huì)導(dǎo)致問(wèn)題的發(fā)生,可能導(dǎo)致演化的方法失去控制。
3、這種模型相對(duì)比較新,應(yīng)用不廣泛,其功效需要進(jìn)一步的驗(yàn)證。
該模型適合于大型軟件的開(kāi)發(fā)
噴泉模型
“噴泉”這個(gè)詞體現(xiàn)了面向?qū)ο筌浖_(kāi)發(fā)過(guò)程迭代和無(wú)縫的特性。迭代是軟件開(kāi)發(fā)過(guò)程中普遍存在的一種內(nèi)在屬性。用面向?qū)ο蠓椒▽W(xué)開(kāi)發(fā)軟件時(shí),工作重點(diǎn)應(yīng)該放在生命周期中的分析階段。
圖中代表不同階段的圓圈相互重疊,這明確表示兩個(gè)活動(dòng)之間存在交迭; 圖中在一個(gè)階段內(nèi)的向下箭頭代表該階段內(nèi)的迭代(或求精)。 圖中較小的圓圈代表維護(hù),圓圈較小象征著采用了面向?qū)ο蠓缎椭缶S護(hù)時(shí)間縮短了。
噴泉模型的優(yōu)點(diǎn):
噴泉模型不像瀑布模型那樣,需要分析活動(dòng)結(jié)束后才開(kāi)始設(shè)計(jì)活動(dòng),設(shè)計(jì)活動(dòng)結(jié)束后才開(kāi)始編碼活動(dòng)。該模型的各個(gè)階段沒(méi)有明顯的界限,開(kāi)發(fā)人員可以同步進(jìn)行開(kāi)發(fā)。其優(yōu)點(diǎn)是可以提高軟件項(xiàng)目開(kāi)發(fā)效率,節(jié)省開(kāi)發(fā)時(shí)間,適應(yīng)于面向?qū)ο蟮能浖_(kāi)發(fā)過(guò)程。
噴泉模型的缺點(diǎn):
由于噴泉模型在各個(gè)開(kāi)發(fā)階段是重疊的,因此在開(kāi)發(fā)過(guò)程中需要大量的開(kāi)發(fā)人員,因此不利于項(xiàng)目的管理。此外這種模型要求嚴(yán)格管理文檔,使得審核的難度加大,尤其是面對(duì)可能隨時(shí)加入各種信息、需求與資料的情況。
總結(jié)
以上是生活随笔為你收集整理的【软件工程】软件生命周期模型 --- 瀑布模型、快速原型模型、增量模型、螺旋模型及喷泉模型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 引气管理计算机失效,A320飞机解码排故
- 下一篇: 通俗的解释『多项式时间』