偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

如何選擇正確的軟件開發(fā)模型?

譯文
開發(fā) 前端
軟件開發(fā)模型最早在上世紀(jì)50年代至60年代引入軟件開發(fā)社區(qū)。在那個時候,將一切都集中起來是一個很好的做法,而編程是必須規(guī)劃的過程之一。

【51CTO.com快譯】軟件開發(fā)模型最早在上世紀(jì)50年代至60年代引入軟件開發(fā)社區(qū)。在那個時候,將一切都集中起來是一個很好的做法,而編程是必須規(guī)劃的過程之一。

如今,這個過程在日常的項(xiàng)目管理中非常必要,因?yàn)槿绻麤]有特定的事件流,項(xiàng)目開發(fā)可能會非?;靵y。因此,從項(xiàng)目規(guī)劃到發(fā)布和維護(hù)的任何活動都有一個所有人都需要使用的概念框架。

因此,很多組織表示:

  • 與未定義的軟件開發(fā)過程作斗爭。
  • 缺乏有關(guān)項(xiàng)目管理技術(shù)的某些知識。
  • 尋求優(yōu)化和構(gòu)建開發(fā)階段的方法。
  • 希望加快交付過程。
  • 降低項(xiàng)目風(fēng)險(xiǎn)。
  • 縮短項(xiàng)目時間和過多的成本。

本文將定義軟件開發(fā)生命周期,概述七個最常用的軟件開發(fā)模型,并找出它們在項(xiàng)目開發(fā)中的差異和好處。此外還將對軟件工程中的軟件模型進(jìn)行比較,以幫助組織找到最適合的模型。

為什么需要軟件項(xiàng)目開發(fā)模型?

每個軟件外包公司都有自己的軟件開發(fā)生命周期(SDLC),它通常包含以下應(yīng)用程序開發(fā)階段:

  • 需求分析
  • 設(shè)計(jì)
  • 開發(fā)和測試
  • 執(zhí)行
  • 文檔
  • 維護(hù)

 

這些階段標(biāo)志著軟件項(xiàng)目開發(fā)的通常過程,從收集客戶需求到推出具有全天候支持的成熟產(chǎn)品。很多組織通常更喜歡個性化的工作流程和方法,因此有一些包含這些開發(fā)階段的概念模型。這些模型具有預(yù)先編寫和建立的關(guān)鍵原則、基本流程和時間表,因此將其稱為方法論。

以下是各具特色的七種軟件開發(fā)模型,它們分別是:

  • 瀑布模型
  • 迭代和增量模型
  • 螺旋模型
  • V型模型
  • 原型模型
  • 敏捷模型
  • DevOps模型

軟件開發(fā)過程模型的價(jià)值在于過程優(yōu)化,以及作為團(tuán)隊(duì)績效提升的最終因素。每個模型都非常具體,并且組織在實(shí)施時應(yīng)該專注于它們的技術(shù)、愿景、使命和節(jié)奏。這就是為什么有這么多人來尋求適合其組織的軟件開發(fā)模型的原因。

根據(jù)調(diào)研機(jī)構(gòu)Statista公司的調(diào)查,全球最常用的軟件工程過程模型是DevOps模型,占到36%;緊隨其后的是敏捷模型,將近32%;排名第三的是看板(Kanban)模型,全球有13%的IT社區(qū)都在使用。

那么,軟件開發(fā)模型有哪些?當(dāng)今組織使用的軟件工程模型的類型是什么?

什么是軟件開發(fā)模型以及它們?nèi)绾喂ぷ?

1.瀑布模型

瀑布模型是軟件開發(fā)領(lǐng)域引入的第一個軟件項(xiàng)目開發(fā)模型。它也被稱為線性模型,因?yàn)樵撃P鸵馕吨谶M(jìn)入下一個階段之前要完成以上所有階段。因此,該模型逐步地線性運(yùn)行,不可能與任何階段重疊。其原理如下圖所示:

確實(shí),該模型類似于現(xiàn)實(shí)中的瀑布,它有起點(diǎn)和終點(diǎn),就像水流從懸崖上落下,沒有任何中斷或改變。

(1)哪些因素有助于選擇瀑布方法?

  • 短期項(xiàng)目。
  • 明確、固定且記錄良好的要求。
  • 可理解的靜態(tài)技術(shù)。
  • 穩(wěn)定的產(chǎn)品定義。
  • 各種產(chǎn)品支持資源。
  • 產(chǎn)品負(fù)責(zé)人參與度低。
  • 嚴(yán)格設(shè)定的時間表。
  • 無法更改的固定預(yù)算。

而在所有其他情況下,可以選擇其他模型來進(jìn)行項(xiàng)目開發(fā)。

瀑布模型的主要優(yōu)點(diǎn)是該模型在執(zhí)行的任務(wù)及其時間表方面有嚴(yán)格的順序。由于順序是固定的,很多任務(wù)可以很容易地在軟件部門之間進(jìn)行劃分,并監(jiān)控任務(wù)完成情況??蛻艨赡軙l(fā)現(xiàn)瀑布模型是一種可靠的方法,因?yàn)樗麄儠孪攘私鈴拈_始到結(jié)束的整個過程。當(dāng)然瀑布模型也有一些缺點(diǎn)。例如瀑布模型很難對任務(wù)進(jìn)行修改,這是因?yàn)閼?yīng)用程序開發(fā)越深入到另一個階段,就越難返回并更改其概念基礎(chǔ)或文檔。

(2)瀑布模型的優(yōu)缺點(diǎn)

2.迭代和增量模型

在迭代和增量模型中,開發(fā)從實(shí)現(xiàn)幾個小需求開始,然后通過多次迭代(增量)增強(qiáng)產(chǎn)品。增強(qiáng)過程以增量(迭代)的方式進(jìn)行,直到應(yīng)用程序功能完成并準(zhǔn)備部署為止。只開發(fā)軟件的一小部分是一種明智的方法,因?yàn)榭梢暂p松查看已完成的工作,快速確定進(jìn)一步的要求,并繼續(xù)實(shí)施或?qū)?yīng)用程序進(jìn)行一些更改,然后再繼續(xù)下一步。無論采用哪種方式,組織都將從這些解決方案中受益,因?yàn)槊看涡碌牡紩硪粋€新的、更好的軟件版本。

與瀑布模型不同,迭代模型允許一次執(zhí)行多次迭代并同時接收產(chǎn)品輸出。該模型提供的成功關(guān)鍵在于驗(yàn)證軟件的版本,并根據(jù)要求對其進(jìn)行測試。這樣可以更好地了解團(tuán)隊(duì)在項(xiàng)目中所處的位置、產(chǎn)品的功能驗(yàn)證,以及對產(chǎn)品成功的信心。

(1)迭代模型適用于軟件開發(fā)的哪些地方?

  • 系統(tǒng)要求得到明確定義和充分理解。
  • 隨著時間的推移,可能會出現(xiàn)其他要求。
  • 當(dāng)團(tuán)隊(duì)學(xué)習(xí)新技術(shù)并同時處理項(xiàng)目時。
  • 僅在合同規(guī)定的特定迭代需要時才使用特定資源。
  • 由于高風(fēng)險(xiǎn)特性,未來業(yè)務(wù)目標(biāo)可能會發(fā)生變化。

迭代模型的最大優(yōu)點(diǎn)是它允許在開始開發(fā)軟件時發(fā)現(xiàn)功能和設(shè)計(jì)的缺陷。在迭代中工作并驗(yàn)證每個開發(fā)周期將產(chǎn)生無風(fēng)險(xiǎn)的產(chǎn)品,能夠添加或刪除功能,以及改變最終產(chǎn)品的成本和時間表。而除了這些優(yōu)點(diǎn)之外,還應(yīng)該討論存在的一些缺點(diǎn)。

(2)迭代模型的優(yōu)缺點(diǎn)

3.螺旋模型

螺旋模型是迭代模型和瀑布模型的組合。從迭代方法出發(fā),它采用了循環(huán)開發(fā)方法;而從瀑布方法出發(fā),它借用了一種系統(tǒng)的方法和控制過程的能力。螺旋模型的重點(diǎn)在于風(fēng)險(xiǎn)分析。此外,它還以迭代的方式交付項(xiàng)目,并圍繞其中心螺旋形旋轉(zhuǎn)。

螺旋模型分為4個階段設(shè)計(jì)。開發(fā)中的產(chǎn)品在其迭代過程中都經(jīng)過這些階段,在此方法中也稱為螺旋。這些階段包括:

  • 識別
  • 設(shè)計(jì)
  • 構(gòu)建
  • 評估(風(fēng)險(xiǎn)分析)

識別是收集業(yè)務(wù)需求的最佳階段。這是在一個基本的螺旋中完成的。螺旋模型確定了系統(tǒng)、子系統(tǒng)和單元要求。除了收集需求之外,這個階段還涉及客戶和系統(tǒng)分析師之間的溝通,以了解部署所需的內(nèi)容。

設(shè)計(jì)也從概念設(shè)計(jì)的基本螺旋開始,包括隨后的構(gòu)建設(shè)計(jì)、模塊邏輯設(shè)計(jì)、物理產(chǎn)品設(shè)計(jì)和最終設(shè)計(jì)的螺旋。

構(gòu)建階段是在每一個螺旋模型中開發(fā)實(shí)際軟件產(chǎn)品。在基本螺旋中,當(dāng)概念需要根據(jù)其可行性進(jìn)行評估時,組織應(yīng)該開發(fā)一個POC(概念證明)并嘗試獲得有價(jià)值的客戶反饋。

了解所有要求和設(shè)計(jì)細(xì)節(jié)后,可以生成一個編號的軟件工作模型(構(gòu)建)版本??蛻魧彶樗袠?gòu)建并提供反饋。

評估(風(fēng)險(xiǎn)分析)是識別、估計(jì)和監(jiān)控技術(shù)可行性和管理風(fēng)險(xiǎn)的過程。例如,計(jì)劃逾期和成本超支。

在客戶評估構(gòu)建之后,下一次迭代就會出現(xiàn)。這將遵循線性方法,以確??蛻籼峁┑姆答伒玫綄?shí)施。軟件開發(fā)生命周期(SDLC)實(shí)際上包括這些螺旋迭代,直到其最終確定。

(1)什么時候使用螺旋模型?

當(dāng)需要隨著產(chǎn)品的成熟度學(xué)習(xí)時:

  • 有預(yù)算限制,需要預(yù)見風(fēng)險(xiǎn)。
  • 有一個中等或高風(fēng)險(xiǎn)的項(xiàng)目需要執(zhí)行。
  • 有一個長期項(xiàng)目可能會發(fā)生變化。
  • 對客戶而言,要求不明確。
  • 由于其復(fù)雜性,要​​求需要更加明確。
  • 主要產(chǎn)品必須分幾個階段發(fā)布才能獲得有價(jià)值的客戶反饋。
  • 希望在軟件開發(fā)生命周期(SDLC)期間對產(chǎn)品進(jìn)行重大更改。

基于螺旋模型的適用性,以下來了解其優(yōu)缺點(diǎn)。該模型的主要優(yōu)點(diǎn)是可以將元素添加到產(chǎn)品中,以防它們可用或已知。此外,螺旋模型在產(chǎn)品開發(fā)的早期階段就讓用戶參與進(jìn)來,這允許接收建設(shè)性的反饋。

(2)螺旋模型的優(yōu)缺點(diǎn)

4.V型模型

V型模型允許按照V形順序執(zhí)行項(xiàng)目。該模型的另一個名稱是驗(yàn)證和確認(rèn)模型,因?yàn)樗谄俨寄P?。然而在軟件開發(fā)生命周期(SDLC)中,每個開發(fā)階段也包括測試。因此,執(zhí)行一個階段,完成之后,再進(jìn)行測試,然后才能進(jìn)入下一個階段,該階段的結(jié)構(gòu)與前一個階段相同。

在V型模型中,開發(fā)階段與測試階段相對應(yīng),它們并行進(jìn)行。這意味著可以在圖像的一側(cè)看到驗(yàn)證階段,在另一側(cè)看到確認(rèn)階段。這些方面正在與編碼階段相結(jié)合。

根據(jù)上圖,有4個驗(yàn)證階段,分別是:

  • 需求分析
  • 系統(tǒng)設(shè)計(jì)
  • 架構(gòu)設(shè)計(jì)
  • 模塊設(shè)計(jì)

驗(yàn)證階段還包括4個階段:

  • 單元測試
  • 集成測試
  • 系統(tǒng)測試
  • 驗(yàn)收測試

如上圖所示,編碼階段將其他兩個階段結(jié)合在一起,形成V形。

V形模型與瀑布模型具有相同的適用性。必須從軟件開發(fā)生命周期(SDLC)的一開始就明確定義要求,因?yàn)榉祷夭⑦M(jìn)行更改會增加產(chǎn)品開發(fā)成本。該模型最適合醫(yī)療保健行業(yè)。

(1)什么時候使用V型模型?

  • 有明確定義、記錄在案且穩(wěn)定的要求。
  • 使用的技術(shù)也很穩(wěn)定,項(xiàng)目團(tuán)隊(duì)對其有充分的了解。
  • 所有要求都非常明確。
  • 該項(xiàng)目是短期的,并不復(fù)雜。

V型模型的最大優(yōu)點(diǎn)是可以在軟件開發(fā)生命周期(SDLC)中輕松理解、應(yīng)用和管理它。然而與其相反,當(dāng)變更即將發(fā)生時,該模型缺乏靈活性,并且客戶實(shí)施這些變更的成本非常高,因?yàn)樗鼈儠l(fā)額外的開發(fā)成本。

(2)V型模型的優(yōu)缺點(diǎn)

5.原型模型

原型模型是軟件應(yīng)用程序原型的創(chuàng)建,它顯示了不完整產(chǎn)品的最小功能的可視化表示。這有助于在開發(fā)階段的早期了解客戶需求,并獲得有價(jià)值的反饋。該模型包括:

  • 確定基本要求
  • 初始原型開發(fā)
  • 原型審查
  • 原型修訂和增強(qiáng)

如今有不同類型的軟件原型,分別是:

  • 快速原型設(shè)計(jì)——在理解需求的基礎(chǔ)上構(gòu)建系統(tǒng),更清楚地理解用戶需求。
  • 漸進(jìn)式原型——基于理解的需求開發(fā)功能有限的功能原型,并在過程中添加其他需求。
  • 增量原型設(shè)計(jì)——構(gòu)建大量功能原型形成一個系統(tǒng),并將它們組合在一起。
  • 增量原型設(shè)計(jì)——它是一個具有三個階段的Web開發(fā)領(lǐng)域:HTML中的基本原型、原型服務(wù)層、在最終原型中實(shí)現(xiàn)和集成。

(1)原型模型何時何地適用?

原型設(shè)計(jì)適用于具有高水平用戶交互的在線軟件系統(tǒng)開發(fā)。例如:

  • 要求用戶填寫表格的系統(tǒng)。
  • 需要大量數(shù)據(jù)處理的軟件。

原型模型也有其優(yōu)點(diǎn)和缺點(diǎn)。當(dāng)然,它們?nèi)Q于組織的需求,并在選擇這一模型之前加以考慮。

(2)原型模型的優(yōu)缺點(diǎn)

6.敏捷模型

敏捷模型基于迭代和增量模型,但它更具適應(yīng)性,并以更快的速度交付工作軟件。由于滿足了客戶的需求并且非常靈活,敏捷模型帶來了更高客戶滿意度。敏捷項(xiàng)目傾向于將生產(chǎn)過程分解為增量構(gòu)建,或者稱之為迭代。每個迭代都有一個1到3周的時間表,包括同時在不同項(xiàng)目領(lǐng)域工作的不同團(tuán)隊(duì)。這可以減少生產(chǎn)時間,并降低生產(chǎn)成本。

每次迭代都由相同的過程組成,它們是:

  • 規(guī)劃
  • 需求分析
  • 設(shè)計(jì)
  • 編碼
  • 單元測試
  • 驗(yàn)收測試

在每次迭代結(jié)束時,都會得到提供給客戶的產(chǎn)品,以了解應(yīng)用程序是否是根據(jù)客戶的要求構(gòu)建的,并接收有關(guān)正在完成的工作的反饋。

敏捷模型分為幾種方法,它們都有自己的原則。例如,

  • 軟件統(tǒng)一過程(RUP)
  • Scrum
  • 看板(Kanban)
  • ScrumBan
  • 極限編程(XP)
  • ScrumXP
  • 迭代開發(fā)
  • 精益軟件開發(fā)

(1)什么時候使用敏捷模型?

  • 在中小型軟件項(xiàng)目中。
  • 生產(chǎn)所需的多種產(chǎn)品。
  • 當(dāng)需要將開發(fā)過程分解為更小的部分時。
  • 當(dāng)需要軟件交付加速時。
  • 當(dāng)團(tuán)隊(duì)需要靈活改變優(yōu)先級時。
  • 何時需要提高軟件質(zhì)量、生產(chǎn)力和交付的可預(yù)測性。
  • 促進(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)自動化和團(tuán)隊(duì)協(xié)作的獨(dú)特原則。因此,該模型的主要重點(diǎn)是增強(qiáng)由順序反饋驅(qū)動的團(tuán)隊(duì)之間的協(xié)作。DevOps模型類似于敏捷模型,但由于DevOps團(tuán)隊(duì)成員和管理人員之間的協(xié)作重點(diǎn)而有所不同,而敏捷模型則側(cè)重于客戶參與。

(1)DevOps模型執(zhí)行什么任務(wù)?

  • 持續(xù)集成和交付
  • 微服務(wù)
  • 基礎(chǔ)設(shè)施即代碼
  • 監(jiān)控和記錄
  • 溝通與協(xié)作

(2)什么時候使用DevOps模型?

  • 在復(fù)雜的項(xiàng)目中。
  • 需要質(zhì)量保證和測試的項(xiàng)目。
  • 包括來自多個部門的大型團(tuán)隊(duì)的項(xiàng)目。

DevOps模型也有一些優(yōu)點(diǎn)和缺點(diǎn)。這取決于組織計(jì)劃采用此模型的項(xiàng)目以及是否已為艱難的采用曲線做好準(zhǔn)備。

(3)DevOps模型的優(yōu)缺點(diǎn)

最常用的軟件開發(fā)模型比較

由于全球最常用的軟件開發(fā)模型是DevOps模型、敏捷模型(Scrum和看板)和)和瀑布模型,以下是對這些軟件開發(fā)模型比較的研究。

這張表格顯示了交付各種模型的所有顯著特征。

2020年,62%的團(tuán)隊(duì)在為滿足組織需求而采用DevOps模型進(jìn)行開發(fā)。然而,采用敏捷模型與DevOps模型也可以降低生產(chǎn)成本,而采用敏捷模型的組織的數(shù)量與DevOps模型不相上下。

至于瀑布模型,其成功率為26%。所以如果比較瀑布模型和敏捷模型哪個更好,顯然敏捷模型在比較中獲勝。

如何選擇最適合組織的軟件開發(fā)生命周期(SDLC)模型?

組織可以通過幾個重要步驟來選擇正確的軟件開發(fā)模型:

(1)步驟1:查看所有現(xiàn)有的軟件開發(fā)模型,以了解哪一種更接近組織的信念和原則以及業(yè)務(wù)需求。

(2)步驟2:是否首先聽取利益相關(guān)者的任何需求?組織需要聽取每個利益相關(guān)者的意見,因?yàn)榭梢詫ζ渥罱K決定產(chǎn)生影響。

(3)步驟3:考慮驗(yàn)收標(biāo)準(zhǔn),并嘗試回答以下問題:

  • 模型是否適合團(tuán)隊(duì)的規(guī)模和他們的技能?
  • 模型是否適合項(xiàng)目中使用的技術(shù)?
  • 模型是否適合客戶和利益相關(guān)者?
  • 模型是否適合項(xiàng)目規(guī)模及其復(fù)雜性?
  • 如果選擇這種模式,是否存在項(xiàng)目風(fēng)險(xiǎn)?
  • 產(chǎn)品開發(fā)過程中是否會有任何變化?
  • 需求是固定的還是靈活的,并且可能在生產(chǎn)過程中出現(xiàn)?

(4)步驟4:確定哪種模型適合意圖。

(5)步驟5:根據(jù)項(xiàng)目優(yōu)化模型。

現(xiàn)在已經(jīng)了解了所有軟件開發(fā)模型的細(xì)微差別,相信組織可以找到提高其性能的模型,并繼續(xù)進(jìn)行產(chǎn)品開發(fā)。

結(jié)語

軟件工程模型是一種很好的做法,因?yàn)樗梢源_保產(chǎn)品開發(fā)的最佳質(zhì)量。軟件工程模型比較是最有用的工具之一,允許根據(jù)組織的需求選擇模型。項(xiàng)目活動依賴于規(guī)劃良好的方案,團(tuán)隊(duì)根據(jù)該計(jì)劃工作得越好,軟件處理就越好。組織要根據(jù)其內(nèi)部的軟件開發(fā)生命周期(SDLC)選擇其軟件模型,需要了解每個模型代表什么,然后定義最適合的模型。如今大部分的開發(fā)人員管理和使用DevOps模型、敏模模型(Scrum和看板)和瀑布模型。所有這些模型都根據(jù)其流程而不同,但它們的共同點(diǎn)是產(chǎn)品開發(fā)的戰(zhàn)略方法,因此在輸出方面取得了成功。

原文標(biāo)題:7 Software Development Models: How to Choose the Right One?,作者:Nazar Kvartalnyi

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2009-08-12 18:39:01

軟件開發(fā)的生命周期

2020-05-10 20:05:43

物聯(lián)網(wǎng)軟件開發(fā)IOT

2013-05-09 09:26:59

軟件開發(fā)開發(fā)方法

2020-12-03 15:54:15

軟件開發(fā)工具

2024-09-23 15:02:40

2013-05-29 19:25:14

JATCOPTC軟件開發(fā)

2024-02-23 11:13:35

2022-03-09 10:18:48

UnixC語言軟件

2009-02-27 14:33:00

服務(wù)器軟件企業(yè)服務(wù)器軟件

2022-11-29 07:14:56

NLP語言模型

2022-09-07 11:56:53

汽車軟件

2009-02-10 17:11:53

SaaSSaaS開發(fā)PaaS

2015-03-02 09:35:07

軟件開發(fā)

2020-08-17 12:55:38

.NetJava軟件開發(fā)

2009-03-04 17:48:05

虛擬化VMware微軟

2013-01-07 11:38:54

VMware認(rèn)證

2009-06-26 09:32:09

軟件開發(fā)

2020-06-24 11:21:47

軟件開發(fā)面試

2024-11-07 12:14:36

2012-06-18 09:34:14

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號