瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型
一、瀑布模型
1、按照傳統(tǒng)的瀑布模型開發(fā)軟件,有下述幾個(gè)特點(diǎn)。
①階段間具有順序性和依賴性
階段間具有順序性和依賴性,這個(gè)特點(diǎn)有兩重含義:
1,必須等前一階段的工作完成之后,才能開始后一階段的工作;
2,前一階段的輸出文檔介紹后一階段的輸入文檔;
因此,只有前一階段的輸出文檔正確,后一階段的工作才能獲得正確的結(jié)果。
②推遲實(shí)現(xiàn)的觀點(diǎn)
對(duì)于規(guī)模較大的軟件項(xiàng)目來說,往往編程開始得越早,最終完成開發(fā)工作所需要的時(shí)間反而越長。
③質(zhì)量保證的觀點(diǎn)
軟件工程的基本目標(biāo)是優(yōu)質(zhì),高產(chǎn)。為了保證所開發(fā)的軟件的質(zhì)量,在瀑布模型的每個(gè)階段都堅(jiān)持兩個(gè)重要的做法。
(1)每個(gè)階段都必須完成規(guī)定的文檔,沒有交出合格的文檔介紹沒有完成該階段的任務(wù)。完整、準(zhǔn)確的合格文檔不僅是軟件開發(fā)時(shí)期各類人員相互通信的媒介,也是運(yùn)行時(shí)期進(jìn)行維護(hù)的重要依據(jù)。
(2)每個(gè)階段結(jié)束前都要對(duì)所完成的文檔進(jìn)行評(píng)審,以便盡早發(fā)現(xiàn)問題,改正錯(cuò)誤。
???????? 事實(shí)上,越是早期階段犯下的錯(cuò)誤,暴露出來的時(shí)間越晚,排除故障改正錯(cuò)誤所需付出的代價(jià)也越高。因此,及時(shí)審查,是保證軟件質(zhì)量、降低軟件成本的重要措施。
2、傳統(tǒng)的瀑布模型過于理想化
事實(shí)上,人在工作過程中不可能不犯錯(cuò)誤。在設(shè)計(jì)階段可能發(fā)現(xiàn)規(guī)格說明文檔的錯(cuò)誤,而設(shè)計(jì)上的缺陷或錯(cuò)誤可能在實(shí)現(xiàn)過程中顯現(xiàn)出來,在綜合測(cè)試階段發(fā)現(xiàn)需求分析、設(shè)計(jì)或編碼階段的許多錯(cuò)誤。因此,實(shí)踐的瀑布模型是帶“反饋環(huán)”的。
3、瀑布模型有許多優(yōu)點(diǎn):
①可強(qiáng)迫開發(fā)人員采用規(guī)范的方法(如結(jié)構(gòu)化技術(shù))
②嚴(yán)格地規(guī)定了每個(gè)階段必須提交的文檔
③要求每個(gè)階段交出的所有產(chǎn)品都必須經(jīng)過質(zhì)量保證小組的仔細(xì)驗(yàn)證。
缺點(diǎn):
1.只能通過文檔了解產(chǎn)品,不經(jīng)過實(shí)踐是不切實(shí)際的;
2.實(shí)際項(xiàng)目很少按照該模型給出的順序進(jìn)行;
3.用戶常常難以清楚地給出所有需求
4.用戶必須要耐心,等到系統(tǒng)開發(fā)完成
瀑布模型的成功在很的程度上是由于它基本上是一種文檔驅(qū)動(dòng)的模型。
但是,“瀑布模型是文檔驅(qū)動(dòng)的”這個(gè)事實(shí)也是它的一個(gè)主要的缺點(diǎn)。
??????? 在可運(yùn)行的軟件產(chǎn)品交付給用戶之前,用戶只能通過文檔來了解產(chǎn)品是什么樣的。但是僅僅通過寫在紙上的靜態(tài)的規(guī)格說明,很難全面正確地認(rèn)識(shí)動(dòng)態(tài)的軟件產(chǎn)品。而且事實(shí)證明,一旦一個(gè)用戶開始使用一個(gè)軟件,在他的頭腦中關(guān)于該軟件應(yīng)該做說明的想法就會(huì)或多或少地發(fā)生變化,這就使得最初提出的需求變得不完全適用了。事實(shí)上,要求用戶不經(jīng)過實(shí)踐就提出完整準(zhǔn)確的需求,在很多情況下都是不切實(shí)際的。總之,由于瀑布模型幾乎完全依賴于書面的規(guī)格說明,很有可能導(dǎo)致最終開發(fā)出的軟件產(chǎn)品不能真正滿足用戶的需要。
4、瀑布模型適用于:
(1)需求是預(yù)知的
(2)軟件實(shí)現(xiàn)方法是成熟的
(3)項(xiàng)目周期短
二、快速原型模型
所謂快速原型模型是快速建立起來的可以在計(jì)算機(jī)上運(yùn)行的程序,它所能完成的功能往往是最終產(chǎn)品能完成的功能的一個(gè)子集。
快速原型模型是不帶反饋環(huán)的,這正是這種模型的主要優(yōu)點(diǎn)
軟件產(chǎn)品的開發(fā)基本上線性順序進(jìn)行的
1,能基本上做到線性順序開發(fā)的主要原因如下:
①原型系統(tǒng)已經(jīng)通過與用戶交互而得到驗(yàn)證,據(jù)此產(chǎn)生的規(guī)格說明文檔正確地描述了用戶的需求,因此,在開發(fā)過程的后續(xù)階段不會(huì)因?yàn)榘l(fā)現(xiàn)了規(guī)格說明文檔的錯(cuò)誤而進(jìn)行較大的返工。
②開發(fā)人員通過建立原型系統(tǒng)已經(jīng)學(xué)到了許多東西,因此,在設(shè)計(jì)和編碼階段發(fā)生錯(cuò)誤的可能性也比較小,這自然減少了在后續(xù)階段需要改正前面階段所犯錯(cuò)誤的可能性。
快速原型的本質(zhì)是“快速”。
按照原型的目的對(duì)原型分類:
·? 拋棄式,目的到達(dá)即可拋棄,原型不做為最終產(chǎn)品
·? 演化式,系統(tǒng)的形成和發(fā)展是逐步完成的,是高度動(dòng)態(tài)迭代和高度動(dòng)態(tài)的,每次迭代都要對(duì)系統(tǒng)重新進(jìn)行規(guī)格說明,重新設(shè)計(jì)和重新評(píng)價(jià),所以是對(duì)付變化最為有效的方法,這也是與瀑布開發(fā)的主要不同點(diǎn);
·? 增量式,系統(tǒng)是一次一段地增量構(gòu)造,與演化式原型的最大區(qū)別在于增量式開發(fā)是在軟件總體設(shè)計(jì)基礎(chǔ)上進(jìn)行的。很顯然,其對(duì)付變化比演化差;
快速原型模型的優(yōu)點(diǎn):
①盡早揭示軟件可能存在的風(fēng)險(xiǎn)和不確定因素,尤其是關(guān)于用戶需求一致性方面的風(fēng)險(xiǎn)。
②用戶參與,降低風(fēng)險(xiǎn),節(jié)省后期變更成本,提高項(xiàng)目成功率。
③不帶反饋環(huán),基本上做到線性順序開發(fā)。
④開發(fā)過程與用戶培訓(xùn)過程同步,系統(tǒng)易維護(hù),對(duì)用戶更友好,產(chǎn)品柔性好。
三、增量模型
增量模型也稱漸增模型
增量模型屬于非整體開發(fā)思想的產(chǎn)物
?
使用增量模型開發(fā)軟件時(shí),把軟件產(chǎn)品作為一系列的增量構(gòu)件來設(shè)計(jì),編碼,集成和測(cè)試。
每個(gè)構(gòu)件由多個(gè)相互作用的模塊構(gòu)成,并且能夠完成特定的功能。
使用增量模型時(shí),第一個(gè)增量構(gòu)建往往實(shí)現(xiàn)軟件的基本需求,提供最核心的功能。
采用瀑布模型或快速原型模型開發(fā)軟件時(shí),目標(biāo)都是一次就把一個(gè)滿足所有需求的產(chǎn)品提交給用戶。增量模型與之相反,它是分批逐步向用戶提交產(chǎn)品,使得整個(gè)軟件被分解成許多增量構(gòu)件,開發(fā)人員一個(gè)構(gòu)件接一個(gè)構(gòu)件地向用戶提交產(chǎn)品。
優(yōu)點(diǎn):
①能在較短的時(shí)間內(nèi)向用戶提交可完成部分工作的產(chǎn)品
②逐步增加產(chǎn)品的功能可以使用戶有充裕的時(shí)間學(xué)習(xí)和適應(yīng)新產(chǎn)品,從而減少一個(gè)全新的軟件可能給客戶組織帶來的沖擊。
缺點(diǎn):
①風(fēng)險(xiǎn)大,必須保證新增構(gòu)件不破壞原來已開發(fā)出來的產(chǎn)品
?????????????????????????????????????? 風(fēng)險(xiǎn)更大的增量模型
?
四、螺旋模型
螺旋模型的基本思想是:使用原型及其他方法來盡量降低風(fēng)險(xiǎn)。
理解這種模型的一個(gè)簡(jiǎn)便方法,是把它看作在每個(gè)階段之前都增加了風(fēng)險(xiǎn)分析過程的快速原型模型。
螺旋模型有許多優(yōu)點(diǎn):
①對(duì)可選方案和約束條件的強(qiáng)調(diào)有利于已有軟件的重用,也有助于把軟件質(zhì)量作為軟件開發(fā)的一個(gè)重要目標(biāo)
②減少了過多的測(cè)試(浪費(fèi)資金)或者測(cè)試不足(產(chǎn)品故障多)所帶來的風(fēng)險(xiǎn)。
③在螺線模型中維護(hù)只是模型的另一個(gè)周期,在維護(hù)和開發(fā)之間并沒有本質(zhì)區(qū)別。
螺旋模型的主要優(yōu)勢(shì)在于,它是風(fēng)險(xiǎn)驅(qū)動(dòng)的,但是這也可能是它的一個(gè)弱點(diǎn)。除非軟件開發(fā)人員具有豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和這方面的專門知識(shí),否則將會(huì)出現(xiàn)真正的風(fēng)險(xiǎn):當(dāng)項(xiàng)目實(shí)際上正在走向?yàn)?zāi)難時(shí),開發(fā)人員可能還認(rèn)為一切正常。
五、噴泉模型
迭代是軟件開發(fā)過程中普遍存在的一種內(nèi)在屬性。
“噴泉”這個(gè)詞體現(xiàn)了面向?qū)ο筌浖_發(fā)過程迭代和無縫的特性。
圖中代表不同階段的圓圈相互重疊,這說明表示兩個(gè)活動(dòng)之間存在交迭;而面向?qū)ο蟮姆椒ㄔ诟拍詈捅硎痉绞缴系囊恢滦?#xff0c;保證了在各項(xiàng)開發(fā)活動(dòng)之間的無縫過渡
事實(shí)上,用面向?qū)ο蠓椒ㄩ_發(fā)軟件時(shí),在分析、設(shè)計(jì)和編碼等項(xiàng)開發(fā)活動(dòng)之間并不存在明顯的邊界。
圖中較小的圓圈代表維護(hù),圓圈較小象征著采用了面向?qū)ο蠓缎椭缶S護(hù)時(shí)間縮短了。
為避免使用噴泉模型開發(fā)軟件時(shí)開發(fā)過程過分無序,應(yīng)該把應(yīng)該線性過程(例如,快速原型模型)作為總目標(biāo)。但是,同時(shí)也應(yīng)該記住,面向?qū)ο蠓缎捅旧硪蠼?jīng)常對(duì)開發(fā)活動(dòng)進(jìn)行迭代或求精。
總結(jié)
以上是生活随笔為你收集整理的瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: boost库学习入门篇
- 下一篇: 吃鸡服务器维护公告10月19日,绝地求生