軟體工程:實踐者的研究方法(原書第8版)

軟體工程:實踐者的研究方法(原書第8版)

《軟體工程:實踐者的研究方法(原書第8版)》是2019年12月機械工業出版社出版的圖書,作者是[美]羅傑S.普萊斯曼。

基本介紹

  • 書名:軟體工程:實踐者的研究方法(原書第8版)
  • 作者: [美]羅傑S.普萊斯曼
  • ISBN:9787111548973
  • 定價:99.0元
  • 出版社:機械工業出版社
  • 出版時間:2019年12月
  • 裝幀:平裝
  • 開本:16開
內容簡介,圖書目錄,

內容簡介

本書自第1版出版至今,30多年來在軟體工程界產生了巨大而深遠的影響。第8版不僅加入了移動套用軟體項目等與時俱進的內容,而且調整了篇章結構,更利於教師針對不同課程進行選擇。同時,第8版全面繼承了之前版本的風格與優勢,全面且系統地講解軟體過程、建模、質量管理、項目管理等基礎知識,涵蓋相關概念、原則、方法和工具,並且提供豐富的輔助閱讀資源和網路資源,指導有興趣的讀者進行更深入的學習和研究。本書適合作為軟體工程相關專業高年級本科生和研究生教材,也可供軟體專業技術人員和管理人員閱讀參考。

圖書目錄

Software Engineering: A Practitioner’s Approach, Eighth Edition
出版者的話
譯者序
前言
作者簡介
第1章 軟體的本質 1
1.1 軟體的本質 3
1.1.1 定義軟體 3
1.1.2 軟體套用領域 4
1.1.3 遺留軟體 5
1.2 軟體的變更本質 6
1.2.1 WebApp 6
1.2.2 移動 App 7
1.2.3 雲計算 7
1.2.4 產品線軟體 8
1.3 小結 8
習題與思考題 8
擴展閱讀與信息資源 9
第2章 軟體工程 10
2.1 定義軟體工程學科 11
2.2 軟體過程 11
2.2.1 過程框架 12
2.2.2 普適性活動 12
2.2.3 過程的適應性調整 13
2.3 軟體工程實踐 13
2.3.1 實踐的精髓 14
2.3.2 通用原則 14
2.4 軟體開發神話 16
2.5 這一切是如何開始的 18
2.6 小結 19
習題與思考題 19
擴展閱讀與信息資源 19
第一部分 軟體過程
第3章 軟體過程結構 22
3.1 通用過程模型 23
3.2 定義框架活動 24
3.3 明確任務集 24
3.4 過程模式 25
3.5 過程評估與改進 27
3.6 小結 28
習題與思考題 28
擴展閱讀與信息資源 28
第4章 過程模型 29
4.1 慣用過程模型 30
4.1.1 瀑布模型 30
4.1.2 增量過程模型 32
4.1.3 演化過程模型 32
4.1.4 並發模型 36
4.1.5 演化過程的最終評述 37
4.2 專用過程模型 38
4.2.1 基於構件的開發 38
4.2.2 形式化方法模型 39
4.2.3 面向方面的軟體開發 39
4.3 統一過程 40
4.3.1 統一過程的簡史 41
4.3.2 統一過程的階段 41
4.4 個人過程模型和團隊過程模型 42
4.4.1 個人軟體過程 42
4.4.2 團隊軟體過程 43
4.5 過程技術 44
4.6 產品和過程 45
4.7 小結 46
習題與思考題 46
擴展閱讀與信息資源 47
第5章 敏捷開發 48
5.1 什麼是敏捷 49
5.2 敏捷及變更成本 50
5.3 什麼是敏捷過程 50
5.3.1 敏捷原則 51
5.3.2 敏捷開發戰略 52
5.4 極限編程 52
5.4.1 極限編程過程 52
5.4.2 工業極限編程 54
5.5 其他敏捷過程模型 56
5.5.1 Scrum 56
5.5.2 動態系統開發方法 57
5.5.3 敏捷建模 58
5.5.4 敏捷統一過程 59
5.6 敏捷過程工具集 60
5.7 小結 61
習題與思考題 61
擴展閱讀與信息資源 62
第6章 軟體工程的人員方面 64
6.1 軟體工程師的特質 64
6.2 軟體工程心理學 65
6.3 軟體團隊 66
6.4 團隊結構 67
6.5 敏捷團隊 68
6.5.1 通用敏捷團隊 68
6.5.2 XP團隊 69
6.6 社交媒體的影響 70
6.7 軟體工程中雲的套用 71
6.8 協作工具 71
6.9 全球化團隊 72
6.10 小結 73
習題與思考題 73
擴展閱讀與信息資源 74
第二部分 建模
第7章 指導實踐的原則 76
7.1 軟體工程知識 77
7.2 核心原則 77
7.2.1 指導過程的原則 78
7.2.2 指導實踐的原則 78
7.3 指導每個框架活動的原則 80
7.3.1 溝通原則 80
7.3.2 策劃原則 81
7.3.3 建模原則 83
7.3.4 構建原則 87
7.3.5 部署原則 89
7.4 工作實踐 90
7.5 小結 91
習題與思考題 92
擴展閱讀與信息資源 92
第8章 理解需求 94
8.1 需求工程 95
8.2 建立根基 100
8.2.1 確認利益相關者 100
8.2.2 識別多重觀點 100
8.2.3 協同合作 101
8.2.4 首次提問 101
8.2.5 非功能需求 102
8.2.6 可追溯性 102
8.3 獲取需求 103
8.3.1 協作收集需求 103
8.3.2 質量功能部署 105
8.3.3 使用場景 106
8.3.4 獲取工作產品 106
8.3.5 敏捷需求獲取 107
8.3.6 面向服務的方法 107
8.4 開發用例 107
8.5 構建分析模型 111
8.5.1 分析模型的元素 112
8.5.2 分析模式 114
8.5.3 敏捷需求工程 114
8.5.4 自適應系統的需求 114
8.6 協商需求 115
8.7 需求監控 116
8.8 確認需求 117
8.9 避免常見錯誤 117
8.10 小結 118
習題與思考題 118
擴展閱讀與信息資源 119
第9章 需求建模:基於場景的
方法 121
9.1 需求分析 122
9.1.1 總體目標和原理 122
9.1.2 分析的經驗原則 123
9.1.3 域分析 123
9.1.4 需求建模的方法 125
9.2 基於場景建模 126
9.2.1 創建初始用例 126
9.2.2 細化初始用例 128
9.2.3 編寫正式用例 129
9.3 補充用例的UML模型 131
9.3.1 開發活動圖 131
9.3.2 泳道圖 132
9.4 小結 133
習題與思考題 133
擴展閱讀與信息資源 133
第10章 需求建模:基於類的方法 135
10.1 識別分析類 135
10.2 描述屬性 138
10.3 定義操作 138
10.4 類–職責–協作者建模 140
10.5 關聯和依賴 145
10.6 分析包 145
10.7 小結 146
習題與思考題 146
擴展閱讀與信息資源 146
第11章 需求建模:行為、模式和Web /移動App 148
11.1 生成行為模型 148
11.2 識別用例事件 149
11.3 狀態表達 149
11.4 需求建模的模式 152
11.4.1 發現分析模式 152
11.4.2 需求模式舉例:執行器–感測器 153
11.5 Web /移動App的需求建模 156
11.5.1 多少分析才夠用 156
11.5.2 需求建模的輸入 157
11.5.3 需求建模的輸出 157
11.5.4 內容模型 158
11.5.5 WebApp和移動App的互動模型 159
11.5.6 功能模型 159
11.5.7 WebApp的配置模型 160
11.5.8 導航建模 161
11.6 小結 161
習題與思考題 162
擴展閱讀與信息資源 162
第12章 設計概念 163
12.1 軟體工程中的設計 164
12.2 設計過程 166
12.2.1 軟體質量指導原則和屬性 166
12.2.2 軟體設計的演化 168
12.3 設計概念 169
12.3.1 抽象 169
12.3.2 體系結構 169
12.3.3 模式 170
12.3.4 關注點分離 170
12.3.5 模組化 171
12.3.6 信息隱蔽 171
12.3.7 功能獨立 172
12.3.8 求精 172
12.3.9 方面 173
12.3.10 重構 173
12.3.11 面向對象的設計概念 174
12.3.12 設計類 174
12.3.13 依賴倒置 176
12.3.14 測試設計 177
12.4 設計模型 177
12.4.1 數據設計元素 178
12.4.2 體系結構設計元素 178
12.4.3 接口設計元素 179
12.4.4 構件級設計元素 180
12.4.5 部署級設計元素 181
12.5 小結 181
習題與思考題 182
擴展閱讀與信息資源 183
第13章 體系結構設計 184
13.1 軟體體系結構 185
13.1.1 什麼是體系結構 185
13.1.2 體系結構為什麼重要 186
13.1.3 體系結構描述 186
13.1.4 體系結構決策 187
13.2 體系結構類型 188
13.3 體系結構風格 188
13.3.1 體系結構風格的簡單分類 189
13.3.2 體系結構模式 191
13.3.3 組織和求精 192
13.4 體系結構考慮要素 192
13.5 體系結構決策 194
13.6 體系結構設計 194
13.6.1 系統環境的表示 195
13.6.2 定義原型 195
13.6.3 將體系結構細化為構件 196
13.6.4 描述系統實例 197
13.6.5 WebApp的體系結構設計 198
13.6.6 移動App的體系結構設計 198
13.7 評估候選的體系結構設計 199
13.7.1 體系結構描述語言 200
13.7.2 體系結構評審 201
13.8 經驗學習 201
13.9 基於模式的體系結構評審 202
13.10 體系結構一致性檢查 203
13.11 敏捷性與體系結構 203
13.12 小結 204
習題與思考題 205
擴展閱讀與信息資源 205
第14章 構件級設計 207
14.1 什麼是構件 208
14.1.1 面向對象的觀點 208
14.1.2 傳統的觀點 209
14.1.3 過程相關的觀點 211
14.2 設計基於類的構件 212
14.2.1 基本設計原則 212
14.2.2 構件級設計指導方針 214
14.2.3 內聚性 215
14.2.4 耦合性 216
14.3 實施構件級設計 217
14.4 WebApp的構件級設計 222
14.4.1 構件級內容設計 222
14.4.2 構件級功能設計 222
14.5 移動App的構件級設計 222
14.6 設計傳統構件 223
14.7 基於構件的開發 223
14.7.1 領域工程 223
14.7.2 構件的合格性檢驗、適應性修改與組合 224
14.7.3 體系結構不匹配 225
14.7.4 復用的分析與設計 226
14.7.5 構件的分類與檢索 226
14.8 小結 227
習題與思考題 228
擴展閱讀與信息資源 228
第15章 用戶界面設計 230
15.1 黃金規則 231
15.1.1 把控制權交給用戶 231
15.1.2 減輕用戶的記憶負擔 232
15.1.3 保持界面一致 233
15.2 用戶界面的分析和設計 234
15.2.1 用戶界面分析和設計模型 234
15.2.2 過程 235
15.3 界面分析 236
15.3.1 用戶分析 236
15.3.2 任務分析和建模 237
15.3.3 顯示內容分析 240
15.3.4 工作環境分析 240
15.4 界面設計步驟 241
15.4.1 套用界面設計步驟 241
15.4.2 用戶界面設計模式 243
15.4.3 設計問題 243
15.5 WebApp和移動App的界面設計 245
15.5.1 界面設計原則與指導方針 245
15.5.2 WebApp和移動App的界面設計工作流 248
15.6 設計評估 249
15.7 小結 250
習題與思考題 250
擴展閱讀與信息資源 251
第16章 基於模式的設計 253
16.1 設計模式 254
16.1.1 模式的種類 255
16.1.2 框架 256
16.1.3 描述模式 257
16.1.4 模式語言和模式庫 258
16.2 基於模式的軟體設計 258
16.2.1 不同環境下基於模式的設計 258
16.2.2 用模式思考 259
16.2.3 設計任務 260
16.2.4 建立模式組織表 260
16.2.5 常見設計錯誤 261
16.3 體系結構模式 262
16.4 構件級設計模式 263
16.5 用戶界面設計模式 264
16.6 WebApp設計模式 266
16.6.1 設計焦點 266
16.6.2 設計粒度 266
16.7 移動App模式 267
16.8 小結 268
習題與思考題 268
擴展閱讀與信息資源 269
第17章 WebApp設計 271
17.1 WebApp設計質量 272
17.2 設計目標 273
17.3 WebApp設計金字塔 274
17.4 WebApp界面設計 274
17.5 美學設計 275
17.5.1 布局問題 276
17.5.2 平面設計問題 276
17.6 內容設計 277
17.6.1 內容對象 277
17.6.2 內容設計問題 278
17.7 體系結構設計 278
17.7.1 內容體系結構 279
17.7.2 WebApp體系結構 280
17.8 導航設計 281
17.8.1 導航語義 281
17.8.2 導航語法 283
17.9 構件級設計 283
17.10 小結 283
習題與思考題 284
擴展閱讀與信息資源 284
第18章 移動App設計 286
18.1 挑戰 287
18.1.1 開發因素 287
18.1.2 技術因素 288
18.2 開發移動App 289
18.2.1 移動App質量 290
18.2.2 用戶界面設計 291
18.2.3 環境感知App 292
18.2.4 經驗教訓 293
18.3 移動App設計的最佳實踐 294
18.4 移動開發環境 295
18.5 雲 297
18.6 傳統軟體工程的適用性 298
18.7 小結 298
習題與思考題 299
擴展閱讀與信息資源 299
第三部分 質量管理
第19章 質量概念 302
19.1 什麼是質量 303
19.2 軟體質量 304
19.2.1 Garvin的質量維度 304
19.2.2 McCall的質量因素 305
19.2.3 ISO 9126質量因素 306
19.2.4 定向質量因素 306
19.2.5 過渡到量化觀點 307
19.3 軟體質量困境 308
19.3.1 “足夠好”的軟體 308
19.3.2 質量的成本 309
19.3.3 風險 311
19.3.4 疏忽和責任 311
19.3.5 質量和安全 312
19.3.6 管理活動的影響 312
19.4 實現軟體質量 313
19.4.1 軟體工程方法 313
19.4.2 項目管理技術 313
19.4.3 質量控制 313
19.4.4 質量保證 313
19.5 小結 314
習題與思考題 314
擴展閱讀與信息資源 314
第20章 評審技術 316
20.1 軟體缺陷對成本的影響 317
20.2 缺陷的放大和消除 318
20.3 評審度量及其套用 319
20.3.1 分析度量數據 320
20.3.2 評審的成本效益 320
20.4 評審的正式程度 321
20.5 非正式評審 322
20.6 正式技術評審 323
20.6.1 評審會議 324
20.6.2 評審報告和記錄保存 324
20.6.3 評審指導原則 325
20.6.4 樣本驅動評審 326
20.7 產品完成後評估 327
20.8 小結 327
習題與思考題 327
擴展閱讀與信息資源 328
第21章 軟體質量保證 329
21.1 背景問題 330
21.2 軟體質量保證的要素 330
21.3 軟體質量保證的過程和產品特性 332
21.4 軟體質量保證的任務、目標和度量 332
21.4.1 軟體質量保證的任務 332
21.4.2 目標、屬性和度量 333
21.5 軟體質量保證的形式化方法 334
21.6 統計軟體質量保證 335
21.6.1 一個普通的例子 335
21.6.2 軟體工程中的六西格瑪 336
21.7 軟體可靠性 337
21.7.1 可靠性和可用性的測量 337
21.7.2 軟體安全 338
21.8 ISO 9000質量標準 339
21.9 軟體質量保證計畫 340
21.10 小結 341
習題與思考題 341
擴展閱讀與信息資源 341
第22章 軟體測試策略 343
22.1 軟體測試的策略性方法 344
22.1.1 驗證與確認 344
22.1.2 軟體測試組織 345
22.1.3 軟體測試策略——巨觀 346
22.1.4 測試完成的標準 347
22.2 策略問題 348
22.3 傳統軟體的測試策略 348
22.3.1 單元測試 348
22.3.2 集成測試 350
22.4 面向對象軟體的測試策略 354
22.4.1 面向對象環境中的單元測試 354
22.4.2 面向對象環境中的集成測試 354
22.5 WebApp的測試策略 355
22.6 移動App的測試策略 355
22.7 確認測試 356
22.7.1 確認測試準則 356
22.7.2 配置評審 356
22.7.3 α測試和β測試 356
22.8 系統測試 358
22.8.1 恢複測試 358
22.8.2 安全測試 358
22.8.3 壓力測試 358
22.8.4 性能測試 359
22.8.5 部署測試 359
22.9 調試技巧 360
22.9.1 調試過程 360
22.9.2 心理因素 361
22.9.3 調試策略 362
22.9.4 糾正錯誤 363
22.10 小結 363
習題與思考題 364
擴展閱讀與信息資源 364
第23章 測試傳統的套用軟體 366
23.1 軟體測試基礎 367
23.2 測試的內部視角和外部視角 368
23.3 白盒測試 369
23.4 基本路徑測試 369
23.4.1 流圖表示 369
23.4.2 獨立程式路徑 371
23.4.3 生成測試用例 372
23.4.4 圖矩陣 374
23.5 控制結構測試 375
23.6 黑盒測試 376
23.6.1 基於圖的測試方法 376
23.6.2 等價類劃分 378
23.6.3 邊界值分析 378
23.6.4 正交數組測試 379
23.7 基於模型的測試 381
23.8 文檔測試和幫助設施測試 381
23.9 實時系統的測試 382
23.10 軟體測試模式 383
23.11 小結 384
習題與思考題 384
擴展閱讀與信息資源 385
第24章 測試面向對象的套用 386
24.1 擴展測試的視野 387
24.2 測試OOA和OOD模型 387
24.2.1 OOA和OOD模型的正確性 388
24.2.2 面向對象模型的一致性 388
24.3 面向對象測試策略 389
24.3.1 面向對象環境中的單元測試 389
24.3.2 面向對象環境中的集成測試 390
24.3.3 面向對象環境中的確認測試 390
24.4 面向對象測試方法 390
24.4.1 面向對象概念的測試用例設計含義 391
24.4.2 傳統測試用例設計方法的可套用性 391
24.4.3 基於故障的測試 391
24.4.4 基於場景的測試設計 392
24.5 類級可套用的測試方法 392
24.5.1 面向對象類的隨機測試 392
24.5.2 類級的劃分測試 393
24.6 類間測試用例設計 394
24.6.1 多類測試 394
24.6.2 從行為模型導出的測試 395
24.7 小結 396
習題與思考題 396
擴展閱讀與信息資源 397
第25章 測試WebApp 398
25.1 WebApp的測試概念 398
25.1.1 質量維度 399
25.1.2 WebApp環境中的錯誤 399
25.1.3 測試策略 400
25.1.4 測試計畫 400
25.2 測試過程概述 401
25.3 內容測試 402
25.3.1 內容測試的目標 402
25.3.2 資料庫測試 403
25.4 用戶界面測試 404
25.4.1 界面測試策略 404
25.4.2 測試界面機制 405
25.4.3 測試界面語義 406
25.4.4 可用性測試 406
25.4.5 兼容性測試 408
25.5 構件級測試 409
25.6 導航測試 409
25.6.1 測試導航語法 409
25.6.2 測試導航語義? 410
25.7 配置測試 411
25.7.1 伺服器端問題 411
25.7.2 客戶端問題 411
25.8 安全性測試 412
25.9 性能測試 413
25.9.1 性能測試的目標 413
25.9.2 負載測試 414
25.9.3 壓力測試 414
25.10 小結 415
習題與思考題 416
擴展閱讀與信息資源 417
第26章 測試移動App 418
26.1 測試準則 419
26.2 測試策略 420
26.2.1 傳統方法適用嗎 420
26.2.2 對自動化的要求 421
26.2.3 建立測試矩陣 422
26.2.4 壓力測試 422
26.2.5 生產環境中的測試 423
26.3 與用戶互動的各種情況 424
26.3.1 手語測試 425
26.3.2 語音輸入和識別 425
26.3.3 虛擬鍵盤輸入 425
26.3.4 警報和異常條件 426
26.4 跨界測試 426
26.5 實時測試問題 427
26.6 測試工具和環境 427
26.7 小結 428
習題與思考題 429
擴展閱讀與信息資源 430
第27章 安全性工程 431
27.1 安全性需求分析 432
27.2 網路世界中的安全性與保密性 433
27.2.1 社交媒體 433
27.2.2 移動App 434
27.2.3 雲計算 434
27.2.4 物聯網 434
27.3 安全性工程分析 434
27.3.1 安全性需求獲取 435
27.3.2 安全性建模 435
27.3.3 測度設計 436
27.3.4 正確性檢查 436
27.4 安全性保證 437
27.4.1 安全性保證過程 437
27.4.2 組織和管理 438
27.5 安全性風險分析 438
27.6 傳統軟體工程活動的作用 440
27.7 可信性系統驗證 441
27.8 小結 442
習題與思考題 443
擴展閱讀與信息資源 443
第28章 形式化建模與驗證 445
28.1 淨室策略 446
28.2 功能規格說明 447
28.2.1 黑盒規格說明 448
28.2.2 狀態盒規格說明 449
28.2.3 清晰盒規格說明 449
28.3 淨室設計 449
28.3.1 設計細化 450
28.3.2 設計驗證 450
28.4 淨室測試 451
28.4.1 統計使用測試 451
28.4.2 認證 452
28.5 重新思考形式化方法 453
28.6 形式化方法的概念 454
28.7 其他爭論 457
28.8 小結 457
習題與思考題 458
擴展閱讀與信息資源 459
第29章 軟體配置管理 460
29.1 軟體配置管理概述 461
29.1.1 SCM場景 461
29.1.2 配置管理系統的元素 462
29.1.3 基線 463
29.1.4 軟體配置項 464
29.1.5 依賴性和變更管理 464
29.2 SCM中心存儲庫 465
29.2.1 一般特徵和內容 465
29.2.2 SCM特徵 466
29.3 SCM過程 466
29.3.1 軟體配置中的對象標識 467
29.3.2 版本控制 468
29.3.3 變更控制 469
29.3.4 影響管理 471
29.3.5 配置審核 472
29.3.6 狀態報告 472
29.4 WebApp和移動App的配置管理 473
29.4.1 主要問題 473
29.4.2 配置對象 474
29.4.3 內容管理 475
29.4.4 變更管理 477
29.4.5 版本控制 479
29.4.6 審核和報告 479
29.5 小結 480
習題與思考題 481
擴展閱讀與信息資源 481
第30章 產品度量 483
30.1 產品度量框架 484
30.1.1 測度、度量和指標 484
30.1.2 產品度量的挑戰 484
30.1.3 測量原則 485
30.1.4 面向目標的軟體測量 485
30.1.5 有效軟體度量的屬性 486
30.2 需求模型的度量 487
30.2.1 基於功能的度量 487
30.2.2 規格說明質量的度量 490
30.3 設計模型的度量 491
30.3.1 體系結構設計的度量 491
30.3.2 面向對象設計的度量 493
30.3.3 面向類的度量——CK度量集 493
30.3.4 面向類的度量——MOOD度量集 495
30.3.5 Lorenz和Kidd提出的面向對象的度量 496
30.3.6 構件級設計的度量 496
30.3.7 面向操作的度量 496
30.3.8 用戶界面設計的度量 497
30.4 WebApp和移動App的設計度量 497
30.5 原始碼的度量 499
30.6 測試的度量 500
30.6.1 用於測試的Halstead度量 500
30.6.2 面向對象測試的度量 500
30.7 維護的度量 501
30.8 小結 502
習題與思考題 503
擴展閱讀與信息資源 503
第四部分 管理軟體項目
第31章 項目管理概念 506
31.1 管理涉及的範圍 507
31.1.1 人員 507
31.1.2 產品 507
31.1.3 過程 508
31.1.4 項目 508
31.2 人員 508
31.2.1 利益相關者 508
31.2.2 團隊負責人 509
31.2.3 軟體團隊 509
31.2.4 敏捷團隊 511
31.2.5 協調和溝通問題 512
31.3 產品 513
31.3.1 軟體範圍 513
31.3.2 問題分解 513
31.4 過程 514
31.4.1 合併產品和過程 514
31.4.2 過程分解 515
31.5 項目 516
31.6 W5HH原則 516
31.7 關鍵實踐 517
31.8 小結 518
習題與思考題 518
擴展閱讀與信息資源 519
第32章 過程度量與項目度量 521
32.1 過程領域和項目領域中的度量 522
32.1.1 過程度量和軟體過程改進 522
32.1.2 項目度量 524
32.2 軟體測量 525
32.2.1 面向規模的度量 526
32.2.2 面向功能的度量 527
32.2.3 調和代碼行度量和功能點度量 527
32.2.4 面向對象的度量 528
32.2.5 面向用例的度量 529
32.2.6 WebApp項目的度量 530
32.3 軟體質量的度量 531
32.3.1 測量質量 531
32.3.2 缺陷排除效率 532
32.4 在軟體過程中集成度量 533
32.4.1 支持軟體度量的論點 534
32.4.2 建立基線 534
32.4.3 度量收集、計算和評估 534
32.5 小型組織的度量 535
32.6 制定軟體度量大綱 536
32.7 小結 537
習題與思考題 537
擴展閱讀與信息資源 538
第33章 軟體項目估算 540
33.1 對估算的觀察 541
33.2 項目計畫過程 542
33.3 軟體範圍和可行性 542
33.4 資源 543
33.4.1 人力資源 544
33.4.2 可復用軟體資源 544
33.4.3 環境資源 544
33.5 軟體項目估算 544
33.6 分解技術 545
33.6.1 軟體規模估算 545
33.6.2 基於問題的估算 546
33.6.3 基於LOC估算的實例 547
33.6.4 基於FP估算的實例 548
33.6.5 基於過程的估算 549
33.6.6 基於過程估算的實例 550
33.6.7 基於用例的估算 550
33.6.8 基於用例點估算的實例 551
33.6.9 調和不同的估算方法 552
33.7 經驗估算模型 553
33.7.1 估算模型的結構 553
33.7.2 COCOMOⅡ模型 553
33.7.3 軟體方程 553
33.8 面向對象項目的估算 554
33.9 特殊的估算技術 555
33.9.1 敏捷開發的估算 555
33.9.2 WebApp項目的估算 555
33.10 自行開發或購買的決策 556
33.10.1 創建決策樹 557
33.10.2 外包 558
33.11 小結 559
習題與思考題 559
擴展閱讀與信息資源 560
第34章 項目進度安排 561
34.1 基本概念 562
34.2 項目進度安排概述 563
34.2.1 基本原則 564
34.2.2 人員與工作量之間的關係 565
34.2.3 工作量分配 566
34.3 為軟體項目定義任務集 567
34.3.1 任務集舉例 567
34.3.2 主要任務的細化 568
34.4 定義任務網路 568
34.5 進度安排 569
34.5.1 時序圖 570
34.5.2 跟蹤進度 570
34.5.3 跟蹤面向對象項目的進展 572
34.5.4 WebApp和移動App項目的進度安排 573
34.6 掙值分析 575
34.7 小結 576
習題與思考題 577
擴展閱讀與信息資源 578
第35章 風險管理 579
35.1 被動風險策略和主動風險策略 580
35.2 軟體風險 580
35.3 風險識別 581
35.3.1 評估整體項目風險 582
35.3.2 風險因素和驅動因子 583
35.4 風險預測 584
35.4.1 建立風險表 584
35.4.2 評估風險影響 585
35.5 風險細化 587
35.6 風險緩解、監測和管理 587
35.7 RMMM計畫 589
35.8 小結 590
習題與思考題 590
擴展閱讀與信息資源 591
第36章 維護與再工程 593
36.1 軟體維護 594
36.2 軟體可支持性 595
36.3 再工程 596
36.4 業務過程再工程 596
36.4.1 業務過程 596
36.4.2 BPR模型 597
36.5 軟體再工程 598
36.5.1 軟體再工程過程模型 598
36.5.2 軟體再工程活動 599
36.6 逆向工程 600
36.6.1 理解數據的逆向工程 601
36.6.2 理解處理的逆向工程 602
36.6.3 用戶界面的逆向工程 602
36.7 重構 603
36.7.1 代碼重構 603
36.7.2 數據重構 604
36.8 正向工程 604
36.8.1 客戶/伺服器體系結構的正向工程 605
36.8.2 面向對象體系結構的正向工程 606
36.9 再工程經濟學 606
36.10 小結 607
習題與思考題 607
擴展閱讀與信息資源 608
第五部分 軟體工程高級課題
第37章 軟體過程改進 612
37.1 什麼是SPI 613
37.1.1 SPI的方法 613
37.1.2 成熟度模型 614
37.1.3 SPI適合每個人嗎 615
37.2 SPI過程 615
37.2.1 評估和差距分析 616
37.2.2 教育和培訓 617
37.2.3 選擇和合理性判定 617
37.2.4 設定/遷移 618
37.2.5 評價 618
37.2.6 SPI的風險管理 618
37.3 CMMI 619
37.4 人員CMM 622
37.5 其他SPI框架 622
37.6 SPI的投資收益率 624
37.7 SPI趨勢 624
37.8 小結 625
習題與思考題 626
擴展閱讀與信息資源 626
第38章 軟體工程的新趨勢 627
38.1 技術演變 628
38.2 關於純粹工程學科的展望 629
38.3 觀察軟體工程的發展趨勢 629
38.4 識別“軟趨勢” 630
38.4.1 管理複雜性 631
38.4.2 開放世界軟體 632
38.4.3 意外需求 632
38.4.4 人才技能結合 633
38.4.5 軟體構造塊 633
38.4.6 對“價值”認識的轉變 634
38.4.7 開源 634
38.5 技術方向 634
38.5.1 過程趨勢 634
38.5.2 巨大的挑戰 635
38.5.3 協同開發 636
38.5.4 需求工程 636
38.5.5 模型驅動的軟體開發 637
38.5.6 後現代設計 637
38.5.7 測試驅動的開發 638
38.6 相關工具的趨勢 639
38.7 小結 640
習題與思考題 640
擴展閱讀與信息資源 640
第39章 結束語 642
39.1 再論軟體的重要性 643
39.2 人員及其構造系統的方式 643
39.3 表示信息的新模式 644
39.4 遠景 645
39.5 軟體工程師的責任 646
39.6 寫在最後 647
索引 648
線上資源
附錄1 UML 簡介
附錄2 面向對象概念
附錄3 形式化方法
參考文獻

相關詞條

熱門詞條

聯絡我們