软件工程 – 开发模型
軟件工程 – 開發(fā)模型
為了指導(dǎo)軟件開發(fā),可以用不同的方式將軟件生命周期中的所有開發(fā)活動(dòng)組織組織起來從而形成不同的開發(fā)模型。
瀑布模式
瀑布模型嚴(yán)格遵守軟件生命周期各階段的固定順序:計(jì)劃、分析、設(shè)計(jì)、編程、測(cè)試和維護(hù),上一階段完成才能進(jìn)入到下一階段,整個(gè)模型像一個(gè)飛流直下的瀑布一下,如圖所示?
特點(diǎn):
- 階段間具有順序性和依賴性
- 前一階段完成后,才能開始后一階段
- 前一階段的輸出文本為后一階段的輸入文本
- 推遲實(shí)現(xiàn)的觀點(diǎn)
- 質(zhì)量保證:
- 每個(gè)階段必須交付出合格的文檔
- 對(duì)文檔進(jìn)行審核
缺點(diǎn):
- 開始需要把需求做到最全
- 懼怕用戶測(cè)試中的反饋,懼怕需求變更
- 過于理想化缺乏靈活性
螺旋模型
限制條件:
- 適應(yīng)于內(nèi)部的大規(guī)模軟件開發(fā):螺旋模型強(qiáng)調(diào)風(fēng)險(xiǎn)分析,許多客戶都無法接受和相信這種分析因此
- 適合于大規(guī)模軟件項(xiàng)目(執(zhí)行風(fēng)險(xiǎn)分析將大大影響項(xiàng)目的利潤(rùn),進(jìn)行風(fēng)險(xiǎn)分析就毫無意義)
- 軟件開發(fā)人員應(yīng)該擅長(zhǎng)尋找可能的風(fēng)險(xiǎn),準(zhǔn)確地分析風(fēng)險(xiǎn),否則將會(huì)帶來更大的風(fēng)險(xiǎn)
優(yōu)點(diǎn):
- 設(shè)計(jì)上的靈活性,可以在項(xiàng)目的各個(gè)階段進(jìn)行變更.
- 以小的分段來構(gòu)建大型系統(tǒng),使成本計(jì)算變得簡(jiǎn)單容易
- 客戶始終參為保證了項(xiàng)目不偏離正確方向以及項(xiàng)目的可控性
- 客戶始終掌握項(xiàng)目的最新信息,從而他或她能夠和管理層有效地交互.
- 客戶認(rèn)可這種公司內(nèi)部的開發(fā)方式帶來的良好的溝通和高質(zhì)量的產(chǎn)品.
缺點(diǎn):
- 很難讓用戶確信這種演化方法的結(jié)果是可以控制的.建設(shè)周期長(zhǎng),而軟件技術(shù)發(fā)展比較快,所以經(jīng)常出現(xiàn)軟件開發(fā)完畢后,和當(dāng)前的技術(shù)水平有了較大的差距,無法滿足當(dāng)前用戶需求.
核心:
- 在于您不需要在剛開始的時(shí)候就把所有事情都定義的清清楚楚.在定義最重要的功能時(shí),去實(shí)現(xiàn)它,然后聽取客戶的意見,之后再進(jìn)入到下一個(gè)階段.如此不斷輪回重復(fù),直到得到您滿意的最終產(chǎn)品
每輪循環(huán)包含如下六個(gè)步驟:
模型:
快速原型模型
優(yōu)缺點(diǎn):
- 優(yōu)點(diǎn): 克服瀑布模型的缺點(diǎn),減少由于軟件需求不明確帶來的開發(fā)風(fēng)險(xiǎn)。
- 缺點(diǎn): 所選用的開發(fā)技術(shù)和工具不一定符合主流的發(fā)展;快速建立起來的系統(tǒng)結(jié)構(gòu)加上連續(xù)的修改可能會(huì)導(dǎo)致產(chǎn)品質(zhì)量低下。
原型類型:
- 探索型原型: 目的是要型清用戶的需求,確定所期望的特性,并探索各種方案的可行性。它主要針對(duì)開發(fā)目標(biāo)模糊,
- 實(shí)驗(yàn)型原型: 主要用于設(shè)計(jì)階段,考核;實(shí)現(xiàn)方案是否合適,能否實(shí)陋
- 演化型原型: 主要用于及早向用戶提交一個(gè)原型系統(tǒng),該原型系統(tǒng)或者包含系統(tǒng)的框架,或者包含系統(tǒng)的主要功能,在得到用戶的認(rèn)可后,將原型系統(tǒng)不斷擴(kuò)充演變?yōu)樽罱K的軟件系統(tǒng)
原型的運(yùn)用方式:
- 拋棄策略是將原型用于開發(fā)過程的某個(gè)階段,促使該階段的開發(fā)結(jié)果更加完整、準(zhǔn)確、一致、可靠,該階段結(jié)束后,原型隨之作廢。探索型和實(shí)驗(yàn)型就是采用此策略的。
- 附加策略是將原型用于開發(fā)的全過程,原型由最基本的核心開始,逐步增加新的功能和新的需求,反復(fù)修改反復(fù)擴(kuò)充,最后發(fā)展為用戶滿意的最終系統(tǒng),演化型快速原型就是采用此策略
模型:
增量模型
構(gòu)件思想:
- 第一構(gòu)件完成軟件提供的基本最核心的功能
- 后面的增構(gòu)件是為了第一構(gòu)件提供服務(wù)提供功能的
- 而且避免吧難題退后,首先完成的應(yīng)該是高風(fēng)險(xiǎn)和重要部分
困難:
- 每個(gè)新的構(gòu)件集成到現(xiàn)有的軟件結(jié)構(gòu)中必須破壞原來以開發(fā)的產(chǎn)品,所以必須定義很好的接口
優(yōu)點(diǎn):
- 短時(shí)間內(nèi)向用戶提供可完成部分工作的產(chǎn)品
- 逐步增加產(chǎn)品功能可以使用戶有時(shí)間了解和適應(yīng)新產(chǎn)品
- 開放結(jié)構(gòu)的軟件擁有的維護(hù)性明顯好于封閉結(jié)構(gòu)的軟件
缺陷:
- 容易退化為邊做邊改模型,從而使軟件過程的控制失去整體性
- 如果增量包之間存在相交的情況且未很好處理,則必須做全盤系統(tǒng)分析
模型:
噴泉模型
優(yōu)點(diǎn):
- 噴泉模型不像瀑布模型那樣,需要分析活動(dòng)結(jié)束后才開始設(shè)計(jì)活動(dòng),設(shè)計(jì)活動(dòng)結(jié)束后才開始編碼活動(dòng).該模型的各個(gè)階段沒有明顯的界限,開發(fā)人員可以同步進(jìn)行開發(fā).其優(yōu)點(diǎn)是可以提高軟件項(xiàng)目開發(fā)效率,節(jié)省開發(fā)時(shí)間,適應(yīng)于面向?qū)ο蟮能浖_發(fā)過程.
缺點(diǎn):
- 由于噴泉模型在各個(gè)開發(fā)階段是重疊的,因此在開發(fā)過程中需要大量的開發(fā)人員,因此不利于項(xiàng)目的管理.此外這種模型要求嚴(yán)格管理文檔,使得審核的難度加大,尤其是面對(duì)可能隨時(shí)加入各種信息、需求與資料的情況.
模型:
演化模型
思想:
- 演化模型主要針對(duì)事先不能完整定義需求的軟件開發(fā).用戶可以給出待開發(fā)系統(tǒng)的核心需求,并且當(dāng)看到核心需求實(shí)現(xiàn)后,能夠有效地提出反饋,以支持系統(tǒng)的最終設(shè)計(jì)和實(shí)現(xiàn)
開發(fā)順序:
- 根據(jù)用戶的核心需求,設(shè)計(jì),編碼,測(cè)試,后提交用戶
- 精化:根據(jù)以能滿足用戶核心需求的核心系統(tǒng)上,增加用戶反饋的其他全部功能
優(yōu)點(diǎn):
- 任何功能一經(jīng)開發(fā)就能進(jìn)入測(cè)試以便驗(yàn)證是否符合產(chǎn)品需求
- 開發(fā)中的經(jīng)驗(yàn)教訓(xùn)能反饋應(yīng)用于本產(chǎn)品的下一個(gè)循環(huán)過程,大大提高質(zhì)量與效率
- 大大有助于早期建立產(chǎn)品開發(fā)的配置管理
缺點(diǎn):
- 主要需求開始并不完全弄清楚的話,會(huì)給總體設(shè)計(jì)帶來困難及削弱產(chǎn)品設(shè)計(jì)的完整性,并因而影響產(chǎn)品性能的優(yōu)化及產(chǎn)品的可維護(hù)性
- 缺乏嚴(yán)格過程管理的話,這生命周期模型很可能退化為“試-錯(cuò)-改”模式
- 不加控制地讓用戶接觸開發(fā)中尚未測(cè)試穩(wěn)定的功能,可能對(duì)開發(fā)人員及用戶都產(chǎn)生負(fù)面的影響
提供幾個(gè)習(xí)題來測(cè)試
1、某公司計(jì)劃開發(fā)一種產(chǎn)品,技術(shù)含量很高,與客戶相關(guān)的風(fēng)險(xiǎn)也很多,則最適于采用( )開發(fā)過程模型。?
A.瀑布?
B.原型?
C.增量?
D.螺旋
2、某公司要開發(fā)一個(gè)軟件產(chǎn)品,產(chǎn)品的某些需求是明確的,而某些需求則需要進(jìn)一步細(xì)化。由于市場(chǎng)競(jìng)爭(zhēng)的壓力,產(chǎn)品需要盡快上市,則開發(fā)該軟件產(chǎn)品最不適合采用( )模型。
A.瀑布?
B.原型?
C.增量?
D.螺旋
3、( )開發(fā)過程模型最不適用開發(fā)初期對(duì)軟件需求缺乏準(zhǔn)確全面認(rèn)識(shí)的情況。?
A.瀑布?
B.演化?
C.螺旋?
D.增量
習(xí)題答案
1.、D 所給出的這些模型中僅有螺旋模型考慮風(fēng)險(xiǎn)因素。?
2、 A 瀑布模型(Waterfall Model) 是一個(gè)項(xiàng)目開發(fā)架構(gòu),開發(fā)過程是通過設(shè)計(jì)一系列階段順序展開的,從系統(tǒng)需求分析開始直到產(chǎn)品發(fā)布和維護(hù),每個(gè)階段都會(huì)產(chǎn)生循環(huán)反饋,因此,如果有信息未被覆蓋或者發(fā)現(xiàn)了問題,那么最好 “返回”上一個(gè)階段并進(jìn)行適當(dāng)?shù)男薷?#xff0c;項(xiàng)目開發(fā)進(jìn)程從一個(gè)階段“流動(dòng)”到下一個(gè)階段,這也是瀑布模型名稱的由來。包括軟件工程開發(fā)、企業(yè)項(xiàng)目開發(fā)、產(chǎn)品生產(chǎn)以及市場(chǎng)銷售等構(gòu)造瀑布模型。?
3、A 瀑布模型是一種經(jīng)典的開發(fā)模型,開發(fā)過程是通過設(shè)計(jì)一系列階段順序展開的,從系統(tǒng)需求分析開始直到產(chǎn)品發(fā)布和維護(hù),每個(gè)階段都會(huì)產(chǎn)生循環(huán)反饋,因此,如果有信息未被覆蓋或者發(fā)現(xiàn)了問題,那么最好 “返回”上一個(gè)階段并進(jìn)行適當(dāng)?shù)男薷?#xff0c;項(xiàng)目開發(fā)進(jìn)程從一個(gè)階段“流動(dòng)”到下一個(gè)階段,這也是瀑布模型名稱的由來。?
瀑布模型的突出缺點(diǎn)是不適應(yīng)用戶需求的變化。
總結(jié)
以上是生活随笔為你收集整理的软件工程 – 开发模型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 清华毕业生首份工作月薪2万起!机械工程专
- 下一篇: 杀疯了! 国产128GB硬盘到手68.9