《信息系統項目管理師教程(第四版)》第五章“信息系統工程”是銜接技術基礎與項目管理實踐的核心章節,其中“軟件開發”部分更是現代信息系統建設的重中之重。本章系統闡述了在項目管理視角下,軟件開發所涉及的主要工程方法、模型、過程與關鍵活動。以下為本章“軟件開發”核心內容的精讀思維導圖式梳理。
一、 軟件開發方法體系
- 結構化方法(傳統方法)
- 核心思想:自頂向下、逐步求精、模塊化。
- 特點:面向過程、數據流驅動、文檔驅動。
- 局限性:軟件復用性差、難以適應需求變化、維護成本高。
- 面向對象方法(主流方法)
- 核心思想:將數據和對數據的操作封裝為“對象”,通過對象間的交互完成系統功能。
- 三大特性:封裝、繼承、多態。
- 核心概念:類與對象、消息、UML(統一建模語言)是其主要建模工具。
- 優勢:提高復用性、增強系統靈活性、更符合人類思維習慣。
- 面向服務方法(發展趨勢)
- 核心思想:將應用程序的不同功能單元(服務)通過定義良好的接口和契約聯系起來,實現松耦合、可復用的系統集成。
- 關鍵技術:SOA(面向服務的體系結構)、Web Service、微服務。
- 特點:粗粒度、松耦合、標準化接口、與平臺無關。
- 原型化方法
- 適用場景:需求不明確或快速驗證。
- 分類:拋棄式原型、演化式原型。
- 過程:快速分析、構造原型、運行評價、修改完善。
- 敏捷方法
- 核心理念:響應變化高于遵循計劃,個體與互動高于流程與工具,可工作的軟件高于詳盡的文檔,客戶合作高于合同談判。
- 代表性實踐:Scrum(迭代增量)、極限編程(XP,強調工程實踐)、特征驅動開發(FDD)。
- 特點:迭代式開發、小版本發布、持續集成、強調團隊協作與客戶反饋。
二、 軟件開發模型(生命周期模型)
- 瀑布模型
- 特點:階段劃分嚴格、順序執行、文檔驅動。
- 適用:需求明確、技術成熟、變更少的項目。
- 缺點:難以適應需求變更,風險后期才暴露。
- 迭代模型
- 核心:將整個項目分解為一系列小的、重復的瀑布周期(迭代)。
- 優點:分批次提交、風險早期控制、適應需求變化。
- 代表:RUP(統一軟件開發過程)是其典型。
- 螺旋模型
- 核心:結合瀑布模型與原型化方法的優點,并加入風險分析。
- 四象限活動:制定計劃、風險分析、實施工程、客戶評估。
- 適用:大型、高風險、需求復雜的項目。
- V模型
- 核心:強調測試的并行性與早期準備。開發階段(左翼)與測試階段(右翼)對應。
- 意義:將驗證與確認活動貫穿于整個生命周期。
- 增量模型
- 核心:先構建核心功能,然后逐步增加功能模塊。
- 與迭代區別:增量是“逐塊建造”,迭代是“反復精化”。實踐中常結合使用。
三、 需求工程
- 需求層次:業務需求 -> 用戶需求 -> 系統需求(功能需求、非功能需求、設計約束)。
- 需求過程:需求獲取 -> 需求分析(建模) -> 需求規格說明書(SRS)編制 -> 需求驗證 -> 需求管理(變更控制、跟蹤)。
- 需求分析方法:結構化分析(數據流圖DFD、數據字典、實體關系圖ERD)、面向對象分析(用例圖、類圖、活動圖)。
四、 軟件設計與建模
- 設計層次
- 架構設計(高層設計):確定系統整體結構、組件關系。模式如:分層、MVC、微內核等。
- 概要設計:定義子系統/模塊的接口與協作關系。
- 詳細設計:描述模塊內部算法、數據結構、接口細節。
- 設計原則
- 高內聚、低耦合:模塊內部緊密相關,模塊間依賴簡單。
- 其他原則:開閉原則、單一職責原則、里氏替換原則等(SOLID原則)。
- 建模工具:UML是面向對象設計與分析的標準語言,常用圖包括:用例圖(需求)、類圖(靜態結構)、時序圖/協作圖(交互)、狀態圖、活動圖等。
五、 軟件實現與測試
- 軟件實現
- 編程語言選擇:考慮項目領域、性能要求、團隊技能等。
- 編碼規范:保證代碼可讀性、可維護性。
- 代碼審查:靜態質量保證手段。
- 軟件測試
- 測試層次:單元測試(開發者) -> 集成測試(接口) -> 系統測試(整體功能性能) -> 驗收測試(用戶)。
- 測試類型:功能測試、性能測試、安全測試、兼容性測試等。
- 測試方法:黑盒測試(不關心內部)、白盒測試(邏輯覆蓋)、灰盒測試。
- 測試階段模型:V模型、W模型(測試與開發更早并行)。
六、 軟件部署與維護
- 部署(發布):包括安裝、配置、數據遷移、用戶培訓等。
- 維護類型
- 改正性維護:修復缺陷。
- 適應性維護:適應環境變化。
- 完善性維護:增強功能性能。
- 預防性維護:改進未來可維護性。
七、 軟件過程改進(CMMI)
- 目的:評估和改進組織的軟件開發過程能力。
- CMMI成熟度等級:1.初始級 -> 2.已管理級 -> 3.已定義級 -> 4.量化管理級 -> 5.優化級。
- 兩種表示法:階段式(評估組織整體成熟度)和連續式(評估特定過程域的能力)。
思維導圖核心脈絡
本章“軟件開發”內容以項目管理為視角,貫穿了從方法選擇 -> 模型確立 -> 需求分析 -> 設計建模 -> 實現測試 -> 部署維護的完整軟件工程過程鏈,并最終指向過程改進(CMMI)。項目管理師需理解各種方法、模型的特點、適用場景及優缺點,以便在項目中做出正確選擇,并有效管理軟件開發各階段的活動、交付物與質量。