齣版者的話
譯者序
前言
作者簡介
第1章 軟件和軟件工程 1
1.1 軟件的本質 2
1.1.1 定義軟件 3
1.1.2 軟件應用領域 5
1.1.3 遺留軟件 6
1.2 WebApp的特性 7
1.3 軟件工程 8
1.4 軟件過程 9
1.5 軟件工程實踐 11
1.5.1 實踐的精髓 11
1.5.2 一般原則 12
1.6 軟件神話 14
1.7 這一切是如何開始的 15
1.8 小結 16
習題與思考題 17
推薦讀物與閱讀信息 17
第一部分 軟件過程
第2章 過程模型 20
2.1 通用過程模型 21
2.1.1 定義框架活動 22
2.1.2 明確任務集 23
2.1.3 過程模式 23
2.2 過程評估與改進 25
2.3 慣用過程模型 26
2.3.1 瀑布模型 26
2.3.2 增量過程模型 28
2.3.3 演化過程模型 29
2.3.4 協同模型 33
2.3.5 演化模型的最終評述 34
2.4 專用過程模型 34
2.4.1 基於構件的開發 35
2.4.2 形式化方法模型 35
2.4.3 麵嚮方麵的軟件開發 35
2.5 統一過程 37
2.5.1 簡史 37
2.5.2 統一過程的階段 37
2.6 個人過程模型和團隊過程模型 38
2.6.1 個人軟件過程 39
2.6.2 團隊軟件過程 39
2.7 過程技術 40
2.8 産品與過程 41
2.9 小結 42
習題與思考題 42
推薦讀物與閱讀信息 43
第3章 敏捷開發 45
3.1 什麼是敏捷 46
3.2 敏捷及變更的成本費用 47
3.3 敏捷過程是什麼 47
3.3.1 敏捷原則 48
3.3.2 敏捷開發的戰略 48
3.3.3 人的因素 49
3.4 極限編程 50
3.4.1 極限編程的權值 50
3.4.2 極限編程過程 51
3.4.3 工業極限編程 53
3.4.4 關於XP的爭論 54
3.5 其他敏捷過程模型 55
3.5.1 自適應軟件開發 56
3.5.2 Scrum 57
3.5.3 動態係統開發方法 58
3.5.4 Crystal 59
3.5.5 特徵驅動開發 59
3.5.6 精益軟件開發 60
3.5.7 敏捷建模 60
3.5.8 敏捷統一過程 61
3.6 敏捷過程工具集 62
3.7 小結 63
習題與思考題 63
推薦讀物與閱讀信息 64
第二部分 建模
第4章 指導實踐的原則 68
4.1 軟件工程知識 69
4.2 核心原則 69
4.2.1 指導過程的原則 69
4.2.2 指導實踐的原則 70
4.3 指導每個框架活動的原則 71
4.3.1 溝通原則 71
4.3.2 策劃原則 73
4.3.3 建模原則 74
4.3.4 構造原則 77
4.3.5 部署原則 79
4.4 小結 80
習題與思考題 81
推薦讀物與閱讀信息 81
第5章 理解需求 83
5.1 需求工程 84
5.2 建立根基 88
5.2.1 確認利益相關者 88
5.2.2 識彆多重觀點 88
5.2.3 協同閤作 88
5.2.4 首次提問 89
5.3 導齣需求 89
5.3.1 協作收集需求 90
5.3.2 質量功能部署 92
5.3.3 用戶場景 92
5.3.4 導齣工作産品 93
5.4 開發用例 94
5.5 構建需求模型 97
5.5.1 需求模型的元素 98
5.5.2 分析模式 100
5.6 協商需求 100
5.7 確認需求 101
5.8 小結 102
習題與思考題 102
推薦讀物與閱讀信息 103
第6章 需求建模:場景、信息
與類分析 105
6.1 需求分析 106
6.1.1 總體目標和原理 106
6.1.2 分析的經驗原則 107
6.1.3 域分析 107
6.1.4 需求建模的方法 109
6.2 基於場景建模 110
6.2.1 新建初始用例 110
6.2.2 細化初始用例 112
6.2.3 編寫正規的用例 113
6.3 補充用例的UML模型 115
6.3.1 開發活動圖 115
6.3.2 泳道圖 115
6.4 數據建模概念 116
6.4.1 數據對象 117
6.4.2 數據屬性 117
6.4.3 關係 118
6.5 基於類的建模 119
6.5.1 識彆分析類 119
6.5.2 描述屬性 121
6.5.3 定義操作 122
6.5.4 類-職責-協作者建模 124
6.5.5 關聯和依賴 128
6.5.6 分析包 129
6.6 小結 130
習題與思考題 130
推薦讀物與閱讀信息 131
第7章 需求建模:流程、行為、模式和Web應用 132
7.1 需求建模策略 132
7.2 麵嚮數建模 133
7.2.1 創建數據流模型 133
7.2.2 創建控製流模型 135
7.2.3 控製規格說明 135
7.2.4 處理規格說明 137
7.3 生成行為模型 138
7.3.1 識彆用例事件 139
7.3.2 狀態錶現 139
7.4 需求建模的模式 141
7.4.1 發現分析模式 142
7.4.2 需求模式舉例:執行器-傳感器 142
7.5 Web應用係統的需求建模 145
7.5.1 如何分析 145
7.5.2 需求建模的輸入 146
7.5.3 需求建模的輸齣 146
7.5.4 Web應用係統內容建模 147
7.5.5 Web應用係統的交互模型 148
7.5.6 Web應用係統的功能模型 148
7.5.7 Web應用係統的配置模型 149
7.5.8 導航建模 150
7.6 小結 150
習題與思考題 151
推薦讀物與閱讀信息 151
第8章 設計概念 152
8.1 軟件工程中的設計 153
8.2 設計過程 155
8.2.1 軟件質量指導原則和屬性 155
8.2.2 軟件設計的演化 156
8.3 設計概念 157
8.3.1 抽象 158
8.3.2 體係結構 158
8.3.3 模式 159
8.3.4 關注點分離 159
8.3.5 模塊化 159
8.3.6 信息隱蔽 160
8.3.7 功能獨立 160
8.3.8 求精 161
8.3.9 方麵 161
8.3.10 重構 162
8.3.11 麵嚮對象的設計概念 163
8.3.12 設計類 163
8.4 設計模型 165
8.4.1 數據設計元素 166
8.4.2 體係結構設計元素 166
8.4.3 接口設計元素 166
8.4.4 構件級設計元素 168
8.4.5 部署級設計元素 168
8.5 小結 169
習題與思考題 169
推薦讀物與閱讀信息 170
第9章 體係結構設計 172
9.1 軟件體係結構 172
9.1.1 什麼是體係結構 173
9.1.2 體係結構為什麼重要 174
9.1.3 體係結構描述 174
9.1.4 體係結構決策 175
9.2 體係結構類型 175
9.3 體係結構風格 177
9.3.1 體係結構風格的簡單分類 178
9.3.2 體係結構模式 180
9.3.3 組織和求精 181
9.4 體係結構設計 181
9.4.1 係統環境的錶示 181
9.4.2 定義原型 182
9.4.3 將體係結構精化為構件 183
9.4.4 描述係統實例 184
9.5 評估可選的體係結構設計 185
9.5.1 體係結構權衡分析方法 185
9.5.2 體係結構復雜性 187
9.5.3 體係結構描述語言 187
9.6 使用數據流進行體係結構映射 188
9.6.1 變換映射 188
9.6.2 精化體係結構設計 193
9.7 小結 194
習題與思考題 194
推薦讀物與閱讀信息 195
第10章 構件級設計 196
10.1 什麼是構件 197
10.1.1 麵嚮對象的觀點 197
10.1.2 傳統觀點 198
10.1.3 過程相關的觀點 199
10.2 設計基於類的構件 200
10.2.1 基本設計原則 200
10.2.2 構件級設計指導方針 203
10.2.3 內聚性 203
10.2.4 耦閤性 205
10.3 實施構件級設計 206
10.4 WebApp的構件級設計 210
10.4.1 構件級內容設計 210
10.4.2 構件級功能設計 211
10.5 設計傳統構件 211
10.5.1 圖形化設計錶示 211
10.5.2 錶格式設計錶示 212
10.5.3 程序設計語言 213
10.6 基於構件的開發 214
10.6.1 領域工程 215
10.6.2 構件閤格性檢驗、適應性修改與組閤 215
10.6.3 復用的分析與設計 217
10.6.4 構件分類與檢索 217
10.7 小結 218
習題與思考題 219
推薦讀物與閱讀信息 220
第11章 用戶界麵設計 221
11.1 黃金規則 222
11.1.1 用戶操縱控製 222
11.1.2 減輕用戶記憶負擔 223
11.1.3 保持界麵一緻 224
11.2 用戶界麵的分析與設計 225
11.2.1 用戶界麵分析和設計模型 225
11.2.2 過程 226
11.3 界麵分析 227
11.3.1 用戶分析 227
11.3.2 任務分析和建模 228
11.3.3 顯示內容分析 232
11.3.4 工作環境分析 232
11.4 界麵設計步驟 233
11.4.1 應用界麵設計步驟 233
11.4.2 用戶界麵設計模式 235
11.4.3 設計問題 235
11.5 WebApp界麵設計 237
11.5.1 界麵設計原則與指導方針 238
11.5.2 WebApp的界麵設計工作流 241
11.6 設計評估 242
11.7 小結 243
習題與思考題 244
推薦讀物與閱讀信息 245
第12章 基於模式的設計 246
12.1 設計模式 247
12.1.1 模式的種類 248
12.1.2 框架 249
12.1.3 描述模式 250
12.1.4 模式語言和存儲庫 251
12.2 基於模式的軟件設計 251
12.2.1 不同環境下基於模式
的設計 252
12.2.2 在模式中思考 252
12.2.3 設計任務 253
12.2.4 建立模式組織錶 254
12.2.5 常見設計錯誤 255
12.3 體係結構模式 255
12.4 構件級設計模式 257
12.5 用戶界麵設計模式 259
12.6 WebApp設計模式 261
12.6.1 設計焦點 261
12.6.2 設計粒度 261
12.7 小結 262
習題與思考題 263
推薦讀物與閱讀信息 263
第13章 WebApp設計 265
13.1 WebApp設計質量 266
13.2 設計目標 268
13.3 WebApp設計金字塔 269
13.4 WebApp界麵設計 269
13.5 美學設計 270
13.5.1 布局問題 270
13.5.2 美術設計問題 271
13.6 內容設計 271
13.6.1 內容對象 271
13.6.2 內容設計問題 272
13.7 體係結構設計 272
13.7.1 內容體係結構 273
13.7.2 WebApp體係結構 274
13.8 導航設計 275
13.8.1 導航語義 275
13.8.2 導航語法 276
13.9 構件級設計 277
13.10 麵嚮對象的超媒體設計方法 277
13.10.1 OOHDM的概念設計 278
13.10.2 OOHDM的導航設計 279
13.10.3 抽象界麵設計與實現 279
13.11 小結 279
習題與思考題 280
推薦讀物與閱讀信息 280
第三部分 質量管理
第14章 質量概念 284
14.1 什麼是質量 285
14.2 軟件質量 285
14.2.1 Garvin的質量維度 286
14.2.2 McCall的質量因素 287
14.2.3 ISO 9126質量因素 287
14.2.4 定嚮質量因素 288
14.2.5 過渡到量化觀點 289
14.3 軟件質量睏境 289
14.3.1 “足夠好”的軟件 289
14.3.2 質量成本 290
14.3.3 風險 291
14.3.4 疏忽和責任 292
14.3.5 質量和安全 292
14.3.6 管理活動的影響 292
14.4 實現軟件質量 293
14.4.1 軟件工程方法 293
14.4.2 項目管理技術 293
14.4.3 質量控製 294
14.4.4 質量保證 294
14.5 小結 294
習題與思考題 294
推薦讀物與閱讀信息 295
第15章 評審技術 296
15.1 軟件缺陷對成本的影響 297
15.2 缺陷放大和消除 297
15.3 評審度量及其應用 299
15.3.1 分析度量數據 299
15.3.2 評審的成本效益 300
15.4 評審:正式程度 301
15.5 非正式評審 301
15.6 正式技術評審 303
15.6.1 評審會議 303
15.6.2 評審報告和記錄保存 304
15.6.3 評審指導原則 304
15.6.4 樣本驅動評審 305
15.7 小結 306
習題與思考題 306
推薦讀物與閱讀信息 307
第16章 軟件質量保證 308
16.1 背景問題 309
16.2 軟件質量保證的要素 309
16.3 軟件質量保證的任務、目標和度量 311
16.3.1 軟件質量保證任務 311
16.3.2 目標、屬性和度量 311
16.4 軟件質量保證的形式化方法 312
16.5 統計軟件質量保證 313
16.5.1 一個普通的例子 313
16.5.2 軟件工程中的六西格瑪 314
16.6 軟件可靠性 314
16.6.1 可靠性和可用性的測量 315
16.6.2 軟件安全 316
16.7 ISO 9000質量標準 316
16.8 SQA計劃 317
16.9 小結 318
習題與思考題 318
推薦讀物與閱讀信息 319
第17章 軟件測試策略 320
17.1 軟件測試的策略性方法 321
17.1.1 驗證與確認 321
17.1.2 軟件測試的組織 322
17.1.3 軟件測試策略—宏觀 322
17.1.4 測試完成的標準 324
17.2 策略問題 324
17.3 傳統軟件的測試策略 325
17.3.1 單元測試 325
17.3.2 集成測試 327
17.4 麵嚮對象軟件的測試策略 331
17.4.1 麵嚮對象環境中的單元測試 331
17.4.2 麵嚮對象環境中的集成測試 332
17.5 WebApp的測試策略 332
17.6 確認測試 333
17.6.1 確認測試準則 333
17.6.2 配置評審 333
17.6.3 a測試與b測試 333
17.7 係統測試 334
17.7.1 恢復測試 335
17.7.2 安全測試 335
17.7.3 壓力測試 335
17.7.4 性能測試 336
17.7.5 部署測試 336
17.8 調試技巧 337
17.8.1 調試過程 337
17.8.2 心理因素 338
17.8.3 調試策略 338
17.8.4 糾正錯誤 340
17.9 小結 340
習題與思考題 340
推薦讀物與閱讀信息 341
第18章 測試傳統的應用係統 343
18.1 軟件測試基礎 344
18.2 測試的內部視角和外部視角 345
18.3 白盒測試 346
18.4 基本路徑測試 346
18.4.1 流圖錶示 346
18.4.2 獨立程序路徑 347
18.4.3 導齣測試用例 349
18.4.4 圖矩陣 350
18.5 控製結構測試 351
18.5.1 條件測試 351
18.5.2 數據流測試 351
18.5.3 循環測試 352
18.6 黑盒測試 353
18.6.1 基於圖的測試方法 353
18.6.2 等價類劃分 354
18.6.3 邊界值分析 355
18.6.4 正交數組測試 355
18.7 基於模型的測試 357
18.8 針對特定環境、體係結構和應用係統的測試 358
18.8.1 圖形用戶界麵測試 358
18.8.2 客戶/服務器體係結構測試 358
18.8.3 文檔測試和幫助設施測試 359
18.8.4 實時係統的測試 360
18.9 軟件測試模式 361
18.10 小結 362
習題與思考題 362
推薦讀物與閱讀信息 363
第19章 測試麵嚮對象的應用係統 364
19.1 擴展測試的視野 364
19.2 測試OOA和OOD模型 365
19.2.1 OOA和OOD模型的正確性 365
19.2.2 麵嚮對象模型的一緻性 366
19.3 麵嚮對象測試策略 367
19.3.1 麵嚮對象環境中的單元測試 367
19.3.2 麵嚮對象環境中的集成測試 368
19.3.3 麵嚮對象環境中的確認測試 368
19.4 麵嚮對象測試方法 368
19.4.1 麵嚮對象概念的測試用例設計的含義 369
19.4.2 傳統測試用例設計方法的可應用性 369
19.4.3 基於故障的測試 369
19.4.4 測試用例與類層次 370
19.4.5 基於場景的測試設計 370
19.4.6 錶層結構和深層結構的測試 371
19.5 類級可應用的測試方法 372
19.5.1 麵嚮對象類的隨機測試 372
19.5.2 類級的劃分測試 373
19.6 類間測試用例設計 373
19.6.1 多類測試 374
19.6.2 從行為模型導齣的測試 374
19.7 小結 375
習題與思考題 376
推薦讀物與閱讀信息 376
第20章 測試Web應用係統 377
20.1 WebApp的測試概念 377
20.1.1 質量維度 378
20.1.2 WebApp環境中的錯誤 378
20.1.3 測試策略 379
20.1.4 測試策劃 379
20.2 測試過程概述 380
20.3 內容測試 380
20.3.1 內容測試的目標 381
20.3.2 數據庫測試 381
20.4 用戶界麵測試 383
20.4.1 界麵測試策略 383
20.4.2 測試界麵機製 383
20.4.3 測試界麵語義 385
20.4.4 可用性測試 385
20.4.5 兼容性測試 386
20.5 構件級測試 387
20.6 導航測試 388
20.6.1 測試導航語法 388
20.6.2 測試導航語義 389
20.7 配置測試 390
20.7.1 服務器端問題 390
20.7.2 客戶端問題 390
20.8 安全性測試 391
20.9 性能測試 392
20.9.1 性能測試的目標 392
20.9.2 負載測試 393
20.9.3 壓力測試 393
20.10 小結 395
習題與思考題 396
推薦讀物與閱讀信息 396
第21章 形式化建模與驗證 398
21.1 淨室策略 399
21.2 功能規格說明 400
21.2.1 黑盒規格說明 401
21.2.2 狀態盒規格說明 401
21.2.3 清晰盒規格說明 402
21.3 淨室設計 402
21.3.1 設計求精 402
21.3.2 設計驗證 403
21.4 淨室測試 404
21.4.1 統計使用測試 404
21.4.2 認證 405
21.5 形式化方法的概念 406
21.6 應用數學錶示法描述形式化規格說明 408
21.7 形式化規格說明語言 409
21.7.1 對象約束語言 409
21.7.2 Z規格說明語言 412
21.8 小結 414
習題與思考題 415
推薦讀物與閱讀信息 415
第22章 軟件配置管理 417
22.1 軟件配置管理概述 418
22.1.1 SCM場景 418
22.1.2 配置管理係統元素 419
22.1.3 基綫 419
22.1.4 軟件配置項 420
22.2 SCM中心存儲庫 421
22.2.1 中心存儲庫的作用 421
22.2.2 一般特徵和內容 421
22.2.3 SCM特徵 422
22.3 SCM過程 423
22.3.1 軟件配置中的對象標識 424
22.3.2 版本控製 424
22.3.3 變更控製 425
22.3.4 配置審核 428
22.3.5 狀態報告 428
22.4 WebApp配置管理 429
22.4.1 WebApp配置管理的主要問題 429
22.4.2 WebApp的配置對象 430
22.4.3 內容管理 430
22.4.4 變更管理 432
22.4.5 版本控製 434
22.4.6 審核和報告 435
22.5 小結 436
習題與思考題 436
推薦讀物與閱讀信息 437
第23章 産品度量 438
23.1 産品度量框架 439
23.1.1 測度、度量和指標 439
23.1.2 産品度量的挑戰 439
23.1.3 測量原則 440
23.1.4 麵嚮目標的軟件測量 440
23.1.5 有效軟件度量的屬性 441
23.2 需求模型的度量 442
23.2.1 基於功能的度量 443
23.2.2 規格說明質量的度量 445
23.3 設計模型的度量 446
23.3.1 體係結構設計度量 446
23.3.2 麵嚮對象設計度量 447
23.3.3 麵嚮類的度量—CK度量集 448
23.3.4 麵嚮類的度量—MOOD度量集 450
23.3.5 Lorenz與Kidd提齣的麵嚮對象度量 451
23.3.6 構件級設計度量 451
23.3.7 麵嚮操作的度量 453
23.3.8 用戶界麵設計度量 453
23.4 WebApp的設計度量 453
23.5 源代碼度量 455
23.6 測試的度量 456
23.6.1 用於測試的Halstead度量 456
23.6.2 麵嚮對象測試的度量 457
23.7 維護的度量 457
23.8 小結 458
習題與思考題 459
推薦讀物與閱讀信息 459
第四部分 軟件項目管理
第24章 項目管理概念 462
24.1 管理涉及的範圍 463
24.1.1 人員 463
24.1.2 産品 463
24.1.3 過程 463
24.1.4 項目 464
24.2 人員 464
24.2.1 利益相關者 464
24.2.2 團隊負責人 464
24.2.3 軟件團隊 465
24.2.4 敏捷團隊 467
24.2.5 協調與溝通問題 468
24.3 産品 469
24.3.1 軟件範圍 469
24.3.2 問題分解 469
24.4 過程 470
24.4.1 閤並産品和過程 470
24.4.2 過程分解 470
24.5 項目 471
24.6 W5HH原則 472
24.7 關鍵實踐 473
24.8 小結 474
習題與思考題 474
推薦讀物與閱讀信息 474
第25章 過程度量和項目度量 477
25.1 過程領域和項目領域中的度量 478
25.1.1 過程度量和軟件過程改進 478
25.1.2 項目度量 479
25.2 軟件測量 480
25.2.1 麵嚮規模的度量 481
25.2.2 麵嚮功能的度量 482
25.2.3 調和代碼行度量和功能點度量 482
25.2.4 麵嚮對象的度量 484
25.2.5 麵嚮用例的度量 485
25.2.6 Web應用項目度量 485
25.3 軟件質量度量 486
25.3.1 測量質量 487
25.3.2 缺陷排除效率 488
25.4 在軟件過程中集成度量 489
25.4.1 支持軟件度量的論點 489
25.4.2 建立基綫 490
25.4.3 度量收集、計算和評估 490
25.5 小型組織的度量 490
25.6 製定軟件度量大綱 491
25.7 小結 493
習題與思考題 493
推薦讀物與閱讀信息 494
第26章 軟件項目估算 496
26.1 對估算的觀察 497
26.2 項目策劃過程 498
26.3 軟件範圍和可行性 498
26.4 資源 499
26.4.1 人力資源 499
26.4.2 可復用軟件資源 500
26.4.3 環境資源 500
26.5 軟件項目估算 500
26.6 分解技術 501
26.6.1 軟件規模估算 501
26.6.2 基於問題的估算 502
26.6.3 基於LOC估算的實例 503
26.6.4 基於FP估算的實例 505
26.6.5 基於過程的估算 505
26.6.6 基於過程估算的實例 506
26.6.7 基於用例的估算 507
26.6.8 基於用例的估算實例 508
26.6.9 協調不同的估算方法 508
26.7 經驗估算模型 509
26.7.1 估算模型的結構 509
26.7.2 COCOMOⅡ模型 510
26.7.3 軟件方程 511
26.8 麵嚮對象項目的估算 512
26.9 特殊的估算技術 512
26.9.1 敏捷開發的估算 512
26.9.2 Web應用項目的估算 513
26.10 自行開發或購買的決策 514
26.10.1 創建決策樹 514
26.10.2 外包 515
26.11 小結 517
習題與思考題 517
推薦讀物與閱讀信息 518
第27章 項目進度安排 519
27.1 基本概念 520
27.2 項目進度的安排 521
27.2.1 基本原則 522
27.2.2 人員與工作量之間的關係 522
27.2.3 工作量分配 524
27.3 為軟件項目定義任務集 524
27.3.1 任務集舉例 525
27.3.2 軟件工程活動求精 525
27.4 定義任務網絡 526
27.5 進度安排 527
27.5.1 時序圖 528
27.5.2 跟蹤進度 529
27.5.3 跟蹤OO項目的進展 530
27.5.4 WebApp項目進度安排 530
27.6 掙值分析 533
27.7 小結 534
習題與思考題 534
推薦讀物與閱讀信息 535
第28章 風險管理 537
28.1 被動風險策略和主動風險策略 538
28.2 軟件風險 538
28.3 風險識彆 539
28.3.1 評估整體項目風險 540
28.3.2 風險因素和驅動因子 540
28.4 風險預測 541
28.4.1 建立風險錶 542
28.4.2 評估風險影響 543
28.5 風險求精 545
28.6 風險緩解、監測和管理 545
28.7 RMMM計劃 546
28.8 小結 548
習題與思考題 548
推薦讀物與閱讀信息 549
第29章 維護與再工程 550
29.1 軟件維護 551
29.2 軟件可支持性 552
29.3 再工程 552
29.4 業務過程再工程 553
29.4.1 業務過程 553
29.4.2 BPR模型 554
29.5 軟件再工程 555
29.5.1 軟件再工程過程模型 555
29.5.2 軟件再工程活動 556
29.6 逆嚮工程 557
29.6.1 理解數據的逆嚮工程 558
29.6.2 理解處理的逆嚮工程 559
29.6.3 用戶界麵的逆嚮工程 559
29.7 重構 560
29.7.1 代碼重構 560
29.7.2 數據重構 560
29.8 正嚮工程 561
29.8.1 客戶/服務器體係結構的正嚮工程 562
29.8.2 麵嚮對象體係結構的正嚮工程 563
29.9 再工程經濟學 563
29.10 小結 564
習題與思考題 564
推薦讀物與閱讀信息 565
第五部分 軟件工程高級課題
第30章 軟件過程改進 568
30.1 什麼是SPI 569
30.1.1 SPI的方法 569
30.1.2 成熟度模型 570
30.1.3 SPI適閤每個人嗎 571
30.2 SPI過程 571
30.2.1 評估和差距分析 572
30.2.2 教育和培訓 573
30.2.3 選擇和閤理性判定 573
30.2.4 設置/遷移 574
30.2.5 評價 574
30.2.6 SPI的風險管理 574
30.2.7 關鍵的成功因素 575
30.3 CMMI 576
30.4 人員CMM 579
30.5 其他SPI框架 580
30.6 SPI的投資收益率 581
30.7 SPI趨勢 582
30.8 小結 582
習題與思考題 583
推薦讀物與閱讀信息 583
第31章 軟件工程的新趨勢 584
31.1 技術演變 585
31.2 觀察軟件工程的發展趨勢 586
31.3 識彆“軟趨勢” 587
31.3.1 管理復雜性 588
31.3.2 開放世界的軟件 589
31.3.3 意外需求 589
31.3.4 人纔結構 590
31.3.5 軟件構造塊 590
31.3.6 對“價值”認識的轉變 591
31.3.7 開源 591
31.4 技術方嚮 592
31.4.1 過程趨勢 592
31.4.2 巨大的挑戰 593
31.4.3 協同開發 594
31.4.4 需求工程 595
31.4.5 模型驅動的軟件開發 595
31.4.6 後現代設計 596
31.4.7 測試驅動的開發 596
31.5 相關工具的趨勢 597
31.5.1 順應軟趨勢的工具 598
31.5.2 涉及技術趨勢的工具 599
31.6 小結 599
習題與思考題 599
推薦讀物與閱讀信息 600
第32章 結束語 601
32.1 再論軟件的重要性 601
32.2 人員及其構造係統的方式 602
32.3 錶示信息的新模式 602
32.4 遠景 603
32.5 軟件工程師的責任 604
32.6 結束語 605
附錄1 UML簡介 607
附錄2 麵嚮對象概念 620
參考文獻 625
· · · · · · (
收起)