新聞中心
軟件開(kāi)發(fā)模型最早在上世紀(jì)50年代至60年代引入軟件開(kāi)發(fā)社區(qū)。在那個(gè)時(shí)候,將一切都集中起來(lái)是一個(gè)很好的做法,而編程是必須規(guī)劃的過(guò)程之一。

創(chuàng)新互聯(lián)建站專(zhuān)注于睢寧縣網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供睢寧縣營(yíng)銷(xiāo)型網(wǎng)站建設(shè),睢寧縣網(wǎng)站制作、睢寧縣網(wǎng)頁(yè)設(shè)計(jì)、睢寧縣網(wǎng)站官網(wǎng)定制、成都小程序開(kāi)發(fā)服務(wù),打造睢寧縣網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供睢寧縣網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。
如今,這個(gè)過(guò)程在日常的項(xiàng)目管理中非常必要,因?yàn)槿绻麤](méi)有特定的事件流,項(xiàng)目開(kāi)發(fā)可能會(huì)非?;靵y。因此,從項(xiàng)目規(guī)劃到發(fā)布和維護(hù)的任何活動(dòng)都有一個(gè)所有人都需要使用的概念框架。
因此,很多組織表示:
- 與未定義的軟件開(kāi)發(fā)過(guò)程作斗爭(zhēng)。
- 缺乏有關(guān)項(xiàng)目管理技術(shù)的某些知識(shí)。
- 尋求優(yōu)化和構(gòu)建開(kāi)發(fā)階段的方法。
- 希望加快交付過(guò)程。
- 降低項(xiàng)目風(fēng)險(xiǎn)。
- 縮短項(xiàng)目時(shí)間和過(guò)多的成本。
本文將定義軟件開(kāi)發(fā)生命周期,概述七個(gè)最常用的軟件開(kāi)發(fā)模型,并找出它們?cè)陧?xiàng)目開(kāi)發(fā)中的差異和好處。此外還將對(duì)軟件工程中的軟件模型進(jìn)行比較,以幫助組織找到最適合的模型。
為什么需要軟件項(xiàng)目開(kāi)發(fā)模型?
每個(gè)軟件外包公司都有自己的軟件開(kāi)發(fā)生命周期(SDLC),它通常包含以下應(yīng)用程序開(kāi)發(fā)階段:
- 需求分析
- 設(shè)計(jì)
- 開(kāi)發(fā)和測(cè)試
- 執(zhí)行
- 文檔
- 維護(hù)
這些階段標(biāo)志著軟件項(xiàng)目開(kāi)發(fā)的通常過(guò)程,從收集客戶需求到推出具有全天候支持的成熟產(chǎn)品。很多組織通常更喜歡個(gè)性化的工作流程和方法,因此有一些包含這些開(kāi)發(fā)階段的概念模型。這些模型具有預(yù)先編寫(xiě)和建立的關(guān)鍵原則、基本流程和時(shí)間表,因此將其稱為方法論。
以下是各具特色的七種軟件開(kāi)發(fā)模型,它們分別是:
- 瀑布模型
- 迭代和增量模型
- 螺旋模型
- V型模型
- 原型模型
- 敏捷模型
- DevOps模型
軟件開(kāi)發(fā)過(guò)程模型的價(jià)值在于過(guò)程優(yōu)化,以及作為團(tuán)隊(duì)績(jī)效提升的最終因素。每個(gè)模型都非常具體,并且組織在實(shí)施時(shí)應(yīng)該專(zhuān)注于它們的技術(shù)、愿景、使命和節(jié)奏。這就是為什么有這么多人來(lái)尋求適合其組織的軟件開(kāi)發(fā)模型的原因。
根據(jù)調(diào)研機(jī)構(gòu)Statista公司的調(diào)查,全球最常用的軟件工程過(guò)程模型是DevOps模型,占到36%;緊隨其后的是敏捷模型,將近32%;排名第三的是看板(Kanban)模型,全球有13%的IT社區(qū)都在使用。
那么,軟件開(kāi)發(fā)模型有哪些?當(dāng)今組織使用的軟件工程模型的類(lèi)型是什么?
什么是軟件開(kāi)發(fā)模型以及它們?nèi)绾喂ぷ?
1.瀑布模型
瀑布模型是軟件開(kāi)發(fā)領(lǐng)域引入的第一個(gè)軟件項(xiàng)目開(kāi)發(fā)模型。它也被稱為線性模型,因?yàn)樵撃P鸵馕吨谶M(jìn)入下一個(gè)階段之前要完成以上所有階段。因此,該模型逐步地線性運(yùn)行,不可能與任何階段重疊。其原理如下圖所示:
確實(shí),該模型類(lèi)似于現(xiàn)實(shí)中的瀑布,它有起點(diǎn)和終點(diǎn),就像水流從懸崖上落下,沒(méi)有任何中斷或改變。
(1)哪些因素有助于選擇瀑布方法?
- 短期項(xiàng)目。
- 明確、固定且記錄良好的要求。
- 可理解的靜態(tài)技術(shù)。
- 穩(wěn)定的產(chǎn)品定義。
- 各種產(chǎn)品支持資源。
- 產(chǎn)品負(fù)責(zé)人參與度低。
- 嚴(yán)格設(shè)定的時(shí)間表。
- 無(wú)法更改的固定預(yù)算。
而在所有其他情況下,可以選擇其他模型來(lái)進(jìn)行項(xiàng)目開(kāi)發(fā)。
瀑布模型的主要優(yōu)點(diǎn)是該模型在執(zhí)行的任務(wù)及其時(shí)間表方面有嚴(yán)格的順序。由于順序是固定的,很多任務(wù)可以很容易地在軟件部門(mén)之間進(jìn)行劃分,并監(jiān)控任務(wù)完成情況??蛻艨赡軙?huì)發(fā)現(xiàn)瀑布模型是一種可靠的方法,因?yàn)樗麄儠?huì)事先了解從開(kāi)始到結(jié)束的整個(gè)過(guò)程。當(dāng)然瀑布模型也有一些缺點(diǎn)。例如瀑布模型很難對(duì)任務(wù)進(jìn)行修改,這是因?yàn)閼?yīng)用程序開(kāi)發(fā)越深入到另一個(gè)階段,就越難返回并更改其概念基礎(chǔ)或文檔。
(2)瀑布模型的優(yōu)缺點(diǎn)
2.迭代和增量模型
在迭代和增量模型中,開(kāi)發(fā)從實(shí)現(xiàn)幾個(gè)小需求開(kāi)始,然后通過(guò)多次迭代(增量)增強(qiáng)產(chǎn)品。增強(qiáng)過(guò)程以增量(迭代)的方式進(jìn)行,直到應(yīng)用程序功能完成并準(zhǔn)備部署為止。只開(kāi)發(fā)軟件的一小部分是一種明智的方法,因?yàn)榭梢暂p松查看已完成的工作,快速確定進(jìn)一步的要求,并繼續(xù)實(shí)施或?qū)?yīng)用程序進(jìn)行一些更改,然后再繼續(xù)下一步。無(wú)論采用哪種方式,組織都將從這些解決方案中受益,因?yàn)槊看涡碌牡紩?huì)帶來(lái)一個(gè)新的、更好的軟件版本。
與瀑布模型不同,迭代模型允許一次執(zhí)行多次迭代并同時(shí)接收產(chǎn)品輸出。該模型提供的成功關(guān)鍵在于驗(yàn)證軟件的版本,并根據(jù)要求對(duì)其進(jìn)行測(cè)試。這樣可以更好地了解團(tuán)隊(duì)在項(xiàng)目中所處的位置、產(chǎn)品的功能驗(yàn)證,以及對(duì)產(chǎn)品成功的信心。
(1)迭代模型適用于軟件開(kāi)發(fā)的哪些地方?
- 系統(tǒng)要求得到明確定義和充分理解。
- 隨著時(shí)間的推移,可能會(huì)出現(xiàn)其他要求。
- 當(dāng)團(tuán)隊(duì)學(xué)習(xí)新技術(shù)并同時(shí)處理項(xiàng)目時(shí)。
- 僅在合同規(guī)定的特定迭代需要時(shí)才使用特定資源。
- 由于高風(fēng)險(xiǎn)特性,未來(lái)業(yè)務(wù)目標(biāo)可能會(huì)發(fā)生變化。
迭代模型的最大優(yōu)點(diǎn)是它允許在開(kāi)始開(kāi)發(fā)軟件時(shí)發(fā)現(xiàn)功能和設(shè)計(jì)的缺陷。在迭代中工作并驗(yàn)證每個(gè)開(kāi)發(fā)周期將產(chǎn)生無(wú)風(fēng)險(xiǎn)的產(chǎn)品,能夠添加或刪除功能,以及改變最終產(chǎn)品的成本和時(shí)間表。而除了這些優(yōu)點(diǎn)之外,還應(yīng)該討論存在的一些缺點(diǎn)。
(2)迭代模型的優(yōu)缺點(diǎn)
3.螺旋模型
螺旋模型是迭代模型和瀑布模型的組合。從迭代方法出發(fā),它采用了循環(huán)開(kāi)發(fā)方法;而從瀑布方法出發(fā),它借用了一種系統(tǒng)的方法和控制過(guò)程的能力。螺旋模型的重點(diǎn)在于風(fēng)險(xiǎn)分析。此外,它還以迭代的方式交付項(xiàng)目,并圍繞其中心螺旋形旋轉(zhuǎn)。
螺旋模型分為4個(gè)階段設(shè)計(jì)。開(kāi)發(fā)中的產(chǎn)品在其迭代過(guò)程中都經(jīng)過(guò)這些階段,在此方法中也稱為螺旋。這些階段包括:
- 識(shí)別
- 設(shè)計(jì)
- 構(gòu)建
- 評(píng)估(風(fēng)險(xiǎn)分析)
識(shí)別是收集業(yè)務(wù)需求的最佳階段。這是在一個(gè)基本的螺旋中完成的。螺旋模型確定了系統(tǒng)、子系統(tǒng)和單元要求。除了收集需求之外,這個(gè)階段還涉及客戶和系統(tǒng)分析師之間的溝通,以了解部署所需的內(nèi)容。
設(shè)計(jì)也從概念設(shè)計(jì)的基本螺旋開(kāi)始,包括隨后的構(gòu)建設(shè)計(jì)、模塊邏輯設(shè)計(jì)、物理產(chǎn)品設(shè)計(jì)和最終設(shè)計(jì)的螺旋。
構(gòu)建階段是在每一個(gè)螺旋模型中開(kāi)發(fā)實(shí)際軟件產(chǎn)品。在基本螺旋中,當(dāng)概念需要根據(jù)其可行性進(jìn)行評(píng)估時(shí),組織應(yīng)該開(kāi)發(fā)一個(gè)POC(概念證明)并嘗試獲得有價(jià)值的客戶反饋。
了解所有要求和設(shè)計(jì)細(xì)節(jié)后,可以生成一個(gè)編號(hào)的軟件工作模型(構(gòu)建)版本。客戶審查所有構(gòu)建并提供反饋。
評(píng)估(風(fēng)險(xiǎn)分析)是識(shí)別、估計(jì)和監(jiān)控技術(shù)可行性和管理風(fēng)險(xiǎn)的過(guò)程。例如,計(jì)劃逾期和成本超支。
在客戶評(píng)估構(gòu)建之后,下一次迭代就會(huì)出現(xiàn)。這將遵循線性方法,以確??蛻籼峁┑姆答伒玫綄?shí)施。軟件開(kāi)發(fā)生命周期(SDLC)實(shí)際上包括這些螺旋迭代,直到其最終確定。
(1)什么時(shí)候使用螺旋模型?
當(dāng)需要隨著產(chǎn)品的成熟度學(xué)習(xí)時(shí):
- 有預(yù)算限制,需要預(yù)見(jiàn)風(fēng)險(xiǎn)。
- 有一個(gè)中等或高風(fēng)險(xiǎn)的項(xiàng)目需要執(zhí)行。
- 有一個(gè)長(zhǎng)期項(xiàng)目可能會(huì)發(fā)生變化。
- 對(duì)客戶而言,要求不明確。
- 由于其復(fù)雜性,要??求需要更加明確。
- 主要產(chǎn)品必須分幾個(gè)階段發(fā)布才能獲得有價(jià)值的客戶反饋。
- 希望在軟件開(kāi)發(fā)生命周期(SDLC)期間對(duì)產(chǎn)品進(jìn)行重大更改。
基于螺旋模型的適用性,以下來(lái)了解其優(yōu)缺點(diǎn)。該模型的主要優(yōu)點(diǎn)是可以將元素添加到產(chǎn)品中,以防它們可用或已知。此外,螺旋模型在產(chǎn)品開(kāi)發(fā)的早期階段就讓用戶參與進(jìn)來(lái),這允許接收建設(shè)性的反饋。
(2)螺旋模型的優(yōu)缺點(diǎn)
4.V型模型
V型模型允許按照V形順序執(zhí)行項(xiàng)目。該模型的另一個(gè)名稱是驗(yàn)證和確認(rèn)模型,因?yàn)樗谄俨寄P?。然而在軟件開(kāi)發(fā)生命周期(SDLC)中,每個(gè)開(kāi)發(fā)階段也包括測(cè)試。因此,執(zhí)行一個(gè)階段,完成之后,再進(jìn)行測(cè)試,然后才能進(jìn)入下一個(gè)階段,該階段的結(jié)構(gòu)與前一個(gè)階段相同。
在V型模型中,開(kāi)發(fā)階段與測(cè)試階段相對(duì)應(yīng),它們并行進(jìn)行。這意味著可以在圖像的一側(cè)看到驗(yàn)證階段,在另一側(cè)看到確認(rèn)階段。這些方面正在與編碼階段相結(jié)合。
根據(jù)上圖,有4個(gè)驗(yàn)證階段,分別是:
- 需求分析
- 系統(tǒng)設(shè)計(jì)
- 架構(gòu)設(shè)計(jì)
- 模塊設(shè)計(jì)
驗(yàn)證階段還包括4個(gè)階段:
- 單元測(cè)試
- 集成測(cè)試
- 系統(tǒng)測(cè)試
- 驗(yàn)收測(cè)試
如上圖所示,編碼階段將其他兩個(gè)階段結(jié)合在一起,形成V形。
V形模型與瀑布模型具有相同的適用性。必須從軟件開(kāi)發(fā)生命周期(SDLC)的一開(kāi)始就明確定義要求,因?yàn)榉祷夭⑦M(jìn)行更改會(huì)增加產(chǎn)品開(kāi)發(fā)成本。該模型最適合醫(yī)療保健行業(yè)。
(1)什么時(shí)候使用V型模型?
- 有明確定義、記錄在案且穩(wěn)定的要求。
- 使用的技術(shù)也很穩(wěn)定,項(xiàng)目團(tuán)隊(duì)對(duì)其有充分的了解。
- 所有要求都非常明確。
- 該項(xiàng)目是短期的,并不復(fù)雜。
V型模型的最大優(yōu)點(diǎn)是可以在軟件開(kāi)發(fā)生命周期(SDLC)中輕松理解、應(yīng)用和管理它。然而與其相反,當(dāng)變更即將發(fā)生時(shí),該模型缺乏靈活性,并且客戶實(shí)施這些變更的成本非常高,因?yàn)樗鼈儠?huì)引發(fā)額外的開(kāi)發(fā)成本。
(2)V型模型的優(yōu)缺點(diǎn)
5.原型模型
原型模型是軟件應(yīng)用程序原型的創(chuàng)建,它顯示了不完整產(chǎn)品的最小功能的可視化表示。這有助于在開(kāi)發(fā)階段的早期了解客戶需求,并獲得有價(jià)值的反饋。該模型包括:
- 確定基本要求
- 初始原型開(kāi)發(fā)
- 原型審查
- 原型修訂和增強(qiáng)
如今有不同類(lèi)型的軟件原型,分別是:
- 快速原型設(shè)計(jì)——在理解需求的基礎(chǔ)上構(gòu)建系統(tǒng),更清楚地理解用戶需求。
- 漸進(jìn)式原型——基于理解的需求開(kāi)發(fā)功能有限的功能原型,并在過(guò)程中添加其他需求。
- 增量原型設(shè)計(jì)——構(gòu)建大量功能原型形成一個(gè)系統(tǒng),并將它們組合在一起。
- 增量原型設(shè)計(jì)——它是一個(gè)具有三個(gè)階段的Web開(kāi)發(fā)領(lǐng)域:HTML中的基本原型、原型服務(wù)層、在最終原型中實(shí)現(xiàn)和集成。
(1)原型模型何時(shí)何地適用?
原型設(shè)計(jì)適用于具有高水平用戶交互的在線軟件系統(tǒng)開(kāi)發(fā)。例如:
- 要求用戶填寫(xiě)表格的系統(tǒng)。
- 需要大量數(shù)據(jù)處理的軟件。
原型模型也有其優(yōu)點(diǎn)和缺點(diǎn)。當(dāng)然,它們?nèi)Q于組織的需求,并在選擇這一模型之前加以考慮。
(2)原型模型的優(yōu)缺點(diǎn)
6.敏捷模型
敏捷模型基于迭代和增量模型,但它更具適應(yīng)性,并以更快的速度交付工作軟件。由于滿足了客戶的需求并且非常靈活,敏捷模型帶來(lái)了更高客戶滿意度。敏捷項(xiàng)目?jī)A向于將生產(chǎn)過(guò)程分解為增量構(gòu)建,或者稱之為迭代。每個(gè)迭代都有一個(gè)1到3周的時(shí)間表,包括同時(shí)在不同項(xiàng)目領(lǐng)域工作的不同團(tuán)隊(duì)。這可以減少生產(chǎn)時(shí)間,并降低生產(chǎn)成本。
每次迭代都由相同的過(guò)程組成,它們是:
- 規(guī)劃
- 需求分析
- 設(shè)計(jì)
- 編碼
- 單元測(cè)試
- 驗(yàn)收測(cè)試
在每次迭代結(jié)束時(shí),都會(huì)得到提供給客戶的產(chǎn)品,以了解應(yīng)用程序是否是根據(jù)客戶的要求構(gòu)建的,并接收有關(guān)正在完成的工作的反饋。
敏捷模型分為幾種方法,它們都有自己的原則。例如,
- 軟件統(tǒng)一過(guò)程(RUP)
- Scrum
- 看板(Kanban)
- ScrumBan
- 極限編程(XP)
- ScrumXP
- 迭代開(kāi)發(fā)
- 精益軟件開(kāi)發(fā)
(1)什么時(shí)候使用敏捷模型?
- 在中小型軟件項(xiàng)目中。
- 生產(chǎn)所需的多種產(chǎn)品。
- 當(dāng)需要將開(kāi)發(fā)過(guò)程分解為更小的部分時(shí)。
- 當(dāng)需要軟件交付加速時(shí)。
- 當(dāng)團(tuán)隊(duì)需要靈活改變優(yōu)先級(jí)時(shí)。
- 何時(shí)需要提高軟件質(zhì)量、生產(chǎn)力和交付的可預(yù)測(cè)性。
- 促進(jìn)降低項(xiàng)目風(fēng)險(xiǎn),并實(shí)現(xiàn)降低成本的可能性。
- 有效管理項(xiàng)目中的分布式團(tuán)隊(duì)。
與其他模型一樣,敏捷模型也有優(yōu)缺點(diǎn)。例如下圖。
(2)敏捷模型的優(yōu)缺點(diǎn)
7.DevOps模型
DevOps模型具有促進(jìn)自動(dòng)化和團(tuán)隊(duì)協(xié)作的獨(dú)特原則。因此,該模型的主要重點(diǎn)是增強(qiáng)由順序反饋驅(qū)動(dòng)的團(tuán)隊(duì)之間的協(xié)作。DevOps模型類(lèi)似于敏捷模型,但由于DevOps團(tuán)隊(duì)成員和管理人員之間的協(xié)作重點(diǎn)而有所不同,而敏捷模型則側(cè)重于客戶參與。
(1)DevOps模型執(zhí)行什么任務(wù)?
- 持續(xù)集成和交付
- 微服務(wù)
- 基礎(chǔ)設(shè)施即代碼
- 監(jiān)控和記錄
- 溝通與協(xié)作
(2)什么時(shí)候使用DevOps模型?
- 在復(fù)雜的項(xiàng)目中。
- 需要質(zhì)量保證和測(cè)試的項(xiàng)目。
- 包括來(lái)自多個(gè)部門(mén)的大型團(tuán)隊(duì)的項(xiàng)目。
DevOps模型也有一些優(yōu)點(diǎn)和缺點(diǎn)。這取決于組織計(jì)劃采用此模型的項(xiàng)目以及是否已為艱難的采用曲線做好準(zhǔn)備。
(3)DevOps模型的優(yōu)缺點(diǎn)
最常用的軟件開(kāi)發(fā)模型比較
由于全球最常用的軟件開(kāi)發(fā)模型是DevOps模型、敏捷模型(Scrum和看板)和)和瀑布模型,以下是對(duì)這些軟件開(kāi)發(fā)模型比較的研究。
這張表格顯示了交付各種模型的所有顯著特征。
2020年,62%的團(tuán)隊(duì)在為滿足組織需求而采用DevOps模型進(jìn)行開(kāi)發(fā)。然而,采用敏捷模型與DevOps模型也可以降低生產(chǎn)成本,而采用敏捷模型的組織的數(shù)量與DevOps模型不相上下。
至于瀑布模型,其成功率為26%。所以如果比較瀑布模型和敏捷模型哪個(gè)更好,顯然敏捷模型在比較中獲勝。
如何選擇最適合組織的軟件開(kāi)發(fā)生命周期(SDLC)模型?
組織可以通過(guò)幾個(gè)重要步驟來(lái)選擇正確的軟件開(kāi)發(fā)模型:
(1)步驟1:查看所有現(xiàn)有的軟件開(kāi)發(fā)模型,以了解哪一種更接近組織的信念和原則以及業(yè)務(wù)需求。
(2)步驟2:是否首先聽(tīng)取利益相關(guān)者的任何需求?組織需要聽(tīng)取每個(gè)利益相關(guān)者的意見(jiàn),因?yàn)榭梢詫?duì)其最終決定產(chǎn)生影響。
(3)步驟3:考慮驗(yàn)收標(biāo)準(zhǔn),并嘗試回答以下問(wèn)題:
- 模型是否適合團(tuán)隊(duì)的規(guī)模和他們的技能?
- 模型是否適合項(xiàng)目中使用的技術(shù)?
- 模型是否適合客戶和利益相關(guān)者?
- 模型是否適合項(xiàng)目規(guī)模及其復(fù)雜性?
- 如果選擇這種模式,是否存在項(xiàng)目風(fēng)險(xiǎn)?
- 產(chǎn)品開(kāi)發(fā)過(guò)程中是否會(huì)有任何變化?
- 需求是固定的還是靈活的,并且可能在生產(chǎn)過(guò)程中出現(xiàn)?
(4)步驟4:確定哪種模型適合意圖。
(5)步驟5:根據(jù)項(xiàng)目?jī)?yōu)化模型。
現(xiàn)在已經(jīng)了解了所有軟件開(kāi)發(fā)模型的細(xì)微差別,相信組織可以找到提高其性能的模型,并繼續(xù)進(jìn)行產(chǎn)品開(kāi)發(fā)。
結(jié)語(yǔ)
軟件工程模型是一種很好的做法,因?yàn)樗梢源_保產(chǎn)品開(kāi)發(fā)的最佳質(zhì)量。軟件工程模型比較是最有用的工具之一,允許根據(jù)組織的需求選擇模型。項(xiàng)目活動(dòng)依賴于規(guī)劃良好的方案,團(tuán)隊(duì)根據(jù)該計(jì)劃工作得越好,軟件處理就越好。組織要根據(jù)其內(nèi)部的軟件開(kāi)發(fā)生命周期(SDLC)選擇其軟件模型,需要了解每個(gè)模型代表什么,然后定義最適合的模型。如今大部分的開(kāi)發(fā)人員管理和使用DevOps模型、敏模模型(Scrum和看板)和瀑布模型。所有這些模型都根據(jù)其流程而不同,但它們的共同點(diǎn)是產(chǎn)品開(kāi)發(fā)的戰(zhàn)略方法,因此在輸出方面取得了成功。
標(biāo)題名稱:如何選擇正確的軟件開(kāi)發(fā)模型?
文章來(lái)源:http://www.5511xx.com/article/dhigdpj.html


咨詢
建站咨詢
