本書以IEEE計(jì)算機(jī)協(xié)會2014年2月發(fā)布的SWEBOK V3為藍(lán)本,以軟件工程過程、模型和方法為主線,圍繞其中8個主要的軟件工程實(shí)踐活動,詳細(xì)介紹了在軟件工程領(lǐng)域被廣泛接受的知識域。全書分10章,主要內(nèi)容包括:軟件工程過程、軟件工程模型與方法、軟件需求、軟件設(shè)計(jì)、軟件構(gòu)造、軟件測試、軟件維護(hù)、軟件配置管理、軟件項(xiàng)目管理、軟件質(zhì)量等。本書是高等學(xué)校軟件工程及計(jì)算機(jī)相關(guān)專業(yè)的研究生、高年級本科生教材,也適合軟件工程專業(yè)人員及希望未來從事軟件工程工作的其他專業(yè)人員閱讀。
張劍波,副教授,地圖制圖學(xué)與地理信息工程專業(yè)博士,從1997年至今一直在中國地質(zhì)大學(xué)(武漢)信息工程學(xué)院任教。教學(xué)方面,主講課程包括《軟件工程概論》、《數(shù)據(jù)結(jié)構(gòu)與算法》等專業(yè)基礎(chǔ)課程,主持和參與多項(xiàng)省級和校級教學(xué)研究項(xiàng)目。主要著作出版情況:軟件測試:原理、方法與管理,科學(xué)出版社,2015;軟件體系結(jié)構(gòu)與設(shè)計(jì)實(shí)用教程,科學(xué)出版社,2016。
目 錄
第1章 軟件工程過程 1
1.1 軟件過程定義 1
1.1.1 軟件過程管理 2
1.1.2 軟件過程框架 2
1.2 軟件生命周期 5
1.2.1 軟件過程分類 6
1.2.2 軟件生命周期模型 8
1.2.3 軟件過程適應(yīng) 18
1.2.4 實(shí)踐考慮 18
1.3 軟件過程評估與改進(jìn) 18
1.3.1 軟件過程評估與改進(jìn)模型 19
1.3.2 軟件過程評估方法 19
1.3.3 連續(xù)式和階段式軟件過程評估 19
1.4 軟件過程工具 32
習(xí)題1 33
第2章 軟件工程模型與方法 34
2.1 建模 34
2.1.1 建模的原則 34
2.1.2 模型的性質(zhì)與表達(dá) 35
2.1.3 語法、語義和語用 35
2.1.4 前置條件、后置條件和不變量 36
2.2 模型的類型 36
2.3 模型分析 37
2.4 軟件工程方法 38
2.4.1 啟發(fā)式方法 38
2.4.2 形式化方法 39
2.4.3 原型方法 39
2.4.4 敏捷方法 40
習(xí)題2 40
第3章 軟件需求 41
3.1 基本概念 41
3.1.1 軟件需求定義 41
3.1.2 軟件需求層次 42
3.1.3 軟件需求分類 43
3.1.4 需求工程 45
3.1.5 啟動步驟 46
3.2 需求獲取 48
3.2.1 軟件需求來源 49
3.2.2 需求獲取技術(shù) 50
3.3 軟件需求分析 54
3.3.1 分析模型概述 55
3.3.2 建立分析模型 57
3.3.3 分析技術(shù) 59
3.3.4 架構(gòu)設(shè)計(jì) 60
3.3.5 需求協(xié)商 61
3.4 軟件需求規(guī)格說明 61
3.4.1 意義 62
3.4.2 分類 62
3.4.3 描述方法 63
3.5 軟件需求確認(rèn) 65
3.5.1 軟件需求評審 65
3.5.2 原型法 67
3.5.3 軟件需求測試 68
3.5.4 驗(yàn)收測試 68
3.6 軟件需求管理 69
3.6.1 需求基線 70
3.6.2 需求跟蹤 72
3.6.3 需求變更 74
3.7 軟件需求工具 76
習(xí)題3 77
第4章 軟件設(shè)計(jì) 78
4.1 軟件設(shè)計(jì)基礎(chǔ) 78
4.1.1 軟件設(shè)計(jì)過程 81
4.1.2 軟件設(shè)計(jì)原則 82
4.2 軟件架構(gòu)設(shè)計(jì) 86
4.2.1 軟件架構(gòu)風(fēng)格 87
4.2.2 軟件架構(gòu)設(shè)計(jì)方法 88
4.2.3 軟件架構(gòu)設(shè)計(jì)步驟 92
4.3 用戶界面設(shè)計(jì) 95
4.3.1 通用用戶界面設(shè)計(jì)原則 96
4.3.2 用戶交互模式設(shè)計(jì) 98
4.3.3 用戶界面設(shè)計(jì)流程 99
4.3.4 用戶界面設(shè)計(jì)方法 100
4.4 軟件設(shè)計(jì)質(zhì)量 102
4.4.1 軟件設(shè)計(jì)質(zhì)量的意義 102
4.4.2 軟件設(shè)計(jì)質(zhì)量的評估 104
4.5 軟件設(shè)計(jì)符號 105
4.5.1 結(jié)構(gòu)描述 106
4.5.2 行為描述 115
4.6 軟件設(shè)計(jì)策略和方法 124
4.7 軟件設(shè)計(jì)工具 125
習(xí)題4 126
第5章 軟件構(gòu)造 127
5.1 軟件構(gòu)造基礎(chǔ) 127
5.1.1 復(fù)雜性最小化 127
5.1.2 多維視角的軟件構(gòu)造 127
5.2 軟件構(gòu)造過程 128
5.2.1 生命周期模型 128
5.2.2 構(gòu)造語言 129
5.2.3 開發(fā)者測試 131
5.2.4 重構(gòu) 132
5.3 軟件構(gòu)造管理 133
5.3.1 變更管理 133
5.3.2 版本控制 133
5.4 軟件構(gòu)造技術(shù) 134
5.5 軟件構(gòu)造工具 136
習(xí)題5 137
第6章 軟件測試 138
6.1 軟件測試基礎(chǔ) 139
6.1.1 軟件測試目的 139
6.1.2 軟件測試定義 139
6.2 軟件測試級別 140
6.2.1 測試階段級別 140
6.2.2 測試對象級別 144
6.3 軟件測試技術(shù) 147
6.3.1 靜態(tài)測試 147
6.3.2 動態(tài)測試 150
6.3.3 白盒測試 150
6.3.4 黑盒測試 153
6.3.5 自動化測試 158
6.4 軟件測試過程 159
6.4.1 測試計(jì)劃階段 160
6.4.2 測試設(shè)計(jì)階段 163
6.4.3 測試執(zhí)行階段 165
6.4.4 測試監(jiān)控階段 166
6.4.5 測試結(jié)束階段 167
6.5 軟件測試工具 168
6.5.1 靜態(tài)分析工具 168
6.5.2 黑盒測試工具 168
6.5.3 單元測試工具 169
6.5.4 負(fù)載測試工具 169
習(xí)題6 170
第7章 軟件維護(hù) 171
7.1 軟件維護(hù)基本概念 171
7.1.1 軟件維護(hù)定義 172
7.1.2 軟件維護(hù)特點(diǎn) 172
7.1.3 軟件維護(hù)目的 173
7.1.4 軟件維護(hù)組織 173
7.2 軟件維護(hù)關(guān)鍵問題 174
7.2.1 軟件維護(hù)技術(shù)問題 174
7.2.2 軟件維護(hù)管理問題 175
7.2.3 軟件維護(hù)成本預(yù)算 176
7.2.4 軟件的可維護(hù)性 177
7.3 軟件維護(hù)過程 179
7.3.1 軟件維護(hù)過程概述 179
7.3.2 軟件維護(hù)活動 180
7.4 軟件維護(hù)技術(shù) 181
7.4.1 程序理解 181
7.4.2 再工程 182
7.4.3 逆向工程 184
7.4.4 遷移 185
7.4.5 退役 186
7.5 軟件維護(hù)工具 186
習(xí)題7 187
第8章 軟件配置管理 188
8.1 軟件配置管理的過程管理 189
8.1.1 軟件配置管理的組織背景 189
8.1.2 軟件配置管理涉及的人員 189
8.1.3 軟件配置管理計(jì)劃 190
8.1.4 軟件配置管理的監(jiān)管 191
8.2 軟件配置標(biāo)識 192
8.2.1 被管控項(xiàng)目的識別 192
8.2.2 軟件庫 199
8.3 軟件配置控制 201
8.3.1 軟件變更請求 201
8.3.2 跟蹤并控制變更 202
8.3.3 軟件配置偏差和棄用 203
8.4 軟件配置狀態(tài)統(tǒng)計(jì) 203
8.5 軟件配置審計(jì) 204
8.5.1 配置庫審計(jì) 205
8.5.2 基線審計(jì) 205
8.6 軟件構(gòu)建和發(fā)布管理 206
8.6.1 軟件構(gòu)建 206
8.6.2 軟件發(fā)布 207
8.7 軟件配置管理工具 208
習(xí)題8 208
第9章 軟件項(xiàng)目管理 209
9.1 軟件項(xiàng)目管理概述 210
9.1.1 項(xiàng)目與軟件項(xiàng)目 210
9.1.2 項(xiàng)目管理 210
9.1.3 軟件生命周期與項(xiàng)目管理 211
9.2 軟件項(xiàng)目啟動 212
9.2.1 軟件項(xiàng)目啟動任務(wù) 212
9.2.2 軟件項(xiàng)目可行性分析 214
9.2.3 制訂項(xiàng)目任務(wù)書 215
9.3 軟件項(xiàng)目計(jì)劃 216
9.3.1 軟件范圍計(jì)劃 217
9.3.2 項(xiàng)目進(jìn)度計(jì)劃 217
9.3.3 項(xiàng)目成本計(jì)劃 222
9.3.4 項(xiàng)目風(fēng)險計(jì)劃 228
9.3.5 項(xiàng)目合同計(jì)劃 231
9.3.6 人員與溝通計(jì)劃 232
9.4 軟件項(xiàng)目執(zhí)行控制 235
9.4.1 軟件項(xiàng)目控制方法 235
9.4.2 軟件項(xiàng)目控制過程 236
9.5 軟件項(xiàng)目收尾 237
9.5.1 軟件項(xiàng)目收尾概述 237
9.5.2 軟件項(xiàng)目收尾過程 237
9.5.3 軟件項(xiàng)目驗(yàn)收 238
9.6 軟件項(xiàng)目管理工具 238
習(xí)題9 239
第10章 軟件質(zhì)量 240
10.1 軟件質(zhì)量概述 241
10.1.1 軟件質(zhì)量概念 241
10.1.2 軟件質(zhì)量成本 242
10.1.3 軟件質(zhì)量模型 242
10.2 軟件質(zhì)量管理過程 245
10.2.1 軟件質(zhì)量計(jì)劃 245
10.2.2 軟件質(zhì)量保證 246
10.2.3 軟件質(zhì)量控制 248
10.2.4 軟件過程改進(jìn) 249
10.3 軟件質(zhì)量度量 249
10.3.1 軟件質(zhì)量度量概述 250
10.3.2 軟件項(xiàng)目質(zhì)量度量 251
10.3.3 軟件產(chǎn)品質(zhì)量度量 252
10.3.4 軟件過程質(zhì)量度量 253
10.3.5 軟件缺陷度量 255
10.4 軟件質(zhì)量工具 256
習(xí)題10 256
參考文獻(xiàn) 257