基本信息
實用軟體工程
作者: 殷人昆、鄭人傑、馬素霞
出版社: 清華大學出版社
出版年: 2010-11
頁數: 513
定價: 49.00元
ISBN: 9787302222002
內容簡介
《實用軟體工程(第3版)》是《實用軟體工程》的第三版。《實用軟體工程(第3版)》的第二版出版後,在國內被許多學校和培訓班用作教材,部分內容被其他相關教材多次引用,受到普遍好評。由於本領域在近年來發展極快,新的知識和技術不斷湧現,如果限於一本教材,難於反映全貌,也無法授人以漁,故第三版分為“開發篇”——《實用軟體工程(第三版)》與“管理篇”——《實用軟體工程高級教程(第三版)》兩冊。本冊“開發篇”共10章,系統地介紹了軟體工程的概念、方法和技術,包括軟體生存周期、需求分析、設計、編碼、測試、維護等;另一冊“管理篇”共8章,系統地介紹了軟體工程管理、軟體過程、質量和質量保證、可靠性、軟體標準和文檔、軟體工具、mda和soa等。《實用軟體工程(第3版)》力圖讓學習者不但能理解相關知識,而且能學會運用相關技能。
本冊適用於計算機專業的本科生、非計算機專業的本科生和研究生;“管理篇”適用於計算機專業的研究生和其他學習軟體工程的專業人員,也可用作培訓班的教材。
目錄
第1章 軟體工程概述/1
1.1 軟體的概念、特點和分類/1
1.1.1 軟體的概念及特點/1
1.1.2 軟體的分類/2
1.1.3 軟體的發展及軟體危機/3
1.2 軟體工程/5
1.2.1 軟體工程的定義/5
1.2.2 軟體工程的框架/6
1.2.3 軟體工程知識體系及知識域/7
1.2.4 軟體工程的基本原理/10
1.3 軟體生存周期與軟體過程/11
1.3.1 軟體生存周期的基本任務/11
1.3.2 軟體過程/13
1.4 軟體過程模型/13
1.4.1 瀑布模型/14
1.4.2 快速原型模型/15
1.4.3 形式化系統開發模型/16
1.4.4 面向復用的開發模型/17
1.4.5 增量模型/18
1.4.6 螺旋模型/19
1.4.7 噴泉模型/21
1.4.8 智慧型模型/21
1.4.9 快速套用開發模型/22
1.4.1 0Rational統一開發過程/24
1.5 問題解決和范型/26
1.5.1 范型/27
1.5.2 流行的范型/27
第2章 計算機系統工程/32
2.1 基於計算機的系統/32
2.2 計算機系統工程/33
2.2.1 識別用戶的要求/33
2.2.2 系統分析和結構設計/35
2.2.3 可行性研究/36
2.2.4 建立成本和進度的限制/36
2.2.5 生成系統需求規格說明/36
2.3 系統分析與結構設計/38
2.3.1 系統分析的層次/38
2.3.2 業務過程工程和產品工程建模/39
2.3.3 系統模型模板/41
2.3.4 系統文檔與評審/45
2.4 可行性研究/46
2.4.1 經濟可行性/46
2.4.2 技術可行性/49
2.4.3 法律可行性/50
2.4.4 用戶操作可行性/50
2.4.5 方案的選擇和折衷/50
2.4.6 可行性研究報告/51
2.5 其他系統描述方法/52
2.5.1 系統框圖和系統流程圖/52
2.5.2 HIPO建模/53
第3章 面向對象方法與UM1/57
3.1 面向對象系統的概念/57
3.1.1 面向對象系統的概念/57
3.1.2 對象/58
3.1.3 類與封裝/59
3.1.4 繼承/60
3.1.5 多態性和動態綁定/61
3.1.6 訊息通信/62
3.1.7 對象生存周期/63
3.2 統一建模語言UM1概述/63
3.2.1 什麼是建模/63
3.2.2 UM1發展歷史/64
3.2.3 UM1的特點/65
3.2.4 UM1的視圖/66
3.3 UM1的模型元素/67
3.3.1 UM1的事物/68
3.3.2 UM1中的關係/69
3.4 UM1中的圖/75
3.4.1 外部視圖/75
3.4.2 內部視圖/80
3.5 UM1的元模型結構/86
3.6 UM1建模工具Rationa1Rose/87
3.6.1 Rose的特點/88
3.6.2 Rose簡介/89
3.6.3 Rose的基本操作/90
3.6.4 在Rose環境下建立UM1模型/93
第4章 軟體需求工程/108
4.1 軟體需求工程基礎/108
4.1.1 軟體需求的定義和層次/108
4.1.2 軟體需求工程過程/111
4.1.3 需求工程方法/114
4.2 需求獲取/115
4.2.1 需求獲取的任務和原則/u5
4.2.2 需求獲取的過程/116
4.2.3 需求的表達/120
4.2.4 用逆向溝通改善需求的質量/123
4.3 傳統的分析建模方法/124
4.3.1 數據建模/125
4.3.2 功能建模/127
4.3.3 行為建模/132
4.3.4 數據字典/136
4.3.5 基本加工邏輯說明/139
4.4 面向對象的分析建模方法/142
4.4.1 面向對象分析建模概述/142
4.4.2 識別類或對象/143
4.4.3 識別關係(結構)/149
4.4.4 標識類的屬性和服務/150
4.4.5 分析模型評審/152
4.5 原型化方法/153
4.5.1 軟體原型的分類/153
4.5.2 快速原型開發模型/154
4.5.3 原型開發技術/157
4.6 需求規格說明/159
4.6.工軟體需求規格說明的目標/159
4.6.2 軟體需求規格說明編制的原則/159
4.6.3 軟體需求規格說明模板/161
4.6.4 SRS和DRD的質量要求/163
4.7 軟體需求評審/165
4.7.1 正式的需求評審/165
4.7.2 需求評審中的常見風險/167
4.8 軟體需求管理/167
4.8.1 需求管理的概念/167
4.8.2 需求規格說明的版本控制/168
4.8.3 需求跟蹤/169
4.8.4 需求變更請求的管理/172
第5章 軟體設計工程/175
5.1 軟體設計的目標與準則/175
5.1.1 性能準則/175
5.1.2 可靠性準則/175
5.1.3 成本準則/176
5.1.4 維護準則/176
5.1.5 最終用戶準則/177
5.2 軟體設計工程的任務/177
5.2.1 軟體設計的概念/177
5.2.2 軟體設計的階段與任務/178
5.2.3 軟體設計的過程/179
5.3創建良好設計的原則/180
5.3.1分而治之和模組化/180
5.3.2模組獨立性/181
5.3.3儘量降低耦合性/181
5.3.4儘量提高內聚性/184
5.3.5提高抽象層次/186
5.3.6復用性設計/187
5.3.7靈活性設計/187
5.3.8預防過期/188
5.3.9可移植性設計/188
5.3.10可測試性設計/188
5.3.11防禦性設計/189
5.4傳統的面向過程的設計方法/189
5.4.1結構化設計與結構化分析的關係/190
5.4.2軟體結構及表示工具/190
5.4.3典型的數據流類型和系統結構/194
5.4.4變換流映射/197
5.4.5事務流映射/200
5.4.6軟體模組結構改進的方法/201
5.4.7接口設計/205
5.5面向對象的系統設計/205
5.5.1子系統分解/206
5.5.2問題域部分的設計/208
5.5.3人機互動部分的設計/210
5.5.4任務管理部分的設計/213
5.5.5數據管理部分的設計/214
5.6對象設計/216
5.6.1使用模式設計對象/216
5.6.2接口規格說明設計/220
5.6.3重構對象設計模型/222
5.6.4最佳化對象設計模型/222
5.7處理過程設計/223
5.7.1結構化程式設計/223
5.7.2程式流程圖/224
5.7.3N-S圖/227
5.7.4PAD圖/228
5.7.5程式設計語言PDL/230
5.7.6判定表/230
5.7.7HIPO/232
5.8軟體設計規格說明/232
5.8.1軟體(結構)設計說明(SDD)/232
5.8.2資料庫(頂層)設計說明(DBDD)/233
5.8.3接口設計說明(IDD)/234
5.9軟體設計評審/235
5.9.1概要設計評審的檢查內容/235
5.9.2詳細設計評審的檢查內容/236
第6章體系結構設計與設計模式/238
6.1軟體體系結構的概念/238
6.1.1什麼是體系結構/238
6.1.2體系結構的重要作用/239
6.1.3構件的定義與構件之間的關係/239
6.2體系結構設計與風格/241
6.2.1體系結構設計的過程/241
6.2.2系統環境表示/241
6.2.3體系結構的結構風格/242
6.2.4體系結構的控制模型/247
6.2.5體系結構的模組分解/249
6.3特定領域的軟體體系結構/250
6.3.1類屬模型/250
6.3.2參考模型/251
6.4分散式系統結構/252
6.4.1多處理器體系結構/252
6.4.2客戶機/伺服器體系結構/252
6.4.3分散式對象體系結構/256
6.4.4代理/257
6.4.5聚合和聯邦體系/258
6.5軟體體系結構的評價/260
6.6體系結構描述語言/261
6.7設計模式/262
6.7.1什麼是設計模式/263
6.7.2設計模式分類/264
6.7.3創建型設計模式/264
6.7.4結構型設計模式/271
6.7.5行為型設計模式/281
6.7.6設計模式如何解決設計問題/294
6.7.7如何使用設計模式/298
第7章軟體實現/300
7.1軟體實現的過程與任務/300
7.2程式設計方法概述/301
7.2.1結構化程式設計/302
7.2.2面向對象的程式設計方法/304
7.2.3極限編程/308
7.3編程風格與編碼標準/312
7.3.1源程式文檔化/312
7.3.2數據說明規範化/314
7.3.3程式代碼結構化/315
7.3.4輸入/輸出風格可視化/318
7.3.5編程規範/320
7.4程式語言/324
7.4.1程式語言特性的比較/325
7.4.2程式語言的分類/328
7.4.3程式語言的選擇/334
7.5程式效率與性能分析/335
7.5.1算法對效率的影響/335
7.5.2影響存儲器效率的因素/336
7.5.3影響輸入/輸出的因素/336
7.6程式複雜性/336
7.6.1代碼行度量法/337
7.6.2McCabe度量法/337
7.6.3Henry-Kafura的信息流度量/339
7.6.4Thayer複雜性度量/339
7.6.5Halstead的軟體科學/341
7.6.6軟體複雜性的綜合度量/343
第8章軟體測試工程/344
8.1軟體測試的任務/344
8.1.1軟體測試的目的和定義/344
8.1.2軟體測試的原則/345
8.1.3軟體測試的對象/347
8.1.4測試信息流/347
8.1.5軟體測試的生存周期模型/348
8.1.6軟體的確認和驗證/349
8.1.7軟體測試文檔/349
8.2軟體錯誤/352
8.2.1按錯誤的影響和後果分類/352
8.2.2按錯誤的性質和範圍分類/352
8.2.3按軟體生存周期階段分類/353
8.2.4錯誤統計/354
8.3人工測試/354
8.3.1桌面檢查/354
8.3.2代碼檢查/356
8.3.3走查/358
8.4軟體開發生存周期中的測試活動/359
8.4.1軟體需求分析階段的測試活動/360
8.4.2軟體設計階段的測試活動/361
8.4.3編程及單元測試階段的測試活動/363
8.4.4集成測試階段的測試活動/364
8.4.5系統測試階段的測試活動/366
8.4.6驗收測試/366
8.4.7運行和維護階段的測試活動/367
8.4.8回歸測試/368
8.5面向對象的測試/369
8.5.1面向對象軟體測試的問題/369
8.5.2面向對象軟體測試的模型/371
8.5.3面向對象分析的測試/372
8.5.4面向對象設計的測試/372
8.5.5面向對象編程的測試/373
8.5.6面向對象程式的單元測試/373
8.5.7面向對象程式的集成測試/373
8.5.8面向對象軟體的系統測試/374
8.6單元測試/374
8.6.1單元測試的定義和目標/374
8.6.2單元測試環境/375
8.6.3單元測試策略/376
8.6.4單元測試分析/377
8.6.5面向對象程式的單元測試/379
8.7集成測試/381
8.7.1集成測試的定義和目標/381
8.7.2集成測試環境/381
8.7.3集成測試策略/382
8.7.4集成測試分析/387
8.7.5面向對象程式的集成測試/390
8.8系統測試/391
8.8.1系統測試的定義與目標/391
8.8.2系統測試環境/391
8.8.3系統測試策略/392
8.8.4系統測試分析/400
8.9程式調試/401
8.9.1程式調試的步驟/401
8.9.2幾種主要的調試方法/402
8.9.3調試的原則/404第9章軟體測試用例設計/406
9.1測試用例設計概述/406
9.1.1測試用例的重要性/406
9.1.2測試用例數和軟體規模的關係/407
9.1.3測試用例設計說明的書寫規範/407
9.2軟體測試用例設計方法/409
9.2.1黑盒測試方法(Black-BoxTesting)/409
9.2.2白盒測試方法(White-BoxTesting)/410
9.3白盒測試用例設計方法/411
9.3.1邏輯覆蓋/411
9.3.2判定和循環結構測試/416
9.3.3基本路徑測試/418
9.4黑盒測試用例設計方法/420
9.4.1等價類劃分/420
9.4.2邊界值分析/424
9.4.3判定表法/426
9.4.4因果圖法/428
9.4.5其他黑盒測試用例設計方法/431
9.4.6選擇測試方法的綜合策略及工作
步驟/432
9.5單元測試用例設計/433
9.5.1單元測試用例設計的步驟/433
9.5.2單元測試用例設計方法/434
9.5.3構建類聲明的測試用例/437
9.5.4根據狀態圖構建測試用例/440
9.6集成測試的測試用例設計/442
9.6.1集成測試用例設計的步驟/442
9.6.2基於協作圖生成集成測試用例
設計/443
9.6.3繼承關係的測試用例設計/449
9.7系統測試用例的設計/450
9.7.1基於場景設計測試用例/450
9.7.2基於功能圖設計測試用例/455
9.7.3基於有限狀態機的系統級線索設計測試
用例/457
9.7.4基於UML的系統級線索測試用例
設計/461第10章軟體維護/462
10.1軟體維護的概念/462
10.1.1軟體維護的定義/462
10.1.2影響維護工作量的因素/463
10.1.3軟體維護的策略/464
10.1.4維護成本/465
10.2軟體維護的活動/466
10.2.1維護機構/466
10.2.2軟體維護申請報告/466
10.2.3軟體維護過程模型/467
10.2.4軟體維護的一般工作流程/468
10.2.5維護記錄文檔/469
10.2.6維護評價/469
10.3程式修改的步驟及修改的副作用/470
10.3.1結構化維護與非結構化維護/470
10.3.2軟體維護面臨的問題/471
10.3.3分析和理解程式/472
10.3.4評估修改範圍/474
10.3.5修改程式/474
10.3.6重新驗證程式/476
10.4面向對象軟體的維護/478
10.5軟體可維護性/480
10.5.1可維護性的外部視圖/480
10.5.2影響可維護性的內部質量屬性/481
10.5.3其他可維護性的度量/483
10.6提高可維護性的方法/488
10.6.1建立明確的軟體質量目標和優
先級/488
10.6.2使用提高軟體質量的技術和
工具/488
10.6.3進行明確的質量保證審查/492
10.6.4選擇可維護的程式設計語言/495
10.6.5改進程式的文檔/496
10.7遺留系統的再工程/496
10.7.1遺留系統的演化/496
10.7.2軟體再工程/498
10.7.3遺留系統的現代化改造的過程/501
10.7.4重構與逆向工程/502
10.7.5系統體系結構的重構/505
10.7.6程式理解策略和模型/507
10.7.7影響程式理解的因素及對策/509
參考文獻/511