前言
軟件開(kāi)發(fā)模型是指軟件開(kāi)發(fā)全部過(guò)程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架。一般包括需求、設(shè)計(jì)、編碼和測(cè)試等階段,甚至包括維護(hù)階段。軟件開(kāi)發(fā)模型明確規(guī)定了軟件開(kāi)發(fā)過(guò)程中要完成的主要活動(dòng)和任務(wù),用來(lái)指導(dǎo)整個(gè)開(kāi)發(fā)過(guò)程中的工作。對(duì)于不同的系統(tǒng),可依據(jù)軟件的特點(diǎn)、項(xiàng)目成員的參與方式選擇不同的軟件開(kāi)發(fā)模型。作為測(cè)試工程師,測(cè)試的工作內(nèi)容與軟件開(kāi)發(fā)模型緊密相關(guān),不同的開(kāi)發(fā)模型中,測(cè)試的任務(wù)和作用也會(huì)不同。以下,給大家介紹幾種常見(jiàn)的開(kāi)發(fā)模型。
1、瀑布模型
瀑布模型作為最早出現(xiàn)的軟件開(kāi)發(fā)模型,提供了軟件開(kāi)發(fā)的基本框架,為后續(xù)出現(xiàn)的開(kāi)發(fā)模型奠定了基礎(chǔ)。從1970年被溫斯頓·羅伊斯(Winston Royce)提出后,直到80年代早期,一直是被廣泛采用。
這種模式有明確的階段活動(dòng),分為6個(gè)階段:計(jì)劃→需求分析→軟件設(shè)計(jì)→編碼→測(cè)試→運(yùn)行維護(hù)。階段順序固定,自上而下、相互銜接,形如瀑布流水逐級(jí)下落。這也是瀑布模型名稱(chēng)的由來(lái)。
瀑布模型的本質(zhì)是一次通過(guò),即每個(gè)活動(dòng)只執(zhí)行一次,最后得到軟件產(chǎn)品,也稱(chēng)為“線(xiàn)性順序模型”或者“傳統(tǒng)生命周期模型”。其過(guò)程是上一個(gè)階段的工作完成輸出結(jié)果并通過(guò)審核,才能“流動(dòng)”到下一個(gè)階段;否則返回前面,甚至更前的階段活動(dòng)。
缺點(diǎn):
1)各個(gè)階段的劃分完全固定,階段之間產(chǎn)生大量的文檔,極大地增加了工作量。
2)由于開(kāi)發(fā)模型是線(xiàn)性的,單一流程,不可逆,用戶(hù)只有等到整個(gè)過(guò)程的末期才能見(jiàn)到開(kāi)發(fā)成果,從而增加了開(kāi)發(fā)風(fēng)險(xiǎn)。
3)測(cè)試只是其中一個(gè)階段,缺乏全過(guò)程測(cè)試思想。早期的錯(cuò)誤可能要等到開(kāi)發(fā)后期的測(cè)試階段才能發(fā)現(xiàn),發(fā)現(xiàn)問(wèn)題越晚造成代價(jià)越高
4)在軟件需求分析階段,完全確定用戶(hù)的所有需求是比較困難的,不能應(yīng)對(duì)需求不斷變更的項(xiàng)目。
優(yōu)點(diǎn):
1)為項(xiàng)目提供了按階段劃分的檢查點(diǎn)。
2)當(dāng)前一階段完成后,您只需要去關(guān)注后續(xù)階段。
適用項(xiàng)目范圍:
1)需求很明確的軟件開(kāi)發(fā)項(xiàng)目;
2)在開(kāi)發(fā)時(shí)間內(nèi)需求沒(méi)有或很少變化;
3)分析設(shè)計(jì)人員應(yīng)對(duì)應(yīng)用領(lǐng)域很熟悉;
4)低風(fēng)險(xiǎn)項(xiàng)目(對(duì)目標(biāo)、環(huán)境很熟悉);
5)用戶(hù)使用環(huán)境很穩(wěn)定;
2、快速原型模型
快速原型模型與瀑布模型相反,項(xiàng)目初期根據(jù)用戶(hù)的需求快速構(gòu)建一個(gè)可以運(yùn)行的系統(tǒng)原型,之后向用戶(hù)展示,由用戶(hù)進(jìn)行審核,提出意見(jiàn),然后逐步豐富項(xiàng)目需求。當(dāng)需求真正確定后,才正式進(jìn)行項(xiàng)目開(kāi)發(fā)。
優(yōu)點(diǎn):
有助于滿(mǎn)足用戶(hù)的真實(shí)需求;原型系統(tǒng)已經(jīng)通過(guò)與用戶(hù)的交互而得到驗(yàn)證,據(jù)此產(chǎn)生的規(guī)格說(shuō)明文檔能夠正確地描述用戶(hù)需求。
缺點(diǎn):
要求開(kāi)發(fā)人員快速建立原型。
適用項(xiàng)目范圍:
適用于需求不明確的軟件項(xiàng)目。
3、增量模型
又稱(chēng)為迭代模型或演化模型,它將一個(gè)完整的軟件拆分成不同的組件,然后逐個(gè)組件地開(kāi)發(fā)測(cè)試,每完成一個(gè)組件就展現(xiàn)給客戶(hù),讓客戶(hù)確認(rèn)這一部件功能和性能是否達(dá)到客戶(hù)需求,最終確定無(wú)誤,將組件集成到軟件體系結(jié)構(gòu)中。整個(gè)開(kāi)發(fā)工作被組織為一系列短期、簡(jiǎn)單的小項(xiàng)目,稱(chēng)為一系列迭代,每一個(gè)迭代都需要經(jīng)過(guò)需求分析→軟件設(shè)計(jì)→編碼→測(cè)試的過(guò)程。
優(yōu)點(diǎn):
1)第一個(gè)可交付版本的軟件所需的成本與時(shí)間較小
2)能夠適應(yīng)客戶(hù)的需求變更,當(dāng)需求變化時(shí),只需要修改某一個(gè)組件即可。
缺點(diǎn):
1)如果對(duì)用戶(hù)需求的變更沒(méi)有整體的規(guī)劃,可能會(huì)變化為"邊做邊開(kāi)發(fā)"的模式。
2)最終集成各個(gè)組件時(shí),可能會(huì)出現(xiàn)集成失敗的風(fēng)險(xiǎn)。
適用項(xiàng)目范圍:
適用于工期緊張、功能可以劃分、比較復(fù)雜的軟件項(xiàng)目。軟件工程師必須有較高的技術(shù)水平,能夠設(shè)計(jì)出開(kāi)放的軟件體系結(jié)構(gòu)。
4、螺旋模型
該模型融合了瀑布模型、快速原型模型,由巴利·玻姆(Barry Boehm)于1988年提岀,該模型最大的特點(diǎn)就是引入了其他模型所沒(méi)有的風(fēng)險(xiǎn)分析。螺旋模型將開(kāi)發(fā)過(guò)程分為幾個(gè)螺旋周期,每個(gè)螺旋周期大致和瀑布模型相符合,在每個(gè)周期開(kāi)始之前都會(huì)進(jìn)行風(fēng)險(xiǎn)分析。在每個(gè)階段,首先構(gòu)建軟件原型,根據(jù)快速原型模型完成這個(gè)迭代過(guò)程,產(chǎn)出最終完善的產(chǎn)品,然后進(jìn)入下一個(gè)階段,同樣下一個(gè)階段開(kāi)始之前也要進(jìn)行風(fēng)險(xiǎn)評(píng)估,這樣循環(huán)往復(fù)直到完成所有階段的任務(wù)。
該模型共有四個(gè)象限,每個(gè)象限的含義如下:
1、制訂計(jì)劃:確定軟件目標(biāo),制訂實(shí)施方案,并且列出項(xiàng)目開(kāi)發(fā)的限制條件。
2、風(fēng)險(xiǎn)分析:評(píng)價(jià)所制訂的實(shí)施方案,識(shí)別風(fēng)險(xiǎn)并消除風(fēng)險(xiǎn)。
3、實(shí)施工程:開(kāi)發(fā)產(chǎn)品并進(jìn)行驗(yàn)證。
4、客戶(hù)評(píng)估:客戶(hù)對(duì)產(chǎn)品進(jìn)行審核評(píng)估,提出修正建議,制訂下一步計(jì)劃。
優(yōu)點(diǎn):
1)對(duì)可選方案和約束條件的強(qiáng)調(diào)有利于已有軟件的重用,也有助于把軟件質(zhì)量作為軟件開(kāi)發(fā)的一個(gè)重要目標(biāo);
2)減少了過(guò)多測(cè)試或測(cè)試不足所帶來(lái)的風(fēng)險(xiǎn);
3)在螺旋模型中維護(hù)只是模型的另一個(gè)周期,在維護(hù)和開(kāi)發(fā)之間并沒(méi)有本質(zhì)區(qū)別。
缺點(diǎn):
螺旋模型是風(fēng)險(xiǎn)驅(qū)動(dòng)的,因此要求軟件開(kāi)發(fā)人員必須具有豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和這方面的專(zhuān)門(mén)知識(shí)
適用項(xiàng)目范圍:
適用于內(nèi)部開(kāi)發(fā)的大型軟件(開(kāi)發(fā)周期長(zhǎng)、比較容易受到社會(huì)因素影響的軟件項(xiàng)目),軟件開(kāi)發(fā)人員具有豐富的風(fēng)險(xiǎn)評(píng)估知識(shí)和經(jīng)驗(yàn)。
5、V模型
V模型也叫RAD(Rapid Application Development,快速應(yīng)用開(kāi)發(fā))模型,是軟件開(kāi)發(fā)過(guò)程中的一個(gè)重要模型,由于其模型構(gòu)圖形似字母V,所以稱(chēng)為軟件測(cè)試的V模型。V模型大體可以劃分為以下幾個(gè)不同的階段步驟:客戶(hù)需求分析、軟件需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、軟件編碼、單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試。
優(yōu)點(diǎn):
開(kāi)發(fā)階段包含了底層測(cè)試(單元測(cè)試)和高層測(cè)試(系統(tǒng)測(cè)試);清楚的標(biāo)識(shí)了開(kāi)發(fā)和測(cè)試的各個(gè)階段;每個(gè)階段分工明確,便于整體項(xiàng)目的把控。
缺點(diǎn):
自上而下的順序?qū)е铝?,測(cè)試工作要在編碼之后進(jìn)行,就導(dǎo)致錯(cuò)誤不可以及時(shí)進(jìn)行修改;實(shí)際工作中,經(jīng)常變更需求,導(dǎo)致v模型步驟反復(fù)執(zhí)行,返工量大,靈活度低。
適用 項(xiàng)目范圍:
一般適用于一些傳統(tǒng)信息系統(tǒng)應(yīng)用的開(kāi)發(fā),而一些高性能高風(fēng)險(xiǎn)的系統(tǒng)、互聯(lián)網(wǎng)軟件,或一個(gè)系統(tǒng)難以被具體模塊化的時(shí)候,就比較難做成V模式所需的各種構(gòu)件,需要更強(qiáng)調(diào)迭代的開(kāi)發(fā)模型或者敏捷開(kāi)發(fā)模型。
6、敏捷模型
敏捷模型是20世紀(jì)90年代興起的一種軟件開(kāi)發(fā)模型。在現(xiàn)代社會(huì)的開(kāi)發(fā)中,由于業(yè)務(wù)會(huì)經(jīng)常快速的變化,因此會(huì)導(dǎo)致在軟件開(kāi)發(fā)之前經(jīng)常是無(wú)法得到詳細(xì)完整的開(kāi)發(fā)需求,沒(méi)有完整的開(kāi)發(fā)需求,傳統(tǒng)的軟件開(kāi)發(fā)模型也就無(wú)法適用。敏捷開(kāi)發(fā)模型的提出就是為了解決該問(wèn)題。該模型以客戶(hù)的需求為核心,采用迭代,循序漸進(jìn)的方法進(jìn)行開(kāi)發(fā)。
軟件項(xiàng)目在構(gòu)建初期會(huì)被拆分為多個(gè)相互聯(lián)系而又獨(dú)立運(yùn)行的子項(xiàng)目,然后迭代完成各個(gè)子項(xiàng)目。當(dāng)客戶(hù)有需求變更時(shí),敏捷模型能夠迅速地對(duì)某個(gè)子項(xiàng)目做出修改以滿(mǎn)足客戶(hù)的需求。在這個(gè)過(guò)程中,軟件一直處于可使用狀態(tài)。
優(yōu)點(diǎn):
1、用戶(hù)很快可以看到一個(gè)基線(xiàn)架構(gòu)版的產(chǎn)品
2、敏捷注重市場(chǎng)快速反應(yīng)能力,與客戶(hù)面對(duì)面的交流
3、隨時(shí)可以接受更改
缺點(diǎn):
1、注重人員的溝通,需要較好的團(tuán)隊(duì)協(xié)作
2、忽略文檔的重要性,需要項(xiàng)目中存在經(jīng)驗(yàn)較強(qiáng)的人
3、如果項(xiàng)目人員流動(dòng)大太,會(huì)增加項(xiàng)目維護(hù)難度
適用項(xiàng)目范圍:
適用于產(chǎn)品復(fù)雜,需求多變,難預(yù)測(cè)、實(shí)現(xiàn)周期長(zhǎng)的產(chǎn)品。
?文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-443528.html
你們公司一般用什么模型呢?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-443528.html
到了這里,關(guān)于面試被問(wèn)到了解哪些開(kāi)發(fā)模型?看這一篇就夠了的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!