軟件項目管理是軟件工程和項目管理的交叉學(xué)科,是項目管理的原理和方法在軟件工程領(lǐng)域的應(yīng)用。本書分為基礎(chǔ)篇、管理篇和實踐篇;A(chǔ)篇介紹了軟件產(chǎn)業(yè)和軟件項目管理導(dǎo)論,使讀者從整體上了解軟件項目管理的產(chǎn)生背景和概貌。管理篇以項目管理知識體系(PMBOK)為核心,圍繞著軟件項目的開發(fā)全過程,從軟件項目需求管理、軟件項目成本管理、軟件項目進度管理、軟件項目風(fēng)險管理、軟件項目配置管理、軟件項目資源管理、軟件項目質(zhì)量管理等方面對軟件項目中的管理問題進行探討。實踐篇將需求管理、成本管理、進度管理、風(fēng)險管理、配置管理、資源管理和質(zhì)量管理等相對獨立的領(lǐng)域融合在軟件過程框架中,介紹了在軟件項目實踐中如何集中使用相關(guān)理論和技術(shù)。其中包括Rational統(tǒng)一過程、敏捷軟件開發(fā)和6σ軟件開發(fā)。
本書可作為高等學(xué)校信息、軟件、計算機科學(xué)與技術(shù)等專業(yè)的學(xué)生的教材,也可供從事軟件項目管理工作的人員參考。
第2版前言
軟件及信息產(chǎn)業(yè)的發(fā)展將帶動傳統(tǒng)產(chǎn)業(yè)的發(fā)展與改造,促進國民經(jīng)濟持續(xù)、健康地發(fā)展,增強國際競爭力。因而,軟件產(chǎn)業(yè)快速、良性的發(fā)展具有重要意義。早在2001年,我國政府就明確提出“力爭在2010年使我國軟件產(chǎn)業(yè)的研究開發(fā)和生產(chǎn)能力達到或接近國際先進水平”。2009年國務(wù)院通過的《電子信息產(chǎn)業(yè)調(diào)整振興規(guī)劃》更是把“提高軟件產(chǎn)業(yè)自主發(fā)展能力”確定為振興我國電子信息產(chǎn)業(yè)的三大重點任務(wù)之一。
20世紀60年代,軟件和硬件之間的發(fā)展的不平衡導(dǎo)致的軟件危機的產(chǎn)生,也是軟件產(chǎn)業(yè)面臨的一個亟待解決的難題,隨著科學(xué)的進步和軟件開發(fā)技術(shù)的逐步成熟,管理在軟件產(chǎn)業(yè)中的地位突顯出來,變得越來越重要,學(xué)者們提出了用工業(yè)界工程化的思想,即軟件工程的思想去解決軟件發(fā)展中的一些問題。同樣,針對軟件產(chǎn)業(yè)中的管理問題,采用了工程中項目管理的思想,由此促使了軟件項目管理學(xué)科的出現(xiàn)。
軟件項目管理是軟件工程和項目管理的交叉學(xué)科,是項目管理的原理和方法在軟件工程領(lǐng)域的應(yīng)用。與一般的工程項目相比,軟件項目有其特殊性,主要體現(xiàn)在軟件產(chǎn)品的抽象性上。因此,軟件項目管理的難度要比一般的工程項目管理的難度大。
自第1版付印以來,軟件項目管理思想和方法有了一些新的發(fā)展; 作者對軟件項目管理的認識也更加深入; 教學(xué)過程中也得到一些有價值的反饋信息。為了全面反映軟件項目管理的發(fā)展,作者對第1版的結(jié)構(gòu)和內(nèi)容作了較大篇幅的調(diào)整與更新,完成了本書第2版。
第2版分為基礎(chǔ)篇、管理篇和實踐篇。將第1版的第1章、第8章整合為基礎(chǔ)篇,介紹了軟件產(chǎn)業(yè)和軟件項目管理導(dǎo)論,使讀者從整體上了解軟件項目管理的產(chǎn)生背景和概貌。管理篇以項目管理知識體系(PMBOK)為核心,圍繞著軟件項目的開發(fā)全過程,從軟件項目需求管理、軟件項目成本管理、軟件項目進度管理、軟件項目風(fēng)險管理、軟件項目配置管理、軟件項目資源管理、軟件項目質(zhì)量管理等方面對軟件項目中的管理問題進行探討。其中,第1版的第3章拆分為軟件項目成本管理和軟件項目進度管理兩章; 第1版第6章的CMM進化為第2版第8章的CMMI。實踐篇將需求管理、成本管理、進度管理、風(fēng)險管理、配置管理、資源管理和質(zhì)量管理等相對獨立的領(lǐng)域融合在軟件過程框架中,介紹了在軟件項目實踐中如何集中使用相關(guān)理論和技術(shù)。其中包括Rational統(tǒng)一過程、敏捷軟件開發(fā)和6σ軟件開發(fā)。對第1版的大部分內(nèi)容,結(jié)合技術(shù)的最新發(fā)展也進行了全面的更新。
豐富的案例故事和案例分析也是第2版的一個特色。管理篇的每章都通過一個案例故事引出本章主要內(nèi)容,并將案例故事的解析穿插在理論介紹中,理論結(jié)合實踐。全書的每一章都包含多個完整的案例分析,有正面的成功案例,也有反面的失敗案例。通過案例分析,強化每一章的理論知識,吸取經(jīng)驗,反思教訓(xùn)。
在本書的編寫過程中,得到了清華大學(xué)信息學(xué)院、軟件學(xué)院、計算機科學(xué)與技術(shù)系、西安交通大學(xué)計算機科學(xué)與技術(shù)系、電子商務(wù)研究所、計算機軟件研究所許多教師的支持和指教; 同時也得到了清華大學(xué)出版社的大力支持。我們在此表示衷心的感謝。本書的編寫參考了大量的文獻和互聯(lián)網(wǎng)資源,我們對所有這些文獻著作者和網(wǎng)站版權(quán)所有者表示真誠的謝意。
本書由覃征教授確定研究內(nèi)容和整體結(jié)構(gòu)并審核,第一、二篇由唐晶編寫,第三篇由徐文華編寫并統(tǒng)稿,韓毅博士也參加了本書的編寫與審核工作。
由于水平有限,加之軟件產(chǎn)業(yè)的發(fā)展非常迅速,書中難免有疏漏和不妥之處,敬請讀者批評指正。
編者
2009年6月于清華園
目錄
第一篇基礎(chǔ)篇
第1章軟件項目管理導(dǎo)論
1.1軟件市場
1.1.1軟件商品特征
1.1.2軟件的成本
1.1.3軟件的定價
1.1.4軟件市場的壟斷現(xiàn)象
1.1.5軟件市場的發(fā)展現(xiàn)狀
1.2軟件產(chǎn)業(yè)
1.2.1軟件產(chǎn)業(yè)的特點
1.2.2軟件產(chǎn)業(yè)在國民經(jīng)濟中的地位
1.2.3國外軟件產(chǎn)業(yè)發(fā)展策略
1.2.4資料: 印度新經(jīng)濟產(chǎn)業(yè)
1.2.5對我國軟件產(chǎn)業(yè)發(fā)展策略的認識
1.3軟件工程
1.3.1軟件工程定義
1.3.2軟件工程框架
1.3.3軟件工程模型
1.4項目管理框架
1.4.1項目與項目管理
1.4.2項目管理知識體系
1.4.3項目管理學(xué)科的發(fā)展
1.5軟件項目管理
1.5.1軟件項目產(chǎn)品的特點
1.5.2軟件項目失控的原因
1.5.3軟件項目管理的內(nèi)容
1.6小結(jié)
第二篇管理篇
第2章軟件項目需求管理
案例故事
2.1需求工程
2.1.1軟件需求概念
2.1.2軟件需求層次
2.1.3軟件需求質(zhì)量評價
2.1.4需求工程發(fā)展歷程
2.1.5需求工程研究內(nèi)容
2.2需求開發(fā)
2.2.1需求開發(fā)活動
2.2.2需求獲取
2.2.3需求分析
2.2.4編寫需求文檔
2.2.5需求驗證
2.2.6案例: 某公司“船代”項目的需求開發(fā)
2.3需求管理
2.3.1需求管理的必要性
2.3.2需求管理的困難性
2.3.3需求管理的目標和原則
2.3.4需求管理活動
2.3.5需求變更管理
2.3.6需求狀態(tài)
2.3.7需求文檔版本控制
2.3.8需求跟蹤
2.3.9案例: 需求變更的代價
2.4案例故事解析
2.4.1需求開發(fā)的注意事項
2.4.2需求管理的注意事項
2.5小結(jié)
第3章軟件項目成本管理
案例故事
3.1概述
3.1.1成本
3.1.2成本管理
3.1.3成本估算的時機
3.2軟件項目規(guī)模估算
3.2.1WBS
3.2.2LOC估計
3.2.3FP估計
3.2.4PERT估計
3.3軟件項目成本估算
3.3.1軟件生產(chǎn)率估算
3.3.2軟件項目成本估算方法
3.3.3軟件項目成本估算模型
3.3.4軟件項目成本估算步驟
3.3.5軟件項目成本預(yù)算制訂
3.3.6案例: 過分樂觀的估算
3.4軟件項目成本監(jiān)控
3.4.1成本管理常見問題
3.4.2軟件項目成本監(jiān)控要素
3.4.3贏得值分析法
3.4.4案例: 某項目第4月度成本控制狀態(tài)報告
3.5案例: 精確到螺絲釘?shù)某杀究刂?br />
3.6案例故事解析
3.7小結(jié)
第4章軟件項目進度管理
案例故事
4.1概述
4.1.1時間管理原則
4.1.2時間管理技巧
4.1.3軟件項目進度管理內(nèi)容
4.1.4項目活動定義
4.2項目活動排序和歷時估計
4.2.1確定活動順序
4.2.2網(wǎng)絡(luò)圖
4.2.3甘特圖
4.2.4項目歷時估計
4.2.5案例: 應(yīng)用PERT估算項目歷時
4.3制訂項目計劃
4.4項目進度監(jiān)控
4.5案例: 某軟件研發(fā)的項目計劃和進度控制
4.6案例故事解析
4.7小結(jié)
第5章軟件項目風(fēng)險管理
案例故事
5.1概述
5.1.1風(fēng)險
5.1.2軟件風(fēng)險
5.1.3軟件項目風(fēng)險管理
5.1.4軟件項目風(fēng)險管理的意義
5.2風(fēng)險識別
5.2.1風(fēng)險識別依據(jù)
5.2.2常見軟件風(fēng)險
5.2.3風(fēng)險識別過程
5.2.4風(fēng)險識別方法與技術(shù)
5.2.5案例: 英達公司用TOP10法識別項目風(fēng)險
5.3風(fēng)險分析
5.3.1風(fēng)險分析過程
5.3.2風(fēng)險分析技巧與工具
5.3.3風(fēng)險分析的成果
5.4風(fēng)險跟蹤與應(yīng)對
5.4.1風(fēng)險跟蹤的目標和依據(jù)
5.4.2風(fēng)險跟蹤的成果
5.4.3風(fēng)險跟蹤的過程
5.4.4風(fēng)險應(yīng)對策略
5.4.5風(fēng)險應(yīng)對過程
5.4.6案例: 金融行業(yè)使用容災(zāi)系統(tǒng)有效應(yīng)對突發(fā)事件
5.5風(fēng)險管理驗證
5.6案例: 風(fēng)險管理保障奧運場館建設(shè)
5.7案例故事解析
5.8小結(jié)
第6章軟件項目配置管理
案例故事
6.1概述
6.1.1基本概念
6.1.2軟件配置管理定義
6.1.3軟件配置管理過程
6.1.4軟件配置管理過程活動
6.2配置管理策劃
6.2.1軟件配置管理組織
6.2.2軟件配置管理職責(zé)
6.2.3軟件配置管理文件體系
6.2.4配置管理計劃的大綱
6.3配置管理功能
6.3.1配置標識
6.3.2版本控制
6.3.3變更管理
6.3.4配置狀態(tài)報告
6.3.5案例: Kevin團隊使用配置管理加快開發(fā)速度
6.4配置審核
6.4.1配置審核概念
6.4.2配置審核內(nèi)容
6.4.3配置審核的種類
6.4.4軟件交付
6.4.5軟件配置管理的功能表
6.5基于構(gòu)件的配置管理
6.5.1軟件復(fù)用
6.5.2軟件構(gòu)件技術(shù)
6.5.3基于構(gòu)件的版本管理
6.5.4基于構(gòu)件的配置管理
6.5.5案例: 河電集團某研究所的系統(tǒng)集成
6.6案例故事解析
6.7小結(jié)
第7章軟件項目資源管理
案例故事
7.1人力資源管理
7.1.1人力資源管理概念
7.1.2人力資源分析與策劃
7.1.3人力資源的獲取
7.1.4團隊組織和分工
7.1.5團隊建設(shè)
7.1.6人力資源評估
7.1.7案例: 諾基亞如何建設(shè)優(yōu)秀團隊
7.2軟件資源管理
7.2.1軟件資源基本概念
7.2.2軟件資源的復(fù)用方式
7.2.3軟件復(fù)用的粒度
7.2.4可復(fù)用軟件資源的管理
7.2.5CASE工具及其管理
7.3硬件資源管理
7.3.1硬件資源管理概念
7.3.2硬件設(shè)備的經(jīng)濟管理
7.3.3硬件設(shè)備的技術(shù)管理
7.4案例故事解析
7.5小結(jié)
第8章軟件項目質(zhì)量管理
案例故事
8.1質(zhì)量管理的概念
8.1.1軟件質(zhì)量
8.1.2軟件產(chǎn)品質(zhì)量與過程質(zhì)量
8.1.3軟件質(zhì)量保證
8.2軟件評審
8.3軟件測試
8.3.1軟件測試的概念
8.3.2軟件測試類型
8.3.3測試的原則
8.3.4測試計劃
8.3.5測試用例的開發(fā)
8.3.6測試的執(zhí)行與報告
8.3.7案例: 微軟的軟件測試技術(shù)
8.4軟件缺陷跟蹤
8.5軟件缺陷預(yù)防
8.5.1問題的提出
8.5.2缺陷預(yù)防的原則
8.5.3缺陷預(yù)防的步驟
8.6ISO 9000:2000質(zhì)量認證體系
8.6.1ISO 9000的概念
8.6.2ISO 9000標準的8項質(zhì)量管理原則
8.6.3獲得ISO 9000認證的條件和程序
8.7能力成熟度集成模型CMMI
8.7.1CMM的提出
8.7.2CMM的基本內(nèi)容
8.7.3從CMM到CMMI
8.7.4CMMI的表示
8.7.5CMMI過程的可視性
8.7.6CMMI的實施
8.7.7CMMI的評估
8.8案例故事解析
8.9小結(jié)
第三篇實踐篇
第9章Rational統(tǒng)一過程
9.1什么是Rational統(tǒng)一過程
9.2核心概念
9.2.1架構(gòu)
9.2.2工作流程
9.2.3角色
9.2.4活動
9.2.5步驟
9.2.6工件
9.36個最佳實踐
9.3.1迭代式的軟件開發(fā)
9.3.2需求管理
9.3.3使用基于構(gòu)件的架構(gòu),以架構(gòu)為中心的過程
9.3.4可視化軟件建模
9.3.5驗證軟件質(zhì)量
9.3.6控制軟件變更
9.3.7案例: 利用視圖和用例來捕獲和描述需求
9.4RUP的二維結(jié)構(gòu)
9.4.1動態(tài)結(jié)構(gòu): 階段和迭代時間軸
9.4.2靜態(tài)結(jié)構(gòu): 工作流程軸
9.5核心工作流程
9.5.1業(yè)務(wù)建模工作流程
9.5.2需求工作流程
9.5.3分析和設(shè)計工作流程
9.5.4實現(xiàn)工作流程
9.5.5測試工作流程
9.5.6部署工作流程
9.5.7配置和變更管理工作流程
9.5.8項目管理工作流程
9.5.9環(huán)境工作流程
9.6小結(jié)
第10章敏捷軟件開發(fā)
10.1敏捷軟件開發(fā)的誕生
10.2敏捷軟件開發(fā)宣言
10.3敏捷宣言遵循的原則
10.4對比其他的方法
10.5敏捷軟件開發(fā)的適用性
10.6極限編程概述
10.6.1價值觀
10.6.2原則
10.6.3行為
10.6.4實踐
10.6.5極限編程小結(jié)
10.7Scrum
10.7.1一個簡單的框架
10.7.2Scrum過程
10.7.33個角色
10.7.43項活動
10.7.53種工具
10.7.6自適應(yīng)的項目管理
10.7.7Scrum較傳統(tǒng)開發(fā)模型的優(yōu)點
10.7.8案例: Scrum在開發(fā)中的應(yīng)用
10.8小結(jié)
第11章將6σ管理引入軟件開發(fā)
11.16σ的故事
11.26σ理論基礎(chǔ)
11.2.1平均值屏蔽了問題,波動成了焦點
11.2.2“波動”問題的數(shù)學(xué)描述
11.2.36σ的數(shù)學(xué)含義
11.2.4其他術(shù)語
11.36σ管理
11.4使用6σ改善軟件開發(fā)過程
11.4.1項目啟動和問題定義階段
11.4.2系統(tǒng)分析
11.4.3系統(tǒng)設(shè)計
11.4.4構(gòu)造
11.4.5測試和質(zhì)量保證
11.4.6交付和維護
11.5案例: 如何實施DMAIC過程
11.5.1定義階段
11.5.2度量階段
11.5.3分析階段
11.5.4改進階段
11.5.5控制階段
11.6小結(jié)
附錄A可行性分析報告
附錄B需求規(guī)格說明書
附錄C項目開發(fā)計劃
附錄D概要設(shè)計說明書
附錄E詳細設(shè)計說明書
附錄F用戶操作手冊
附錄G測試計劃
附錄H測試分析報告
附錄I程序維護手冊
附錄J項目總結(jié)報告
附錄KISO 9001:2000標準的內(nèi)容
參考文獻