6種開發模型簡介

2021-09-05 12:54:58 字數 1998 閱讀 7838

今天答辯知道了,開發乙個完整的工程,不僅僅需要編碼,還需要學習整個做軟體的流程

開發軟體有這些模型,依次來看看

參考這裡

系統化與嚴格監控

這是面向過程的開發模式,大家都知道想要的乙個確定的需求,定好時間限制,就開始迭代軟體了。設計,編碼,測試都雜糅在一起。

將軟體系統按功能分解為許多增量構件,並以構件為單位逐個地建立與交付

雖然也是瀑布的類似物,但是區別在於可以分批次交付

具備風險分析

v模型大體可以劃分為以下幾個不同的階段步驟:需求分析、概要設計、詳細設計、軟體編碼、單元測試、整合測試、系統測試、驗收測試。對概要設計中表述的各模組進行深入分析,對各模組組合進行分析等,這一階段要求達到偽**級別,已經把程式的具體實現的功能,現象等描述出來。

1、需求分析

即首先要明確客戶需要的是什麼,需要軟體作成什麼樣子,需要有那幾項功能,這一點上比較關鍵的是分析師和客戶溝通時的理解能力與互動性。要求分析師能準確的把客戶所需要達到的功能,實現方式,等表述出來,給出分析結果,寫出需求規格說明書。

2、概要設計

主要是架構的實現,指搭建架構、表述各模組功能、模組介面連線和資料傳遞的實現等項事務。

3、詳細設計

對概要設計中表述的各模組進行深入分析,對各模組組合進行分析等,這一階段要求達到偽**級別,已經把程式的具體實現的功能,現象等描述出來。其中需要包含資料庫設計說明。

4軟體編碼

按照詳細設計好的模組功能表,程式設計人員編寫出實際的**。

5單元測試

按照設定好的最小測試單元進行按單元測試,主要是測試程式**,為的是確保各單元模組被正確的編譯,單元的具體劃分按不同的單位與不同的軟體有不同,比如有具體到模組的測試,也有具體到類,函式的測試等。

6整合測試

經過了單元測試後,將各單元組合成完整的體系,主要測試各模組間組合後的功能實現情況,以及模組介面連線的成功與否,資料傳遞的正確性等,其主要目的是檢查軟體單位之間的介面是否正確。根據整合測試計畫,一邊將模組或其他軟體單位組合成系統,一邊執行該系統,以分析所組成的系統是否正確,各組成部分是否合拍。

7系統測試

經過了單元測試和整合測試以後,我們要把軟體系統搭建起來,按照軟體規格說明書中所要求,測試軟體其效能功能等是否和使用者需求相符合,在系統中執行是否存在漏洞,等。

8驗收測試

主要就是使用者在拿到軟體的時候,在使用現場,會根據前邊所提到的需求,以及規格說明書來做相應測試,以確定軟體達到符合效果的。

各個開發階段沒有特定的次序要求,並且可以互動進行. 用於物件導向的軟體專案

噴泉模型是一種以使用者需求為動力,以物件為驅動的模型,主要用於描述物件導向的軟體開發過程。該模型認為軟體開發過程自下而上週期的各階段是相互重疊和多次反覆的,就像水噴上去又可以落下來,類似乙個噴泉。各個開發階段沒有特定的次序要求,並且可以互動進行,可以在某個開發階段中隨時補充其他任何開發階段中的遺漏

原型模型是先借用已有系統作為原型模型,通過「樣品」不斷改進,使得最後的產品就是使用者所需要的。

五種網路IO模型簡介

linux的socket在預設情況都是阻塞的,當使用者程序請求讀取網路資料的時候,如果資料還沒有到達,程序就會被阻塞,一直等到資料到達,並且資料從kernel拷貝到使用者程序的記憶體後,才會解除阻塞狀態,重新開始執行。當使用者程序請求讀取資料的時候,如果資料還沒準備好,kernel會立即返回乙個er...

Unix下五種IO模型簡介

阻塞式io 阻塞式io模型是最一般的io模型。在這種模型下,io函式呼叫 read write等等 都會在操作完成或者發生中斷以後才會返回。如果指定的運算元據沒有就緒,或者操作需要的外部條件 比如緩衝區 尚未符合要求,操作會一直阻塞。非阻塞式io 相對於阻塞式io模型,非阻塞式io的特點就是 當所請...

CTC模型簡介

ctc connectionist temporal classification 可以理解為基於神經網路的時序類分類。比如語音識別 的一幀資料,很難給出乙個label,但是幾十幀資料就容易判斷出對應的發音label。語音識別聲學模型的訓練屬於監督學習,需要知道每一幀對應的label才能進行有效的訓...