軟件工程:實踐者的研究方法 (Software Engineering: A Practitioner's Approach) 软件工程:实践者的研究方法(原书第8版)

羅傑 S.普萊斯曼 (Roger S.Pressman), 布魯斯 R.馬克西姆 (Bruce R.Maxim)

  • 出版商: 機械工業
  • 出版日期: 2016-11-01
  • 定價: $594
  • 售價: 8.5$505
  • 語言: 簡體中文
  • 頁數: 665
  • 裝訂: 平裝
  • ISBN: 7111548973
  • ISBN-13: 9787111548973
  • 相關分類: 軟體工程
  • 下單後立即進貨 (約4週~6週)

買這商品的人也買了...

商品描述

<內容簡介>

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

<章節目錄>


譯者序
前言
作者簡介
第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形式化方法
參考文獻