複製鏈接
請複製以下鏈接發送給好友

軟件工程

(2014年西安電子科技大學出版社出版的圖書)

鎖定
《軟件工程》是2014年西安電子科技大學出版社出版的圖書,作者是張秋餘、張聚禮、柯銘、張紅、馬威。
中文名
軟件工程
作    者
張秋餘 張聚禮 柯銘 張紅 馬威
出版社
西安電子科技大學出版社
出版時間
2014年12月
ISBN
978-7-5606-3510-1

軟件工程內容簡介

本書結合軟件產業現狀,較為全面地介紹了軟件工程的基本概念、原理和方法,以期培養學生在理論及應用上的系統整合能力以及從系統的角度看待整個軟件項目的能力。
本書共14章。第1~6章主要介紹了軟件工程學與傳統軟件工程方法的基本理論,主要包括軟件工程的策劃、分析、設計、實現、測試和維護等工作;第7~13章主要介紹了面向對象軟件工程,結合軟件統一過程模型,從面向對象範型出發對軟件工程進行重新演繹,全面、系統、清晰地介紹了面向對象軟件工程的基本概念、原理、方法和工具,並將考勤系統完整實例貫穿於面向對象軟件開發的整個過程;第14章介紹了當今比較流行的現代軟件工程軟件開發方法。
本書可以作為計算機科學與技術、軟件工程相關專業本科生或研究生的教材,也可以作為軟件工程領域專業人士的參考書籍。 [1] 

軟件工程圖書目錄

第1章 軟件工程學概論 1
1.1 軟件的基本概念 1
1.1.1 軟件與軟件特性 1
1.1.2 軟件的分類 2
1.2 軟件危機 4
1.3 軟件工程 5
1.3.1 軟件工程的基本原理 6
1.3.2 軟件工程學科包含的領域 7
1.4 軟件工程的方法、工具與環境 8
1.4.1 軟件工程的方法、工具與環境 8
1.4.2 軟件開發的基本策略 11
1.5 軟件過程與軟件生命週期 12
1.5.1 軟件過程 12
1.5.2 軟件生命週期的各個階段 13
1.6 常見的軟件過程模型 16
1.6.1 瀑布模型 16
1.6.3 演化模型 18
1.6.4 螺旋模型 19
1.6.5 噴泉模型 20
1.7 小結 21
習題1 22
第2章 項目分析與軟件需求分析 23
2.1 軟件項目的問題定義 23
2.2 軟件項目可行性分析 24
2.3 軟件系統的需求 27
2.3.1 功能需求 27
2.3.2 非功能需求 28
2.3.3 軟件需求分析的風險 30
2.4 用户需求獲取 31
2.5 軟件需求文檔與規格説明 33
2.5.1 自然語言描述 33
2.5.2 結構化描述 34
2.5.3 軟件需求文檔 35
2.7 數據流圖 38
2.7.1 數據流圖的符號 38
2.7.2 設計數據流圖的步驟和示例 39
2.7.3 數據流圖中命名的可理解性 41
2.7.4 數據流圖的用途 42
2.7.5 數據流圖中的數據字典 43
2.8 實體-聯繫圖 46
2.9 需求分析中使用的其他圖形工具 48
2.10 面向數據流的建模 51
2.11 需求有效性驗證 53
2.12 實例分析—教材徵訂業務分析 54
2.13 小結 58
習題2 58
第3章 軟件總體設計 60
3.1 總體設計 60
3.2 軟件總體設計原理 64
3.2.1 設計原理 64
3.3 描繪軟件結構的圖形工具 73
3.3.1 層次圖和HIPO圖 73
3.3.2 軟件結構圖 74
3.4 映射數據流到軟件結構 75
3.4.1 變換流 75
3.4.2 事務流 76
3.4.3 變換映射(變換分析) 76
3.4.4 事務映射(事務分析) 78
3.4.5 設計優化—精化軟件結構 79
3.5 數據庫結構設計過程 80
3.6 實例分析 81
3.7 小結 83
習題3 84
第4章 軟件詳細設計 85
4.1 結構化程序設計 86
4.1.1 結構化的控制結構 86
4.1.2 結構化程序設計的實現方法 87
4.1.3 結構化程序設計的特點 88
4.2 用户界面設計 88
4.2.1 黃金規則 89
4.2.2 用户界面的分析與設計 90
4.2.3 界面分析 92
4.2.4 界面設計步驟 94
4.3 程序算法設計工具 96
4.3.1 圖形化設計工具 97
4.3.2 表格式設計表示 101
4.3.3 程序設計語言 102
4.3.4 程序算法設計工具的比較 103
4.4 面向數據結構的設計方法 104
4.4.1 Jackson數據結構圖 104
4.4.2 改進的Jackson圖 105
4.4.3 Jackson方法的設計過程 105
4.5 程序複雜度的概念及度量方法 108
4.6 小結 111
習題4 111
第5章 軟件實現 113
5.1 軟件編碼 113
5.1.1 編碼目的 113
5.1.2 程序設計語言的選擇 114
5.1.3 良好的編程實踐 115
5.1.4 程序員的基本素質 117
5.2 軟件測試基礎 118
5.3 測試設計和管理 120
5.3.1 錯誤曲線 120
5.3.2 軟件測試配置 120
5.4 軟件測試過程 124
5.4.1 軟件測試基本原則 125
5.4.2 軟件測試的步驟、測試信息流 126
5.4.3 軟件測試組織與人員 127
5.5 軟件測試的基本方法 128
5.5.1 軟件測試方法與技術 128
5.5.2 軟件測試的誤區 130
5.6 軟件測試策略 132
5.6.1 測試策略 132
5.6.2 單元測試 133
5.6.3 集成測試(組裝測試) 135
5.6.4 確認測試(有效性測試) 139
5.6.5 系統測試與驗收測試 140
5.7 白盒測試 142
5.7.1 邏輯覆蓋法 142
5.7.2 基本路徑測試法 146
5.8 黑盒測試 149
5.8.1 等價類劃分法 149
5.8.3 錯誤推測法 151
5.8.4 狀態測試法 151
5.9 迴歸測試 152
5.10 軟件調試 153
5.10.1 軟件調試的目的與原則 154
5.10.2 軟件調試技術 154
5.10.3 調試技巧 156
5.11 小結 156
習題5 156
第6章 軟件維護 159
6.1 軟件維護的基本概念 159
6.2 軟件維護的任務和分類 160
6.3 軟件維護過程 161
6.4 維護的管理 164
6.6 軟件維護的副作用 170
6.7 軟件文檔與編寫要求及方法 171
6.7.1 軟件文檔的重要性與分類 171
6.7.2 軟件文檔應該滿足的要求 173
6.7.3 對軟件文檔編制的質量要求 174
6.7.4 軟件文檔的管理和維護 175
6.8 軟件逆向工程和再工程 176
6.9 小結 178
習題6 178
第7章 面向對象軟件工程方法學 179
7.1 面向對象的概念 179
7.2 從認識論看面向對象方法的形成 181
7.2.1 軟件開發—對事物的認識和描述 181
7.2.2 語言的鴻溝 181
7.2.3 面向對象編程語言的發展使鴻溝變小 182
7.2.4 軟件工程學的作用 183
7.3 面向對象方法的基本概念 186
7.3.1 面向對象的基本概念 186
7.3.2 面向對象的主要特徵 186
7.4 統一過程與統一建模語言 187
7.4.1 統一過程概述 187
7.4.2 統一過程生命週期 189
7.4.3 統一建模語言 192
7.5 迭代和增量過程 194
7.5.1 為什麼採用迭代和增量的開發方法 194
7.5.2 迭代方法是風險驅動的 198
7.5.3 通用迭代過程 198
7.5.4 一次迭代產生一個增量結果 200
7.5.5 在整個生命週期上的迭代 200
7.5.6 由迭代過程來演化模型 202
7.6 小結 202
習題7 203
第8章 用例驅動 204
8.1 用例驅動開發概述 205
8.2 為什麼使用用例 206
8.2.1 根據需求的價值捕獲用例 207
8.2.2 用例驅動開發過程 207
8.3 確定客户需要什麼 208
8.4 需求工作流 209
8.5 領域模型 211
8.6 業務模型 212
8.7 補充需求 216
8.8 初始需求 216
8.9 初始需求:考勤系統實例研究 218
8.9.1 聆聽 218
8.9.2 確定參與者 219
8.9.3 確定用例 220
8.9.4 簡要説明用例 222
8.9.5 描述用例模型 223
8.10 繼續需求流:考勤系統實例研究 224
8.10.1 區分用例的優先級 224
8.10.2 詳細描述用例 225
8.10.3 構造用户界面原型 230
8.11 修訂需求:考勤系統實例研究 233
8.12 測試工作流:考勤系統實例研究 241
8.13 需求規格説明書 242
8.14 小結 243
習題8 243
第9章 面向對象分析 244
9.1 分析工作流 244
9.2 分析模型 246
9.3 確定分析包 248
9.3.1 處理分析包之間的共性 248
9.3.2 確定服務包 249
9.3.3 確定分析包間的依賴 250
9.4 提取實體類 251
9.4.1 實體類的提取 251
9.4.2 面向對象分析:電梯問題實例研究 251
9.4.3 功能建模:電梯問題實例研究 252
9.4.4 實體類建模:電梯問題實例研究 253
9.4.5 動態建模:電梯問題實例研究 256
9.4.6 測試工作流:電梯問題案例研究 257 [1] 
9.5 提取邊界類和控制類 260
9.6 初始功能模型:考勤系統實例研究 260
9.6.1 劃分用例等級 260
9.6.2 尋找候選對象 264
9.7 分析類 268
9.7.1 確定職責 268
9.7.2 確定屬性 269
9.7.3 確定關聯和聚合 269
9.7.4 確定泛化 270
9.7.5 捕獲特殊需求 270
9.8 初始類圖:考勤系統實例研究 271
9.8.1 尋找“Login”中的關係 271
9.8.2 尋找“RecordTime”中的關係 272
9.8.3 尋找“ExportTimeEntries”中的關係 272
9.9 描述分析對象間的交互 273
9.10 用例實現:考勤系統實例研究 274
9.10.1 為“Login”添加假設的行為 274
9.10.2 為“Login”構建順序圖 275
9.11 分析包 277
9.12 類圖遞增:考勤系統實例研究 278
9.13 測試流與分析工作流中的規格説明文檔 279
9.14 小結 280
習題9 281
第10章 構架為中心 282
10.1 構架概述 283
10.2 為什麼需要構架 284
10.3 用例和構架 285
10.4 建立構架的步驟 287
10.4.1 構架基線是一個“小的、皮包骨的”系統 287
10.4.2 使用構架模式 288
10.4.3 描述構架 289
10.4.4 構架設計師創建構架 291
10.4.5 構架師 291
10.4.6 建立構架的過程 292
10.5 構架描述 293
10.6 建立軟件構架:考勤系統實例研究 296
10.6.1 確立目標 296
10.6.2 將類分組並評估每個類 297
10.6.3 展示技術 301
10.6.4 抽取子系統 302
10.6.5 應用原則和目標對構架進行評估 303
10.7 小結 304
習題10 304
第11章 設計和模式 305
11.1 設計在軟件生命週期中的作用 305
11.2 設計工作流 307
11.3 設計模式 311
11.3.1 設計原則 311
11.3.2 模式簡介 312
11.3.3 設計模式的優勢與應用 316
11.4 規劃設計工作 316
11.4.1 建立整個設計目標 317
11.4.2 建立設計準則 318
11.4.3 尋找獨立的設計工作 318
11.5 設計包或子系統 319
11.6 設計工作流:考勤系統實例研究 319
11.7 HTMLProduction框架 320
11.7.1 設計目標 320
11.7.2 按目標進行設計 323
11.7.3 填充細節 332
11.7.4 實現工作流 335
11.8 TimeCardUI包 338
11.8.1 評審 338
11.8.2 針對目標進行設計 340
11.8.3 用例設計 341
11.8.4 實現工作流 344
11.9 設計度量與用於設計的CASE工具 344
11.10 小結 345
習題11 346
第12章 面向對象實現 347
12.1 實現在軟件生命週期中的作用 347
12.2 實現工作流 349
12.2.1 構架實現 349
12.2.2 系統集成 350
12.2.3 實現子系統 352
12.2.4 實現類 353
12.2.5 執行單元測試 354
12.3 集成 356
12.4 測試工作流 360
12.5 用於實現的CASE工具 364
12.6 小結 366
習題12 366
第13章 軟件複用和構件技術 368
13.1 複用的概念 368
13.2 複用的障礙與複用技巧 369
13.3 對象和複用 372
13.3.1 OO方法對軟件複用的支持 372
13.3.2 複用技術對OO方法的支持 373
13.4 構件及構件技術 374
13.4.1 構件 374
13.4.2 構件技術模型 375
13.4.3 當前主流構件模型 375
13.4.4 構件的開發與複用 377
13.5 設計和實現期間的複用 378
13.6 複用及互聯網 381
13.7 小結 382
習題13 382
第14章 現代軟件工程 383
14.1 現代軟件工程發展的主要技術特點 383
14.2 開源軟件運動 385
14.2.1 開源軟件的定義與由來 385
14.2.2 Oss項目的優勢與開發經驗 387
14.2.3 如何看待開源軟件 388
14.3 領域工程 389
14.3.1 基於領域工程的軟件開發概述 389
14.3.2 基於構件的軟件工程 390
14.3.3 領域工程建模過程 391
14.4 敏捷軟件開發過程及實踐 392
14.4.1 敏捷思想與實踐原則 392
14.4.2 支持敏捷軟件開發的技術和管理手段 394
14.4.3 極限編程 396
14.4.4 其他敏捷軟件開發方法 397
14.5 測試驅動開發 398
14.5.1 測試驅動開發思想 398
14.5.2 支持測試驅動開發的軟件工具 400
14.5.3 測試驅動開發過程 401
14.6 現代軟件工程其他新方法 401
習題14 404
附錄:軟件工程師職業素質及道德規範 405
F1. 軟件工程師職業素質 405
F2. 軟件工程師道德規範 406 [1] 
參考資料