定 價:¥68.00
作 者: | 胡思康 |
出版社: | 清華大學出版社 |
叢編項: | |
標 簽: | 暫缺 |
ISBN: | 9787302627883 | 出版時間: | 2023-03-01 | 包裝: | 平裝-膠訂 |
開本: | 16開 | 頁數(shù): | 字數(shù): |
第1章 軟件工程概述 1
1.1 軟件工程的發(fā)展歷程 1
1.1.1 軟件危機 1
1.1.2 軟件危機出現(xiàn)的原因 3
1.1.3 軟件的本質(zhì)特性 4
1.1.4 軟件工程的發(fā)展 5
1.1.5 國內(nèi)軟件工程及軟件產(chǎn)業(yè)的發(fā)展 6
1.2 軟件工程的概念 7
1.2.1 軟件工程的定義 7
1.2.2 軟件工程的目標 9
1.2.3 軟件工程的實施原則 10
1.2.4 軟件工程的基本原理 11
1.3 軟件與軟件過程 13
1.3.1 軟件的概念 13
1.3.2 軟件的分類 15
1.3.3 軟件生命周期 16
1.3.4 軟件過程 17
1.4 軟件過程模型 19
1.4.1 瀑布模型 19
1.4.2 原型模型 20
1.4.3 增量模型 21
1.4.4 螺旋模型 22
1.4.5 噴泉模型 23
1.4.6 敏捷過程模型 23
1.4.7 漸進交付迭代模型 26
1.4.8 軟件過程模型的比較 28
1.5 軟件開發(fā)方法 28
1.5.1 結構化開發(fā)方法 29
1.5.2 面向?qū)ο箝_發(fā)方法 29
1.6 案例描述 30
1.6.1 簡歷信息自動獲取和查詢系統(tǒng) 30
1.6.2 試卷自動生成系統(tǒng) 31
1.7 本章小結 32
習題 33
第2章 軟件需求工程 35
2.1 軟件需求的基本概念 35
2.1.1 需求分析的任務 35
2.1.2 需求分析的原則 36
2.1.3 需求分析的內(nèi)容 37
2.1.4 需求分析的方法 38
2.2 可行性分析 39
2.2.1 可行性分析的內(nèi)容 40
2.2.2 系統(tǒng)流程圖 41
2.3 需求工程的過程 42
2.3.1 需求工程中的參與人員 42
2.3.2 需求工程中的活動 43
2.3.3 需求工程的管理 44
2.4 需求獲取技術 45
2.5 結構化需求分析和建模 48
2.5.1 結構化需求分析概述 48
2.5.2 面向數(shù)據(jù)的數(shù)據(jù)建模 49
2.5.3 面向數(shù)據(jù)流的功能建模 50
2.5.4 面向狀態(tài)轉(zhuǎn)換的行為建模 56
2.6 數(shù)據(jù)字典 58
2.6.1 數(shù)據(jù)字典的編寫要求 58
2.6.2 數(shù)據(jù)字典的定義 59
2.7 案例——“簡歷信息自動獲取和查詢系統(tǒng)”的需求建模 61
2.7.1 數(shù)據(jù)建?!狤-R圖描述 61
2.7.2 功能建模——數(shù)據(jù)流圖 61
2.7.3 行為建?!獱顟B(tài)轉(zhuǎn)換圖 63
2.7.4 加工邏輯——PDL語言的描述 63
2.7.5 數(shù)據(jù)字典 63
2.8 需求評審 65
2.8.1 軟件需求規(guī)格說明 65
2.8.2 需求評審標準及需求驗證 68
2.8.3 需求變更管理 70
2.9 本章小結 71
習題 72
第3章 軟件設計基礎 75
3.1 軟件設計概述 75
3.1.1 軟件設計與軟件需求 75
3.1.2 軟件設計的任務 76
3.1.3 軟件設計的原則 78
3.2 軟件體系結構設計 79
3.2.1 體系結構設計概述 79
3.2.2 以數(shù)據(jù)為中心的數(shù)據(jù)倉庫模型 80
3.2.3 客戶端/服務器模式的分布式結構 81
3.2.4 層次模型 83
3.2.5 MVC模型 84
3.3 模塊化設計 85
3.3.1 軟件模塊化與分解 85
3.3.2 抽象 86
3.3.3 信息隱藏 87
3.3.4 模塊獨立性 88
3.3.5 啟發(fā)式規(guī)則 91
3.4 界面設計 94
3.4.1 界面設計的任務 94
3.4.2 界面設計的原則 95
3.4.3 界面設計的特性 96
3.5 軟件設計評審 96
3.5.1 軟件設計規(guī)格說明 96
3.5.2 軟件設計評審標準 100
3.5.3 軟件設計驗證 101
3.6 本章小結 102
習題 103
第4章 結構化設計方法 105
4.1 結構化設計方法概述 105
4.2 面向數(shù)據(jù)流的設計方法 106
4.2.1 層次圖和結構圖 106
4.2.2 變換分析法 108
4.2.3 事務分析法 111
4.2.4 混合分析法 113
4.3 案例——簡歷信息自動獲取和查詢系統(tǒng)的數(shù)據(jù)流設計方法 114
4.3.1 用變換分析法進行設計 114
4.3.2 用事務分析法進行設計 115
4.3.3 兩種方法的比較 116
4.4 結構化詳細設計的工具 117
4.4.1 程序流程圖 117
4.4.2 盒圖 118
4.4.3 問題分析圖 119
4.4.4 判定樹 121
4.4.5 判定表 121
4.4.6 詳細設計工具的比較 123
4.5 本章小結 124
習題 124
第5章 軟件實現(xiàn) 127
5.1 軟件實現(xiàn)的任務 127
5.2 程序設計語言 128
5.2.1 程序設計語言的分類 128
5.2.2 程序設計語言的特性 129
5.2.3 選擇程序設計語言 130
5.3 程序設計風格 131
5.3.1 程序編排和組織的準則 132
5.3.2 程序設計的效率 136
5.4 軟件重用 138
5.5 代碼評審 139
5.6 本章小結 142
習題 143
第6章 軟件測試 146
6.1 軟件測試基礎 146
6.1.1 軟件測試概念 146
6.1.2 軟件測試過程模型 147
6.1.3 軟件測試原則 149
6.1.4 軟件測試在軟件開發(fā)各階段的工作流程 151
6.1.5 軟件測試信息流 153
6.1.6 軟件測試技術分類 153
6.2 白盒測試 155
6.2.1 邏輯覆蓋 155
6.2.2 循環(huán)測試 158
6.2.3 路徑測試 160
6.3 黑盒測試 163
6.3.1 等價類劃分 164
6.3.2 邊界值分析 165
6.3.3 錯誤推測法 166
6.3.4 因果圖法 167
6.4 白盒測試和黑盒測試的比較 169
6.4.1 應用角度的不同 169
6.4.2 白盒測試的優(yōu)點與不足 170
6.4.3 黑盒測試的優(yōu)點與不足 170
6.5 軟件測試策略 170
6.5.1 單元測試 171
6.5.2 集成測試 173
6.5.3 確認測試 177
6.5.4 系統(tǒng)測試 178
6.6 調(diào)試 180
6.6.1 軟件調(diào)試過程 180
6.6.2 軟件調(diào)試方法 181
6.7 持續(xù)集成 182
6.7.1 持續(xù)集成的概念 182
6.7.2 持續(xù)集成的原則 183
6.8 軟件測試報告 184
6.8.1 軟件測試說明 184
6.8.2 軟件測試報告 185
6.9 本章小結 186
習題 187
第7章 統(tǒng)一建模語言UML 190
7.1 UML的發(fā)展 190
7.1.1 UML的產(chǎn)生 190
7.1.2 UML的構成 191
7.1.3 UML的特點 192
7.2 面向?qū)ο蠡A 192
7.2.1 面向?qū)ο蟮幕靖拍?192
7.2.2 共享 198
7.3 UML視圖 198
7.4 UML的圖和模型元素 200
7.4.1 用例圖 200
7.4.2 類圖 202
7.4.3 包圖 203
7.4.4 狀態(tài)圖 204
7.4.5 活動圖 204
7.4.6 順序圖 206
7.4.7 協(xié)作圖 206
7.4.8 構件圖 207
7.4.9 配置圖 208
7.5 UML的關系 209
7.5.1 關聯(lián)關系 209
7.5.2 泛化關系 211
7.5.3 依賴關系 215
7.5.4 實現(xiàn)關系 216
7.6 UML的通用機制 216
7.6.1 修飾 217
7.6.2 注釋 217
7.6.3 規(guī)格說明 217
7.6.4 擴展機制 217
7.7 基于UML的軟件過程 219
7.8 本章小結 221
習題 222
第8章 面向?qū)ο蠓治觥 ?24
8.1 面向?qū)ο蠓治龈攀?224
8.1.1 傳統(tǒng)軟件過程中的不足 224
8.1.2 面向?qū)ο蟮奶攸c 225
8.1.3 面向?qū)ο蠓治龅幕具^程 226
8.1.4 面向?qū)ο蠓治龅?類模型 226
8.1.5 靜態(tài)模型的5個層次 227
8.2 建立功能模型(用例模型) 228
8.2.1 識別參與者 229
8.2.2 識別用例 229
8.2.3 識別用例間關系 231
8.2.4 識別用例間行為 231
8.2.5 用例描述文檔 233
8.3 建立靜態(tài)模型(對象模型) 234
8.3.1 識別類與對象 234
8.3.2 劃分主題 236
8.3.3 確定結構 237
8.3.4 確定屬性 238
8.3.5 確定服務 238
8.3.6 類圖描述文檔 239
8.3.7 包圖描述文檔 240
8.4 建立動態(tài)模型 241
8.4.1 建立順序圖及其描述文檔 241
8.4.2 建立狀態(tài)圖及其描述文檔 243
8.4.3 建立協(xié)作圖及其描述文檔 244
8.4.4 建立活動圖及其描述文檔 245
8.5 “會議中心系統(tǒng)”的面向?qū)ο蠓治霭咐芯?246
8.5.1 建立功能模型——用例分析 247
8.5.2 建立靜態(tài)模型——5層結構 247
8.5.3 建立動態(tài)模型——交互行為 250
8.6 本章小結 251
習題 251
第9章 面向?qū)ο笤O計 254
9.1 面向?qū)ο笤O計概述 254
9.1.1 面向?qū)ο蠓治雠c設計的關系 254
9.1.2 面向?qū)ο笤O計原則 255
9.2 精化類及類間關系 256
9.2.1 設計類的屬性 256
9.2.2 設計類的方法 257
9.2.3 設計類間泛化關系 257
9.2.4 優(yōu)化設計 259
9.3 數(shù)據(jù)設計 261
9.3.1 基于關系數(shù)據(jù)庫的數(shù)據(jù)設計 261
9.3.2 基于其他方式的數(shù)據(jù)設計 264
9.4 人機交互設計 264
9.5 建立實現(xiàn)模型 265
9.5.1 構件圖及其描述文檔 265
9.5.2 配置圖及其描述文檔 267
9.6 設計模式簡介 268
9.6.1 概述 268
9.6.2 Singleton模式 269
9.6.3 Abstract Factory模式 271
9.6.4 Mediator模式 272
9.6.5 Adapter模式 275
9.6.6 Iterator模式 277
9.6.7 State模式 279
9.7 面向?qū)ο蟮臏y試 281
9.7.1 面向?qū)ο鬁y試概述 281
9.7.2 面向?qū)ο蟮念悳y試 282
9.7.3 基于過程的面向?qū)ο髥卧獪y試 287
9.8 本章小結 288
習題 289
第10章 軟件維護 292
10.1 軟件維護概述 292
10.1.1 軟件維護的任務 292
10.1.2 軟件維護的特點 293
10.1.3 軟件維護的分類 293
10.2 軟件維護過程 294
10.2.1 軟件維護方式 295
10.2.2 軟件維護管理的基本內(nèi)容 296
10.2.3 維護中存在的問題 301
10.2.4 維護活動記錄 302
10.3 軟件的可維護性 302
10.3.1 可維護性因素 302
10.3.2 提高軟件的可維護性 303
10.4 逆向工程 306
10.5 軟件維護評審 307
10.5.1 軟件維護規(guī)格說明文檔 307
10.5.2 軟件維護評審 310
10.6 本章小結 311
習題 312
第11章 軟件項目管理 314
11.1 軟件項目管理概述 314
11.1.1 軟件項目管理的特點和內(nèi)容 314
11.1.2 軟件項目管理目標 315
11.1.3 軟件項目管理的4P觀點 316
11.2 軟件項目規(guī)模度量 317
11.2.1 代碼行技術 318
11.2.2 功能點計算 319
11.2.3 代碼行與功能點間的轉(zhuǎn)換 322
11.3 軟件項目估算 322
11.3.1 代碼行和功能點的其他估算模型 323
11.3.2 專家估算模型 323
11.3.3 Putnam模型 324
11.3.4 COCOMO模型 324
11.3.5 項目估算模型的小結 326
11.4 項目進度管理 327
11.4.1 項目進度控制 327
11.4.2 甘特圖 328
11.4.3 工程網(wǎng)絡圖 329
11.5 項目風險管理 331
11.5.1 軟件風險概念 331
11.5.2 風險管理過程 331
11.6 項目質(zhì)量管理 335
11.6.1 軟件質(zhì)量因素 335
11.6.2 軟件質(zhì)量保證活動 339
11.6.3 軟件質(zhì)量保證計劃 340
11.7 軟件配置管理 341
11.7.1 軟件配置項 342
11.7.2 配置管理過程 342
11.7.3 軟件配置管理計劃 345
11.8 項目人員組織管理 346
11.8.1 團隊組織 347
11.8.2 團隊組織方式 347
11.9 軟件能力成熟度模型 349
11.9.1 基本概念 349
11.9.2 軟件能力成熟度模型等級 350
11.9.3 關鍵過程域 351
11.10 本章小結 352
習題 353
參考文獻 356
X
軟件工程基礎(第4版)
XVII
目錄