本書系統地講解了軟件項目管理理論。全書共有12章,全面論述了軟件項目管理的基本概念、項目立項和策劃、范圍管理、進度管理、成本管理、質量管理、軟件配置管理、團隊管理、風險管理、項目收尾與驗收、軟件項目管理工具、課程實踐。
本書力求理論聯系實際,內容深入淺出,實用性強。本書既可以作為高等院校“軟件項目管理”課程的教材或教學參考書,也可作為軟件工作者或相關技術人員自學的參考資料。
1.滿足當前高校軟件工程教學改革要求。
2.案例豐富,可操作性強,充分體現理論與實踐相結合。
3.介紹業界開發一線先進理論、技術和方法,實用性強。
劉海博士,西安郵電大學計算機學院軟件工程系教師,講授課程軟件項目管理、軟件工程,擁有6年的實際工作經驗,從事多個軟件項目開發。
第1章 緒論 1
1.1 項目與軟件項目 1
1.1.1 什么是項目 1
1.1.2 項目群和子項目 2
1.1.3 軟件項目及其特點 2
1.1.4 軟件項目的兩種類型 4
1.2 軟件項目管理概述 4
1.2.1 什么是項目管理 4
1.2.2 軟件項目管理及其重要性 5
1.2.3 軟件項目管理的主要內容 5
1.3 軟件項目的生命周期和管理過程 6
1.4 軟件項目管理的基本原則 8
1.4.1 具體問題具體分析 8
1.4.2 系統方法 8
本章小結 9
習題 9
第2章 軟件項目立項和規劃 11
2.1 發現項目機會 11
2.2 項目可行性分析 12
2.2.1 現有系統的分析 12
2.2.2 技術可行性分析 12
2.2.3 項目投資及效益分析 13
2.2.4 其他方面的可行性分析 15
2.2.5 開源軟件的分析和使用 15
2.3 合同項目立項過程 16
2.3.1 項目招標 17
2.3.2 項目投標 17
2.3.3 項目評標 18
2.3.4 合同簽署 18
2.4 通用產品項目立項過程 19
2.4.1 產品構思和立項調查 20
2.4.2 立項申請和審批 20
2.5 項目授權和啟動 21
2.6 項目計劃 21
2.7 選擇合適的項目方法 22
2.7.1 分析項目特征 22
2.7.2 選擇過程模型 23
2.7.3 制訂技術計劃 24
2.8 軟件外包 24
2.9 案例分析 25
2.9.1 甲方項目招標需求說明書 25
2.9.2 乙方項目建議書 27
本章小結 30
習題 30
第3章 軟件項目范圍管理 32
3.1 需求獲取 32
3.2 范圍定義 33
3.2.1 軟件產品范圍和項目范圍 34
3.2.2 項目范圍說明書 34
3.3 創建工作分解結構 35
3.3.1 什么是工作分解結構 35
3.3.2 創建WBS的方法 36
3.4 范圍確認 37
3.5 范圍控制 38
3.6 案例分析 38
3.6.1 軟件需求規格說明書 38
3.6.2 WBS 41
本章小結 42
習題 43
第4章 軟件項目進度管理 44
4.1 概述 44
4.1.1 什么是項目進度管理 44
4.1.2 項目進度管理的內容 44
4.2 活動定義 45
4.3 活動排序 46
4.3.1 確定活動之間的邏輯關系 46
4.3.2 繪制網絡圖 46
4.4 估算活動資源 47
4.5 估算活動持續時間 48
4.5.1 專家判斷 48
4.5.2 類比估算 48
4.5.3 三點估算 48
4.5.4 參數估算 49
4.6 制定進度計劃 49
4.6.1 甘特圖法 49
4.6.2 關鍵路徑法 50
4.6.3 關鍵鏈法 53
4.6.4 資源優化 54
4.6.5 進度壓縮 55
4.7 進度控制 56
4.7.1 常用的進度控制技術 56
4.7.2 項目進度計劃變更 56
4.8 案例分析 57
本章小結 59
習題 60
第5章 軟件項目成本管理 62
5.1 概述 62
5.1.1 軟件項目規模、工作量與成本 62
5.1.2 軟件項目成本的構成 62
5.1.3 軟件項目成本管理及其目標 64
5.2 軟件規模度量 64
5.2.1 代碼行(LOC) 64
5.2.2 功能點(FP) 65
5.3 成本估算 67
5.3.1 成本估算的依據 67
5.3.2 專家判斷 68
5.3.3 類比估算 68
5.3.4 自底向上估算 68
5.3.5 參數估算 68
5.3.6 “分解-累計”估算方法 70
5.4 成本預算 71
5.5 成本控制 72
5.5.1 成本控制的基本方法 72
5.5.2 掙值分析 72
5.6 案例分析 74
本章小結 75
習題 75
第6章 軟件項目質量管理 77
6.1 概述 77
6.1.1 什么是軟件質量 77
6.1.2 軟件項目質量管理的目標 78
6.2 全面軟件質量管理 78
6.2.1 質量管理計劃 79
6.2.2 技術評審 79
6.2.3 軟件測試 79
6.2.4 過程檢查 80
6.2.5 缺陷跟蹤 80
6.3 軟件過程改進 81
6.3.1 什么是軟件過程改進 81
6.3.2 能力成熟度模型CMMI 81
6.3.3 PSP和TSP 83
6.4 常用的軟件質量度量 85
6.5 缺陷移除和預防 86
6.5.1 缺陷移除 86
6.5.2 缺陷預防 87
6.6 案例分析 88
本章小結 90
習題 90
第7章 軟件配置管理 92
7.1 軟件配置管理概述 92
7.1.1 什么是軟件配置管理 92
7.1.2 軟件配置管理的作用 93
7.1.3 軟件配置管理的相關概念 93
7.2 建立軟件配置管理環境 94
7.3 版本控制 95
7.3.1 配置庫的檢入檢出機制 95
7.3.2 軟件版本編號方法 96
7.3.3 配置項的演化圖 97
7.3.4 版本控制的具體操作 97
7.3.5 分支管理 98
7.3.6 項目外資源的版本控制 100
7.4 系統集成 100
7.4.1 系統集成的概念和步驟 100
7.4.2 持續集成 101
7.4.3 集成中的測試和糾錯 101
7.4.4 使用集成成果 102
7.4.5 多層集成 103
7.5 變更管理 103
7.5.1 變更管理的作用 103
7.5.2 嚴格的變更控制過程 104
7.5.3 任務管理 105
7.5.4 發行管理 106
7.6 配置狀態報告和配置審計 107
7.6.1 配置狀態報告和統計 107
7.6.2 配置審計 107
7.7 軟件配置管理過程 108
7.7.1 組織級管理 108
7.7.2 配置管理計劃 109
7.7.3 軟件配置管理日常工作 109
7.7.4 軟件項目配置管理收尾 110
7.8 案例分析 110
本章小結 113
習題 114
第8章 軟件項目團隊管理 115
8.1 概述 115
8.1.1 什么是軟件項目團隊 115
8.1.2 什么是軟件項目團隊管理 115
8.1.3 團隊協作的重要性 116
8.2 項目組織的規劃 116
8.2.1 項目團隊角色 116
8.2.2 項目的組織結構 118
8.2.3 軟件開發小組結構 121
8.2.4 項目人員職責分配 122
8.2.5 人員配置管理計劃 123
8.3 團隊人員獲取 123
8.3.1 獲取團隊人員的方法 123
8.3.2 虛擬團隊 124
8.4 團隊建設和日常管理 124
8.4.1 培訓 125
8.4.2 人員激勵 125
8.4.3 績效評估 125
8.4.4 沖突管理 125
8.5 溝通管理 126
8.5.1 溝通需求分析 126
8.5.2 溝通方式 126
8.5.3 項目溝通管理計劃 127
8.6 項目干系人管理 127
8.7 軟件專業人員的非技術素養 128
8.7.1 團隊意識 128
8.7.2 主人翁精神 129
8.7.3 寫和說的能力 130
8.7.4 管理能力 130
8.8 案例分析 130
本章小結 131
習題 131
第9章 軟件項目風險管理 133
9.1 概述 133
9.1.1 風險及其屬性 133
9.1.2 風險的分類 133
9.1.3 軟件項目風險管理 134
9.2 軟件項目風險規劃 135
9.2.1 風險規劃的依據 135
9.2.2 軟件項目風險管理計劃 135
9.3 軟件項目風險識別 136
9.3.1 核對表法 137
9.3.2 頭腦風暴法 137
9.3.3 德爾菲法 138
9.3.4 SWOT分析法 138
9.3.5 其他方法 139
9.4 軟件項目風險評估 139
9.4.1 風險概率和影響程度評估 139
9.4.2 決策樹分析法 140
9.4.3 模擬分析法 142
9.5 軟件項目風險應對 142
9.5.1 回避風險 143
9.5.2 減小風險 143
9.5.3 轉移風險 143
9.5.4 接受風險 144
9.5.5 風險預留 144
9.6 軟件項目風險監控 145
9.6.1 風險預警 145
9.6.2 風險監控方法 146
9.7 案例分析 146
本章小結 147
習題 147
第10章 軟件項目收尾與驗收 149
10.1 概述 149
10.1.1 項目收尾過程 149
10.1.2 項目成功的要素 150
10.2 項目移交與清算 151
10.3 項目后評價 152
10.3.1 項目后評價的基本內容 152
10.3.2 項目后評價的實施 153
10.4 合同收尾 153
10.5 案例分析 154
本章小結 156
習題 156
第11章 軟件項目管理工具 157
11.1 通用項目管理工具 157
11.1.1 通用項目管理工具的主要功能 157
11.1.2 Microsoft Project簡介 158
11.1.3 Project中的視圖 158
11.1.4 Project中的進度計劃和跟蹤 159
11.1.5 Project中的資源分配和成本管理 160
11.1.6 Project中的報表 161
11.2 配置管理工具 162
11.2.1 配置管理工具概述 162
11.2.2 Subversion的安裝和配置 164
11.2.3 Subversion中的常用操作 166
11.3 缺陷跟蹤工具 167
11.3.1 缺陷跟蹤工具概述 167
11.3.2 Bugzilla的缺陷處理流程 169
11.3.3 Bugzilla的基本操作 170
本章小結 172
習題 173
第12章 課程實踐 174
12.1 課程實踐的組織方式 174
12.2 項目計劃實驗 175
12.2.1 實驗目的和形式 175
12.2.2 軟硬件環境 175
12.2.3 實驗步驟 175
12.3 版本控制實驗 177
12.3.1 實驗目的和形式 178
12.3.2 軟硬件環境 178
12.3.3 實驗步驟 178
12.4 缺陷跟蹤實驗 180
12.4.1 實驗目的和形式 180
12.4.2 軟硬件環境 180
12.4.3 實驗步驟 180
本章小結 181
附錄A 常用軟件項目管理文檔模板 183
附錄A.1 項目招標書模板 183
附錄A.2 項目投標書模板 185
附錄A.3 立項建議書模板 187
附錄A.4 立項評審報告模板 189
附錄A.5 項目計劃模板 190
附錄A.6 軟件配置管理計劃模板 192
附錄A.7 項目周報模板 193
附錄A.8 質量管理計劃模板 194
附錄A.9 項目驗收報告模板 196
附錄A.10 項目總結報告模板 199
附錄B 劇院售票管理系統工作說明 201
參考文獻 203