【軟考之旅】七大軟體過程模型
前言:最近在做軟考試題,會出一些每個模型的“特點”。
典型的軟體過程模型有瀑布模型、增量模型、演化模型(原型模型、螺旋模型)、噴泉模型、基於構件的開發模型、形式化方法模型等。
七大軟體過程模型 |
|||||||
瀑布模型 |
增量模式 |
原型模型 |
螺旋模型 |
噴泉模型 |
基於構件的開發模型 |
形式化方法模型 |
|
定義 |
將軟體生存週期中的各個活動規定為依線性順序連線的若干個階段的模型。包括需求分析、設計、編碼、測試、執行與維護。它規定了由前至後、相互銜接的固定次序,如瀑布流水級下落。 |
將需求分段為一系列增量產品,每一增量可以分別開發。根據第一個增量,可以快速開發出核心產品。 |
快速建立起來的可以在計算機上執行的程式,或僅僅是一個演示介面。 |
瀑布與演化模型的結合,加入風險分析。四象限工作步驟:制定計劃、風險分析、實施工程、使用者評估。 |
以使用者需求為動力,以物件作為驅動的模型。具有迭代性和無間隙性。 |
利用預選包裝的構件來構造應用系統。 |
建立在嚴格數學基礎上的一種開發方法。 |
適用於 |
以文件作為驅動、適合於軟體需求很明確的軟體專案。 |
軟體體系結構開發,加入新構件過程簡單。 |
需求不夠明確的專案。 |
龐大、複雜並且具有高度風險的系統。支援需求的動態變化。 |
面向物件的開發方法。 |
需要一定的構件模型支援的軟體專案。 |
需要生成計算機軟體形式化的數學規格說明。 |
優點 |
容易理解,管理成本低;強調開發的階段性早期計劃及需求調查和產品測試。 |
第一個可以付版本所需要的實際和成本很少;所承擔的風險不大;減少使用者需求的變更。 |
能快速、低成本地構件原型。 |
提高軟體的適應能力;降低了軟體開發的風險。 |
各階段沒有明顯的界閒,可以同步開發,提高了軟體開發效率,節省了時間。 |
構件組裝模型導致軟體的複用,提高了開發效率;允許多個專案同時開發,降低了費用,提高了可維護性。 |
易於發現需求的歧義性、不完整性和不一致性;易於對分析模型、設計模型和程式進行驗證。 |
缺點 |
客戶必須能夠完整、正確、清晰地表達出他們的需求;需求或設計的錯誤往往是在專案後期才被發現,對於專案風險控制能力較弱,經常延期。 |
如果沒有對變更需求進行規劃,那麼會導致後來增量的不穩定;如果需求不穩定完整,那麼會導致重新開發;管理髮生的成本、進度和配置的複雜性會超出組織的能力。 |
必須需求具有技能高水平的原型化人員。 |
過多的迭代次數增加了開發成本,延遲了提交時間。 |
各開發階段是重疊的,不利於專案的管理;嚴格要求文件,使得稽核的難度加大。 |
構件的引入具有較大的風險;過分依賴於構件,構件的質量影響產品的質量;需要精幹的、有經驗的分析人員和開發人員,客戶的滿意度低。 |
需要通過嚴密的數學演算。 |
關鍵點 |
需求明確 |
需求不夠明確 |
風險 |
總結:對比總結一下,一看就明白了。