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