圖書簡介
本書可以作為大專院校計算機科學系和計算機工程系的本科生和研究生教材,也可以作為計算機軟體人員和計算機用戶的參考書。
圖書目錄
第1章軟體工程概述/1
1.1軟體工程的發展歷程1
1.1.1軟體危機1
1.1.3軟體工程的發展4
1.2軟體工程的概念5
1.2.1軟體工程的定義5
1.2.2軟體工程的目標6
1.2.3軟體工程的實施原則8
1.2.4軟體工程的基本原理9
1.3軟體與軟體過程10
1.3.1軟體的概念11
1.3.2軟體的分類12
1.3.4軟體過程15
1.4.1瀑布模型16
1.4.2原型模型17
1.4.3增量模型18
1.4.5噴泉模型20
1.4.6敏捷過程模型20
1.4.74GT過程模型22
1.4.8基於構件的開發模型23
1.4.9Rational統一建模過程24
1.5軟體開發方法26
1.5.1結構化開發方法27
1.5.2面向對象開發方法27〖1〗軟體工程基礎(第2版)目錄[3]〖3〗1.6案例描述28
1.6.1簡歷信息自動獲取和查詢系統28
1.6.2試卷自動生成系統29
1.7本章小結30
習題31
第2章軟體需求工程/33
2.1軟體需求的基本概念33
2.1.1需求分析的任務33
2.1.2需求分析的原則34
2.1.3需求分析的內容35
2.2需求工程的過程36
2.2.1需求工程中的參與人員36
2.2.2可行性研究37
2.2.3需求工程過程中的活動39
2.2.4需求工程的管理40
2.3需求獲取技術41
2.4結構化需求分析和建模43
2.4.1結構化需求分析概述44
2.4.2面向數據的數據建模44
2.4.3面向數據流的功能建模46
2.4.4面向狀態轉換的行為建模50
2.4.5數據字典51
2.4.6加工邏輯53
2.5案例——“簡歷自動獲取和查詢系統”的需求建模54
2.5.1數據建模——ER圖描述54
2.5.2功能建模——數據流圖55
2.5.4數據字典57
2.5.5加工邏輯——PDL語言的描述57
2.6需求評審58
2.6.1軟體需求規格說明文檔58
2.6.2需求評審標準及需求驗證61
2.6.3需求變更管理63
2.7本章小結64
習題64
第3章軟體設計基礎/66
3.1軟體設計概述66
3.1.1軟體設計與軟體需求66
3.1.2軟體設計的任務67
3.1.3軟體設計的原則69
3.2軟體體系結構設計70
3.2.1體系結構設計概述70
3.2.2以數據為中心的數據倉庫模型70
3.2.3客戶端/伺服器模式的分散式結構71
3.2.4層次模型73
3.2.5管道與過濾器模型74
3.3模組化設計75
3.3.1軟體模組化與分解75
3.3.2抽象76
3.3.3信息隱藏76
3.3.4模組獨立性77
3.4界面設計82
3.4.1界面設計的任務82
3.4.2界面設計的原則83
3.4.3界面設計的特性84
3.4.4MVC模型84
3.5軟體設計評審85
3.5.1軟體設計規格說明文檔85
3.5.2軟體設計評審標準89
3.5.3軟體設計驗證90
3.6本章小結91
習題92
第4章結構化設計方法/93
4.1結構化設計方法概述93
4.2面向數據流的設計方法94
4.2.1層次圖和結構圖94
4.2.3事務分析法100
4.2.4混合分析法101
4.3面向數據的設計方法102
4.3.1Jackson圖102
4.3.2Jackson系統開發方法103
4.4案例——“簡歷自動獲取和查詢系統”的數據流設計方法106
4.4.1用變換分析法進行設計106
4.4.2用事務分析法進行設計107
4.4.3兩種方法的比較108
4.5結構化詳細設計的工具109
4.5.2盒圖(NS圖)110
4.5.3問題分析圖(PAD圖)111
4.5.4判定樹113
4.5.5判定表113
4.5.6詳細設計工具的比較114
4.6本章小結115
習題116
第5章軟體實現/118
5.1程式設計語言118
5.1.1程式設計語言的分類118
5.1.2程式設計語言的特性119
5.1.3選擇程式設計語言120
5.2程式設計風格122
5.2.1程式編排和組織的準則122
5.2.2程式設計的效率126
5.3代碼復用127
5.4代碼評審129
5.5本章小結132
習題133
第6章軟體測試/136
6.1軟體測試基礎136
6.1.1軟體測試概念136
6.1.2軟體測試過程模型137
6.1.3軟體測試原則139
6.1.4軟體測試在軟體開發各階段的工作流程141
6.1.5軟體測試信息流143
6.1.6軟體測試技術分類143
6.2白盒測試145
6.2.1邏輯覆蓋145
6.2.2循環測試148
6.2.3路徑測試149
6.3黑盒測試152
6.3.1等價類劃分152
6.3.2邊界值分析154
6.3.4因果圖法155
6.4白盒測試和黑盒測試的比較157
6.5軟體測試策略158
6.5.1單元測試158
6.5.2集成測試161
6.5.3確認測試164
6.5.4系統測試165
6.6調試167
6.6.1軟體調試過程167
6.6.2軟體調試方法168
6.7軟體測試報告169
6.7.1軟體測試說明169
6.7.2軟體測試報告170
6.8本章小結171
習題172
第7章UML統一建模語言/174
7.1UML的發展174
7.1.1UML的產生174
7.1.2UML的構成175
7.1.3UML的特點176
7.2面向對象的基本概念176
7.3UML視圖182
7.4UML的圖和模型元素183
7.4.1用例圖183
7.4.2類圖185
7.4.3包圖186
7.4.4狀態圖187
7.4.5活動圖187
7.4.6順序圖189
7.4.7協作圖190
7.4.8構件圖191
7.4.9配置圖192
7.5UML的關係192
7.5.1關聯關係193
7.5.2泛化關係196
7.5.3依賴關係199
7.5.4實現關係200
7.6UML的通用機制200
7.6.1修飾201
7.6.2注釋201
7.6.3規格說明201
7.6.4擴展機制202
7.7基於UML的軟體過程203
7.8本章小結205
習題206
第8章面向對象分析/207
8.1面向對象分析概述207
8.1.1傳統軟體過程中的不足207
8.1.2面向對象的特點208
8.1.3面向對象分析的基本過程209
8.1.5靜態模型的5個層次210
8.2建立功能模型(用例模型)211
8.2.1識別參與者212
8.2.2識別用例212
8.2.3識別用例間關係214
8.2.4用例描述文檔215
8.3建立靜態模型(對象模型)216
8.3.1識別類與對象216
8.3.2劃分主題218
8.3.3確定結構219
8.3.4確定屬性220
8.3.5確定服務221
8.3.6類圖描述文檔221
8.3.7包圖描述文檔222
8.4建立動態模型223
8.4.1建立順序圖及其描述文檔223
8.4.2建立狀態圖及其描述文檔225
8.4.3建立協作圖及其描述文檔226
8.4.4建立活動圖及其描述文檔227
8.5本章小結229
習題229
第9章面向對象設計/231
9.1面向對象設計概述231
9.1.1面向對象分析與設計的關係231
9.1.2面向對象設計原則232
9.2精化類及類間關係233
9.2.1設計類的屬性233
9.2.2設計類的方法234
9.2.3設計類間泛化關係235
9.2.4設計關聯類236
9.3數據設計237
9.3.1基於關係資料庫的數據設計237
9.3.2基於其他方式的數據設計239
9.4人機互動設計240
9.5建立實現模型241
9.5.1構件圖及其描述文檔241
9.5.2配置圖及其描述文檔243
9.6設計模式簡介244
9.6.1概述244
9.6.3Abstract Factory模式247
9.6.4Mediator模式249
9.6.5Adapter模式251
9.6.6Iterator模式253
9.6.7State模式256
9.7面向對象的測試258
9.7.1面向對象測試概述258
9.7.2面向對象的單元測試259
9.8本章小結261
習題262
第10章軟體維護/265
10.1軟體維護概述265
10.1.1軟體維護的任務265
10.1.2軟體維護的特點266
10.1.3軟體維護的分類266
10.2軟體維護過程267
10.2.1軟體維護方式268
10.2.2軟體維護管理的基本內容269
10.2.3維護中存在的問題273
10.2.4維護活動記錄274
10.3軟體的可維護性275
10.3.1可維護性因素275
10.3.2提高軟體的可維護性276
10.4逆向工程278
10.5本章小結280
習題281
第11章軟體項目管理/282
11.1軟體項目管理概述282
11.1.1軟體項目管理的特點和內容282
11.1.2軟體項目管理目標283
11.1.3軟體項目管理的4P觀點284
11.2軟體項目規模度量285
11.2.1代碼行技術286
11.2.2功能點計算287
11.2.3代碼行與功能點間的轉換290
11.3軟體項目估算291
11.3.1代碼行和功能點的其他估算模型291
11.3.2專家估算模型291
11.3.3Putnam模型292
11.3.5項目估算模型的小結295
11.4項目進度管理295
11.4.1項目進度控制295
11.4.2甘特圖296
11.4.3工程網路圖297
11.5項目風險管理298
11.5.1軟體風險概念299
11.5.2風險管理過程299
11.6項目質量管理302
11.6.1軟體質量因素303
11.6.2軟體質量保證活動307
11.6.3軟體質量保證計畫308
11.7軟體配置管理309
11.7.1軟體配置項310
11.7.2配置管理過程310
11.7.3軟體配置管理計畫313
11.8項目人員組織管理315
11.8.1團隊組織315
11.8.2團隊組織方式315
11.9.1基本概念317
11.9.2軟體能力成熟度模型等級319
11.9.3關鍵過程域319
11.10本章小結320
習題321
參考文獻/3231.6案例描述28
1.6.1簡歷信息自動獲取和查詢系統28
1.6.2試卷自動生成系統29
1.7本章小結30
習題31
第2章軟體需求工程/33
2.1軟體需求的基本概念33
2.1.1需求分析的任務33
2.1.2需求分析的原則34
2.1.3需求分析的內容35
2.2需求工程的過程36
2.2.1需求工程中的參與人員36
2.2.2可行性研究37
2.2.3需求工程過程中的活動39
2.2.4需求工程的管理40
2.3需求獲取技術41
2.4結構化需求分析和建模43
2.4.1結構化需求分析概述44
2.4.2面向數據的數據建模44
2.4.3面向數據流的功能建模46
2.4.4面向狀態轉換的行為建模50
2.4.5數據字典51
2.4.6加工邏輯53
2.5案例——“簡歷自動獲取和查詢系統”的需求建模54
2.5.1數據建模——ER圖描述54
2.5.2功能建模——數據流圖55
2.5.4數據字典57
2.5.5加工邏輯——PDL語言的描述57
2.6需求評審58
2.6.1軟體需求規格說明文檔58
2.6.2需求評審標準及需求驗證61
2.6.3需求變更管理63
2.7本章小結64
習題64第3章軟體設計基礎/66
3.1軟體設計概述66
3.1.1軟體設計與軟體需求66
3.1.2軟體設計的任務67
3.1.3軟體設計的原則69
3.2軟體體系結構設計70
3.2.1體系結構設計概述70
3.2.2以數據為中心的數據倉庫模型70
3.2.3客戶端/伺服器模式的分散式結構71
3.2.4層次模型73
3.2.5管道與過濾器模型74
3.3模組化設計75
3.3.1軟體模組化與分解75
3.3.2抽象76
3.3.3信息隱藏76
3.3.4模組獨立性77
3.4界面設計82
3.4.1界面設計的任務82
3.4.2界面設計的原則83
3.4.3界面設計的特性84
3.4.4MVC模型84
3.5軟體設計評審85
3.5.1軟體設計規格說明文檔85
3.5.2軟體設計評審標準90
3.5.3軟體設計驗證91
3.6本章小結92
習題93
第4章結構化設計方法/94
4.1結構化設計方法概述94
4.2面向數據流的設計方法95
4.2.1層次圖和結構圖95
4.2.3事務分析法101
4.2.4混合分析法102
4.3面向數據的設計方法103
4.3.1Jackson圖103
4.3.2Jackson系統開發方法104
4.4案例——“簡歷自動獲取和查詢系統”的數據流設計方法107
4.4.1用變換分析法進行設計107
4.4.2用事務分析法進行設計108
4.4.3兩種方法的比較109
4.5結構化詳細設計的工具110
4.5.2盒圖(NS圖)111
4.5.3問題分析圖(PAD圖)112
4.5.4判定樹114
4.5.5判定表114
4.5.6詳細設計工具的比較115
4.6本章小結116
習題117
第5章軟體實現/119
5.1程式設計語言119
5.1.1程式設計語言的分類119
5.1.2程式設計語言的特性120
5.1.3選擇程式設計語言121
5.2程式設計風格123
5.2.1程式編排和組織的準則123
5.2.2程式設計的效率127
5.3代碼復用128
5.4代碼評審130
5.5本章小結133
習題134
第6章軟體測試/137
6.1軟體測試基礎137
6.1.1軟體測試概念137
6.1.2軟體測試過程模型138
6.1.3軟體測試原則140
6.1.4軟體測試在軟體開發各階段的工作流程142
6.1.5軟體測試信息流144
6.1.6軟體測試技術分類144
6.2白盒測試146
6.2.1邏輯覆蓋146
6.2.2循環測試149
6.2.3路徑測試150
6.3黑盒測試153
6.3.1等價類劃分153
6.3.2邊界值分析155
6.3.4因果圖法156
6.4白盒測試和黑盒測試的比較158
6.5軟體測設策略159
6.5.1單元測試159
6.5.2集成測試162
6.5.3確認測試165
6.5.4系統測試166
6.6調試168
6.6.1軟體調試過程168
6.6.2軟體調試方法169
6.7軟體測試報告170
6.7.1軟體測試說明170
6.7.2軟體測試報告171
6.8本章小結172
習題173
第7章UML統一建模語言/175
7.1UML的發展175
7.1.1UML的產生175
7.1.2UML的構成176
7.1.3UML的特點177
7.2面向對象的基本概念177
7.3UML視圖183
7.4UML的圖和模型元素184
7.4.1用例圖184
7.4.2類圖186
7.4.3包圖187
7.4.4狀態圖188
7.4.5活動圖188
7.4.6順序圖190
7.4.7協作圖191
7.4.8構件圖192
7.4.9配置圖193
7.5UML的關係193
7.5.1關聯關係194
7.5.2泛化關係197
7.5.3依賴關係200
7.5.4實現關係201
7.6UML的通用機制201
7.6.1修飾202
7.6.2注釋202
7.6.3規格說明202
7.6.4擴展機制203
7.7基於UML的軟體過程204
7.8本章小結206
習題207
8.1面向對象分析概述208
8.1.1傳統軟體過程中的不足208
8.1.2面向對象的特點209
8.1.3面向對象分析的基本過程210
8.1.4面向對象分析的3類模型210
8.1.5靜態模型的5個層次211
8.2建立功能模型(用例模型)212
8.2.1識別參與者213
8.2.2識別用例213
8.2.3識別用例間關係215
8.2.4用例描述文檔216
8.3建立靜態模型(對象模型)217
8.3.1識別類與對象217
8.3.2劃分主題219
8.3.3確定結構220
8.3.4確定屬性221
8.3.5確定服務222
8.3.6類圖描述文檔222
8.3.7包圖描述文檔223
8.4建立動態模型224
8.4.1建立順序圖及其描述文檔224
8.4.2建立狀態圖及其描述文檔226
8.4.3建立協作圖及其描述文檔227
8.4.4建立活動圖及其描述文檔228
8.5本章小結230
習題230
第9章面向對象設計/232
9.1面向對象設計概述232
9.1.1面向對象分析與設計的關係232
9.1.2面向對象設計原則233
9.2精化類及類間關係234
9.2.1設計類的屬性234
9.2.2設計類的方法235
9.2.3設計類間泛化關係236
9.2.4設計關聯類237
9.3數據設計238
9.3.1基於關係資料庫的數據設計238
9.3.2基於其他方式的數據設計240
9.4人機互動設計241
9.5建立實現模型242
9.5.1構件圖及其描述文檔242
9.5.2配置圖及其描述文檔244
9.6設計模式簡介245
9.6.1概述245
9.6.3Abstract Factory模式248
9.6.4Mediator模式250
9.6.5Adapter模式252
9.6.6Iterator模式254
9.6.7State模式257
9.7面向對象的測試259
9.7.1面向對象測試概述259
9.7.2面向對象的單元測試260
9.8本章小結262
習題263
第10章軟體維護/266
10.1軟體維護概述266
10.1.1軟體維護的任務266
10.1.2軟體維護的特點267
10.1.3軟體維護的分類267
10.2軟體維護過程268
10.2.1軟體維護方式269
10.2.2軟體維護管理的基本內容270
10.2.3維護中存在的問題274
10.2.4維護活動記錄275
10.3軟體的可維護性276
10.3.1可維護性因素276
10.3.2提高軟體的可維護性277
10.4逆向工程279
10.5本章小結281
習題282
第11章軟體項目管理/283
11.1軟體項目管理概述283
11.1.1軟體項目管理的特點和內容283
11.1.2軟體項目管理目標284
11.1.3軟體項目管理的4P觀點285
11.2軟體項目規模度量286
11.2.1代碼行技術287
11.2.2功能點計算288
11.2.3代碼行與功能點間的轉換291
11.3軟體項目估算292
11.3.1代碼行和功能點的其他估算模型292
11.3.2專家估算模型292
11.3.3Putnam模型293
11.3.5項目估算模型的小結296
11.4項目進度管理296
11.4.1項目進度控制296
11.4.2甘特圖297
11.4.3工程網路圖298
11.5項目風險管理299
11.5.1軟體風險概念300
11.5.2風險管理過程300
11.6項目質量管理303
11.6.1軟體質量因素304
11.6.2軟體質量保證活動308
11.6.3軟體質量保證計畫309
11.7軟體配置管理310
11.7.1軟體配置項311
11.7.2配置管理過程311
11.7.3軟體配置管理計畫314
11.8項目人員組織管理316
11.8.1團隊組織316
11.8.2團隊組織方式316
11.9.1基本概念318
11.9.2軟體能力成熟度模型等級320
11.9.3關鍵過程域320
11.10本章小結321
習題322
參考文獻/324