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