軟體工程模型

2021-10-01 07:12:19 字數 3158 閱讀 1533

這些牆很有趣。剛入獄的時候,你痛恨周圍的高牆;慢慢地,你習慣了生活在其中;最終你會發現自己不得不依靠它而生存。這就叫體制化。——《肖申克的救贖》

瀑布模型(wate***ll model) 是乙個專案開發架構,開發過程是通過設計一系列階段順序展開的,從系統需求分析開始直到產品發布和維護,每個階段都會產生迴圈反饋,因此,如果有資訊未被覆蓋或者發現了問題,那麼最好 「返回」上乙個階段並進行適當的修改,專案開發程序從乙個階段「流動」到下乙個階段,這也是瀑布模型名稱的由來。包括軟體工程開發、企業專案開發、產品生產以及市場銷售等構造瀑布模型。

快速原型模型需要迅速建造乙個可以執行的軟體原型 ,以便理解和澄清問題,使開發人員與使用者達成共識,最終在確定的客戶需求基礎上開發客戶滿意的軟體產品。 快速原型模型允許在需求分析階段對軟體的需求進行初步而非完全的分析和定義,快速設計開發出軟體系統的原型,該原型向使用者展示待開發軟體的全部或部分功能和效能;使用者對該原型進行測試評定,給出具體改進意見以豐富細化軟體需求;開發人員據此對軟體進行修改完善,直至使用者滿意認可之後,進行軟體的完整實現及測試、維護。

增量模型是把待開發的軟體系統模組化,將每個模組作為乙個增量元件,從而分批次地分析、設計、編碼和測試這些增量元件。運用增量模型的軟體開發過程是遞增式的過程。相對於瀑布模型而言,採用增量模型進行開發,開發人員不需要一次性地把整個軟體產品提交給使用者,而是可以分批次進行提交。

早在20世紀50年代末期,軟體領域中就出現了迭代模型。最早的迭代過程可能被描述為「分段模型(stagewise model)」。迭代模型是rup推薦的週期模型。被定義為:迭代包括產生產品發布(穩定、可執行的產品版本)的全部開發活動和要使用該發布必需的所有其他外圍元素。在某種程度上,開發迭代是一次完整地經過所有工作流程的過程:需求分析、設計、實施和測試工作流程。實質上,它類似小型的瀑布式專案。rup認為,所有的階段都可以細分為迭代。每一次的迭代都會產生乙個可以發布的產品,這個產品是最終產品的乙個子集。

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

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

詳細設計

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

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

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

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

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

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

螺旋模型是一種演化軟體開發過程模型,它兼顧了快速原型的迭代的特徵以及瀑布模型的系統化與嚴格監控。螺旋模型最大的特點在於引入了其他模型不具備的風險分析,使軟體在無法排除重大風險時有機會停止,以減小損失。同時,在每個迭代階段構建原型是螺旋模型用以減小風險的途徑。螺旋模型更適合大型的昂貴的系統級的軟體應用。 [1]

2023年,巴利·玻姆(barry boehm)正式發表了軟體系統開發的「螺旋模型」,它將瀑布模型和快速原型模型結合起來,強調了其他模型所忽視的風險分析,特別適合於大型複雜的系統。

敏捷開發是一種從2023年代開始逐漸引起廣泛關注的新型軟體開發方法,是一種能應對快速變化需求的軟體開發能力。它們的具體名稱、理念、過程、術語都不盡相同,相對於"非敏捷",更強調程式設計師團隊與業務專家之間的緊密協作、面對面的溝通(認為比書面的文件更有效)、頻繁交付新的軟體版本、緊湊而自我組織型的團隊、能夠很好地適應需求變化的**編寫和團隊組織方法,也更注重做為軟體開發中人的作用。

敏捷軟體開發描述了一套軟體開發的價值和原則,在這些開發中,需求和解決方案皆通過自組織跨功能團隊達成。敏捷軟體開發主張適度的計畫、進化開發、提前交付與持續改進,並且鼓勵快速與靈活的面對開發與變更。這些原則支援許多軟體開發方法的定義和持續進化。

軟體工程 開發模型軟體工程 開發模型

瀑布模式 螺旋模型 快速原型模式 增量模式 噴泉模型 演化模型 特點 推遲實現的觀點 質量保證 缺點 限制條件 優點 缺點 很難讓使用者確信這種演化方法的結果是可以控制的.建設週期長,而軟體技術發展比較快,所以經常出現軟體開發完畢後,和當前的技術水平有了較大的差距,無法滿足當前使用者需求.核心 在於...

軟體工程 軟體過程模型

軟體過程是為了獲得高質量軟體所需要完成的一系列任務的框架,它規定了完成各項任務的工作步驟。通常使用生命週期模型簡潔地描述軟體過程。生命週期模型規定了把生命週期劃分成哪些階段及各個階段的執行順序,因此,也稱為過程模型。常見的過程模型有瀑布模型 快速原型模型 增量模型 螺旋模型 噴泉模型等。1.瀑布模型...

軟體工程 開發模型

為了指導軟體開發,可以用不同的方式將軟體生命週期中的所有開發活動組織組織起來從而形成不同的開發模型。瀑布模型嚴格遵守軟體生命週期各階段的固定順序 計畫 分析 設計 程式設計 測試和維護,上一階段完成才能進入到下一階段,整個模型像乙個飛流直下的瀑布一下,如圖所示 特點 缺點 限制條件 優點 缺點 核心...