軟體工程學習過程(2)
七大軟體開發模型
瀑布模型
生存週期模型或線性順序模型
模型圖
- 問題定義→ 可行性研究→ 需求分析→ 概要設計→ 詳細設計→ 編碼→ 測試和維護
- 需求分析→ 規格說明→ 設計→ 編碼 → 綜合測試 → 維護
👉特點: - 階段具有順序性和依賴性
- 推遲實現觀點:推遲程式物理實現 ,邏輯設計和物理設計分開,充分的準備之後才編碼實現
- 品質保證觀點, 以檔案為驅動,適用於需求很明確的軟體專案開發,每階段都必須完成完整,準確的檔案,每階段結束前對檔案評審
- 有嚴格的順序性,靈活性差,產品出現晚,開發人員,阻塞狀態嚴重
快速原型模型
快速建立反應使用者主要需求的原型系統,反覆由使用者評價修正需求,開發出最終產品
模型圖
- 快速原型→ 規格說明→ 設計→ 編碼 → 綜合測試 → 維護
👉特點 - 確定需求優於瀑布模型:通過原型與使用者互動
- 增加開發者和使用著對系統的瞭解
- 出品速度塊
- 逐步求精
- 開發階段迭代特徵
- 連續修改導致內部結構可能不好
- 實現過程中不應有的折中方案
- 開發者急於完成原型二忽略了整體設計和可維性
- 使用者的參與造成軟體開發管理的混亂
增量模型
分批向使用者提交產品
模型圖
- 需求分析→ 規格說明→ 設計→ 編碼和整合 → 維護
👉特點 - 較短時間內向使用者提交完成有用的工作產品
- 使用者有充裕時間學習適應產品
- 軟體結構必須開發,方便向現有產品加入新構建,靈活性高
- 並行構建後有可能會構建整合不到一起的風險
螺旋模型
螺旋模型是一種迭代模型,加入了風險分析→它是一種風險驅動的模型,適用於大規模高風險的軟體專案開發
模型圖
笛卡爾座標四象限四方面活動
- 制定計劃:確定目標,選定方案,設定約束條件
- 風險分析:評估方案,識別和消除風險
- 實施工程:軟體開發
- 客戶評估:評價開發工作,計劃下一階段工作,沿螺線自內而外每旋轉一圈開發出更完善版本
👉 特點 - 大型軟體開發下目有較好的風險控制
- 需要風險評估的經驗
- 契約式開發通常需要事先指定過程模型和分佈產品 ,不適合螺旋模型
- 普及度不如前者模型
噴泉模型
一種比較典型的物件導向軟體開發模型以使用者需求為動力,以物件作為驅動,適合物件導向的開發方法
👉特點
- 迭代性→系統某部分常被重複工作多次,相關功能在每次迭代中加入演進系統,
- 無間隙性→分析,設計,編碼不存在明顯界限
- 提高開發效率和開發時間
- 過分迭代增加開發成本,甚至延遲提交時間
- 隨時加入資訊,稽核難度加大
基於構建的開發模型,
利用預先封裝的軟體構件來構造應用軟體系統,從而提高軟體的重用性和可靠性,通常構件需要符合特定的介面標準,並實現一組介面
👉特點
可以在不同的計算機軟體系統中複用,在某個領域具有一定的通用性
統一過程(RUP)模型
基於物件導向統一建模語言(UML)的一種物件導向的軟體流程模型,RUP有九個核心工作流,包括6個核心過程工作流和三個核心支援工作流,有4個連續階段,每階段通過一次或多次迭代完成
👉特點
- RUP軟體由用例驅動,以構件為中心,採用迭代和增量的開發策略,
- 它的軟體生存週期是一個二維的軟體開發模型
基於形式化的開發模型
藉助數學的方法來研究電腦科學中的有關問題,確保嚴格,無錯
變化模型→結合形式化軟體開發方法和程式自動生成技術的一種軟體開發模型,採用用嚴格的數學的表示體系來表示軟體規格說明
淨室模型→一種形式化的增量開發模型,在無錯誤或」淨室「狀態下實現軟體開發
可行性研究
👉可行性研究的目的
這個階段的目的不是解決使用者提出的問題,而是確定這個問題是否值得去解決
👉可行性研究的任務
從經濟,技術,操作,法律四個方面來研究每種演演算法的可行性
1.經濟可行性→成本—效益分析,即要分析在整個軟體週期中所花費的代價與得到的效益之間的度量
2.技術可行性→對要開發專案的功能,效能,限制條件進行分析
3.操作可行性→系統的操作方式在這個應用範圍內是否新的通
4.法律可行性→會不會在社會上或政治上引起侵權
👉可行性研究的步驟
1.複查並確定系統規模和目標
2.研究目前正在使用的系統
3.建立新系統的高層邏輯模型
4.匯出和評價各種方案
5/推薦可行方案
6.草擬初步的開發計劃
7.編寫可行性研究報告提交審查
👉成本-效益分析
系統成本包括開發成本和執行維護成本
系統效益包括
有形的經濟效益
- 貨幣的時間價值→錢數=存入P元 x(1+年利率 x n年)→P元錢在n年後的價值
- 投資回收期
- 純收入
無形的經濟效益
👉可行性研究報告的主要內容
- 引言:說明編寫檔案的目的,專案名稱,背景
- 可行性研究前提:說明開發 專案的功能,效能,基本要求,限制條件
- 對現有系統的分析
- 對所建設系統的分析:經濟,技術,社會因素可行性分析
- 其他與設計有關選擇方案
- 其他與設計有關的專門問題
- 結論意見
花神的部落格生涯之軟體工程(1)結束了哦~
接下來會持續更新(⊙o⊙)!