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

2021-10-23 11:11 更新

軟件開發(fā)生命周期(Software Development Life Cycle),簡稱SDLC,是軟件工程中定義明確、結(jié)構(gòu)化的階段序列,用于開發(fā)預(yù)期的軟件產(chǎn)品。

SDLC活動

SDLC 提供了一系列需要遵循的步驟,以有效地設(shè)計和開發(fā)軟件產(chǎn)品。SDLC 框架包括以下步驟:

通信

這是用戶發(fā)起對所需軟件產(chǎn)品的請求的第一步。他聯(lián)系服務(wù)提供商并嘗試協(xié)商條款,以書面形式向服務(wù)提供組織提交請求。

要求收集

從這一步開始,軟件開發(fā)團(tuán)隊將繼續(xù)執(zhí)行該項目。該團(tuán)隊與來自問題領(lǐng)域的各種利益相關(guān)者進(jìn)行討論,并試圖提供盡可能多的關(guān)于他們需求的信息。這些需求被劃分為用戶需求、系統(tǒng)需求和功能需求。這些需求是使用給定的許多實踐手機(jī)的:

  • 研究現(xiàn)有的或已過時的系統(tǒng)和軟件
  • 對用戶和開發(fā)人員進(jìn)行訪談
  • 參考數(shù)據(jù)庫
  • 從問卷中收集答案

可行性研究

在需求收集之后,團(tuán)隊提出了軟件過程的粗略計劃。在這一步,團(tuán)隊分析是否可以制作一個軟件來滿足用戶的所有需求,以及是否有任何軟件不再有用的可能性。如果該項目在預(yù)算上、實際上和技術(shù)上對組織來說是可行的,就會被發(fā)現(xiàn)。有許多可用的算法,可以吧主開發(fā)人員得出軟件項目的可行性。

系統(tǒng)分析

在這一步的開發(fā)者決定他們計劃的路線圖,并嘗試提出適合該項目的最好的軟件模型。系統(tǒng)的分析包括了解軟件產(chǎn)品的限制,學(xué)習(xí)系統(tǒng)相關(guān)的問題或變化將在現(xiàn)有的系統(tǒng)中之前進(jìn)行,識別并解決項目對組織人事等團(tuán)隊項目的影響分析項目的范圍,并計劃進(jìn)度和相應(yīng)的資源。

軟件設(shè)計

在這一步,開發(fā)人員決定他們的計劃路線圖,并嘗試提出適合項目的最佳軟件模型。系統(tǒng)分析包括了解軟件產(chǎn)品的局限性,預(yù)先了解系統(tǒng)相關(guān)問題或在現(xiàn)有系統(tǒng)中要進(jìn)行的更改,識別和解決項目對組織和人員的影響等。項目團(tuán)隊分析項目范圍,并相應(yīng)地計劃進(jìn)度和資源。

編碼

這個步驟也被稱為編程階段。軟件設(shè)計的實施始于用合適的編程語言編寫程序代碼并有效地開發(fā)無錯誤的可執(zhí)行程序。

測試

據(jù)估計,應(yīng)該測試整個軟件開發(fā)過程的 50%。錯誤可能會破壞軟件從關(guān)鍵級別到自行刪除。軟件測試由開發(fā)人員在編碼的同時進(jìn)行,由測試專家在各個級別的代碼(例如模塊測試、程序測試、產(chǎn)品測試、內(nèi)部測試和用戶端測試產(chǎn)品)上進(jìn)行全面測試。盡早地發(fā)現(xiàn)錯誤及其補(bǔ)救措施是獲得可靠軟件的關(guān)鍵。

整合

軟件可能需要與庫、數(shù)據(jù)庫和其他程序集成。SDLC 的這個階段設(shè)計軟件與外部世界實體的集成。

實施

這意味著在用戶機(jī)器上安裝軟件。有時,軟件需要在用戶端進(jìn)行安裝后配置。測試軟件的可以執(zhí)行和適應(yīng)性,并在實施過程中解決與集成相關(guān)的問題。

操作和維護(hù)

此階段以更高的效率和更少的錯誤來確認(rèn)軟件的操作。如果需要,用戶將接受有關(guān)如何操作以及如何保持軟件運行的文檔的培訓(xùn)或幫助。通過根據(jù)用戶終端環(huán)境或技術(shù)發(fā)生的變化更新代碼來及時維護(hù)軟件。此階段可能面臨來自隱藏錯誤和現(xiàn)實世界中未識別問題的挑戰(zhàn)。

處置

隨著時間的推薦,軟件的性能可能會下降。它可能會完全過時或可能需要大量升級。因此,迫切需要消除系統(tǒng)的主要部分。該階段包括歸檔數(shù)據(jù)和所需的軟件組織、關(guān)閉系統(tǒng)、規(guī)劃處置活動和在適當(dāng)?shù)南到y(tǒng)結(jié)束時間終止系統(tǒng)。

軟件開發(fā)范式

軟件開發(fā)范式幫助開發(fā)人員選擇開發(fā)軟件的策略。軟件開發(fā)范式有自己的一套工具、方法和程序,這些工具、方法和程序都被清晰地表達(dá)出來并定義了 SDLC。一些軟件開發(fā)范式或過程模型定義如下:

瀑布模型

瀑布模型是最簡單的軟件開發(fā)范式模型。它說SDLC的所有階段將以線性方式一個接著一個運行。也就是說,當(dāng)?shù)谝浑A段完成時,只有第二階段才會開始,以此類推。

該模型假設(shè)一切都按照上一階段的計劃完美地進(jìn)行和發(fā)生,無需考慮下一階段可能出現(xiàn)的過去問題。如果上一步存在一些問題,則此模型無法順利運行。模型的順序性質(zhì)不允許我們返回并撤銷或重做我們的操作。

當(dāng)開發(fā)人員過去已經(jīng)設(shè)計和開發(fā)過類似軟件并了解其所有領(lǐng)域時,此模型最適合。

迭代模型

該模型在迭代中引導(dǎo)軟件開發(fā)過程。它以循環(huán)方式投影開發(fā)過程,在 SDLC 過程的每個循環(huán)之后重復(fù)每一步。

該軟件首先是在非常小的規(guī)模上開發(fā)的,所有的步驟都被考慮在內(nèi)。然后,在下一次迭代中,更多的功能和模塊被設(shè)計、編碼、測試并添加到軟件中。每個周期都會產(chǎn)生一個軟件,該軟件本身是完整的,并且比前一個周期具有更多的特性和功能。

每次迭代后,管理團(tuán)隊可以進(jìn)行風(fēng)險管理工作并為下一次迭代做準(zhǔn)備。由于一個周期包括整個軟件過程的一小部分,開發(fā)過程更容易管理,但消耗的資源更多。

螺旋模型

螺旋模型是迭代模型和 SDLC 模型兩者的結(jié)合??梢钥醋魇沁x擇了一個 SDLC 模型比將其與循環(huán)過程(迭代模型)結(jié)合起來。

該模型考慮了風(fēng)險,而大多數(shù)其他模型通常沒有注意到風(fēng)險。首先在一次迭代開始時確定軟件的目標(biāo)和約束。下一個階段是對軟件進(jìn)行原型設(shè)計。這包括風(fēng)險分析,然后使用一個標(biāo)準(zhǔn)的 SDLC 模型來構(gòu)建軟件。在第四階段準(zhǔn)備下一次迭代的計劃。

V-Model

瀑布模型的主要缺點是我們只有在上一個階段完成后才能進(jìn)入下一個階段,如果后期發(fā)現(xiàn)問題則沒有機(jī)會返回。V-Model 模型提供了在每個階段以相反方式測試軟件的方法。

在每一個階段,都會根據(jù)該階段的要求創(chuàng)建測試計劃和測試用例來驗證和確認(rèn)產(chǎn)品。例如,在需求收集階段,測試團(tuán)隊根據(jù)需求準(zhǔn)備所有測試用例。之后,當(dāng)產(chǎn)品開發(fā)完畢并準(zhǔn)備好進(jìn)行測試時,此階段的測試用例會根據(jù)此階段的需求驗證軟件的有效性。

這使得驗證和確認(rèn)并行。該模型也被稱為驗證和確認(rèn)的模式.

大爆炸模型

該模型是其形式中最簡單的模型。它需要很少的規(guī)劃、大量的編程和大量的資金。這個模型是圍繞宇宙大爆炸概念化的。正如科學(xué)家所說,在大爆炸之后,許多星系、行星和恒星的演化就像一個事件。同樣,如果我們將大量的編程和資金放在一起,您可能會獲得最好的軟件產(chǎn)品。

對于這個模型,只需要非常少量的規(guī)劃。它不遵循任何流程,或者有時客戶不確定需求和未來的需求。所以,輸入要求是任意的.

這種模式不適合大型軟件項目,但適合學(xué)習(xí)和實驗。

如果需要深入了解 SDLC 及其各種模型,請單擊此處。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號