《軟體工程教程》全面系統地介紹了軟體工程的有關概念、原則、方法和工具。全書共15章,內容包括:軟體工程中面向過程、面向對象的開發方法,技術度量,質量保證,軟體項目計畫與管理,用統一建模語言UML開發軟體的方法等。另外,還對設計模式、敏捷軟體開發、Web工程等軟體工程相關領域進行了介紹和討論。《軟體工程教程》既注重科學性和系統性,又注重實用性和新穎性。《軟體工程教程》可作為大學計算機及相關專業本(專)科學生的教材或教學參考書,也可作為研究生的參考教材。
基本介紹
- 書名:高等院校精品課程系列教材·軟體工程教程
- ISBN:7111300025, 9787111300021
- 頁數:332頁
- 出版社:機械工業出版社
- 出版時間:2010年4月1日
- 裝幀:平裝
- 版次:第一版
- 正文語種:簡體中文
- 尺寸:25.8 x 18.2 x 1.4 cm
- 重量:581 g
內容簡介,目錄,
內容簡介
《軟體工程教程》全面系統地介紹了軟體工程的有關概念、原則、方法和工具。全書共15章,內容包括:軟體工程中面向過程、面向對象的開發方法,技術度量,質量保證,軟體項目計畫與管理,用統一建模語言UML開發軟體的方法等。另外,還對設計模式、敏捷軟體開發、Web工程等軟體工程相關領域進行了介紹和討論。《軟體工程教程》既注重科學性和系統性,又注重實用性和新穎性。
《軟體工程教程》可作為大學計算機及相關專業本(專)科學生的教材或教學參考書,也可作為研究生的參考教材。
目錄
出版者的話
前言
教學建議
第1章 軟體工程概述 1
1.1 軟體發展和軟體危機 1
1.1.1 軟體的定義和發展 1
1.1.2 軟體危機過程 2
1.2 軟體工程學的範疇 5
1.3 軟體開發的生命周期 5
1.4 傳統軟體工程和面向對象軟體工程 7
1.5 軟體的特點 10
1.6 軟體工程的基本目標 11
小結 12
習題 12
第2章 軟體生命周期過程模型 13
2.1 過程及軟體生命周期 13
2.2 軟體過程模型 14
2.2.1 瀑布模型 15
2.2.2 具有原型化的瀑布模型 17
2.3 演化過程模型 18
2.3.1 原型化模型 18
2.3.2 螺旋模型 19
2.3.3 操作說明模型 20
2.4 增量過程模型 21
2.4.1 RAD模型 21
2.4.2 增量和疊代模型 22
2.5 其他類型的過程模型 23
2.5.1 噴泉模型 23
2.5.2 智慧型模型 24
2.5.3 V模型 25
2.5.4 變換模型 25
小結 26
習題 26
第3章 需求分析 27
3.1 需求分析的任務 27
3.1.1 需求定義 27
3.1.2 需求的層次 28
3.1.3 需求的開發與管理 28
3.2 需求獲取技術 30
3.2.1 需求分析人員的組成 30
3.2.2 需求的類型 30
3.2.3 獲取需求的途徑 31
3.3 需求規格說明書 36
3.3.1 需求說明的目的 36
3.3.2 需求說明的方法 36
3.4 需求描述技術 36
3.4.1 結構化技術 36
3.4.2 形式化技術 40
3.5 需求驗證 48
小結 49
習題 49
第4章 概要設計 51
4.1 概要設計的概念 51
4.1.1 概要設計的目標和任務 51
4.1.2 概要設計的過程 53
4.1.3 概要設計的工具 53
4.2 模組獨立性 55
4.2.1 模組化 55
4.2.2 模組的耦合性 56
4.2.3 模組的內聚性 60
4.3 結構化設計方法 63
4.3.1 概念 63
4.3.2 變換分析 66
4.3.3 事務分析 68
4.3.4 設計的後處理 69
4.4 數據設計 70
4.4.1 數據設計的原則 70
4.4.2 數據結構設計 71
4.4.3 檔案設計 71
4.4.4 資料庫設計 72
小結 73
習題 73
第5章 詳細設計 74
5.1 詳細設計的任務 74
5.2 詳細設計的方法 75
5.2.1 設計表示法 75
5.2.2 結構化程式設計 77
5.2.3 面向數據結構的設計 80
5.2.4 詳細設計文檔與複審 85
小結 90
習題 91
第6章 編碼與語言選擇 92
6.1 編碼的目的和任務 92
6.2 編碼所使用的語言 93
6.2.1 程式設計語言范型 93
6.2.2 程式設計語言的發展 94
6.2.3 常用的編碼語言 96
6.2.4 編碼語言的選擇 98
6.3 編碼的風格 99
小結 103
習題 103
第7章 面向對象方法 104
7.1 面向對象的基本概念 104
7.1.1 對象 104
7.1.2 類與訊息 105
7.1.3 類的基本特徵 106
7.2 面向對象的開發方法 106
7.2.1 概述 107
7.2.2 面向對象方法的發展歷程 107
7.2.3 常用的面向對象分析的方法 108
7.3 面向對象的設計 111
7.3.1 面向對象設計概述 111
7.3.2 底層設計—類的設計 118
7.3.3 OOD的Yourdon的方法 120
7.3.4 Booch的方法 125
7.3.5 系統的設計過程 126
小結 129
習題 129
第8章 統一建模語言 130
8.1 統一建模語言簡介 130
8.1.1 發展歷史 130
8.1.2 UML簡介 131
8.1.3 UML視圖簡介 132
8.1.4 視圖 132
8.1.5 UML類、構件、部署和協作圖 中的圖示 133
8.1.6 擴展組件 134
8.1.7 各種視圖間的關係 134
8.2 概念與視圖 135
8.2.1 靜態視圖 135
8.2.2 用例圖 136
8.2.3 互動視圖 136
8.2.4 狀態圖 138
8.2.5 活動視圖 139
8.2.6 物理視圖 140
8.2.7 模型管理視圖 142
8.3 UML與Java的對應關係 143
8.3.1 表示結構 143
8.3.2 表示關係 145
8.4 統一建模語言的綜合套用 149
8.4.1 項目概述 149
8.4.2 靜態分析和設計 150
8.4.3 持久對象設計 151
8.4.4 動態對象設計 152
8.4.5 通用接口設計 154
8.4.6 體系結構設計 157
小結 159
習題 160
第9章 統一軟體過程 161
9.1 軟體開發過程 161
9.2 疊代和遞增 162
9.3 核心工作流 162
9.3.1 需求流 162
9.3.2 分析流 164
9.3.3 設計流 166
9.3.4 實現流 167
9.3.5 測試流 168
9.3.6 交付後維護 170
9.3.7 退役 170
9.4 統一過程的各階段 171
9.4.1 開始階段 171
9.4.2 細化階段 173
9.4.3 構建階段 173
9.4.4 轉換階段 174
9.5 二維生命周期模型 174
小結 174
習題 174
第10章 軟體測試 176
10.1 軟體測試概述 176
10.1.1 軟體測試的目標 176
10.1.2 軟體測試的原則 177
10.1.3 軟體測試的方法 178
10.1.4 軟體測試與軟體開發各階段的 關係 178
10.1.5 測試信息流 179
10.1.6 錯誤分類 179
10.2 軟體測試過程與策略 182
10.2.1 單元測試 182
10.2.2 集成測試 183
10.2.3 確認測試 186
10.2.4 平行運行 187
10.3 設計測試方案 187
10.3.1 邏輯覆蓋 188
10.3.2 等價劃分 191
10.3.3 邊界值分析 194
10.3.4 錯誤推測 194
10.3.5 實用測試策略 195
10.4 糾錯 198
10.5 對OOA和OOD模型的測試 200
10.5.1 擴大測試的視角 201
10.5.2 測試OOA和OOD模型 201
10.6 面向對象的測試策略 203
10.6.1 在OO語境中的單元測試 203
10.6.2 在OO語境中的集成測試 203
10.6.3 在OO語境中的有效性測試 204
10.7 OO軟體的測試用例設計 204
10.7.1 OO概念的測試用例設計的 含義 204
10.7.2 傳統測試用例設計方法的 可用性 204
10.7.3 基於故障的測試 205
10.7.4 OO編程對測試的影響 205
10.7.5 測試用例和類層次 206
10.7.6 基於場景的測試設計 206
10.7.7 測試表層結構和深層結構 207
10.8 其他專門環境要求的測試 208
10.8.1 GUI測試 208
10.8.2 測試文檔和幫助設施 209
10.8.3 實時系統測試 210
小結 211
習題 211
第11章 軟體維護 213
11.1 系統的變化 213
11.1.1 系統的類型 214
11.1.2 系統生命周期中的變化 215
11.1.3 系統的生命範圍 216
11.2 軟體維護的基本內容和特點 218
11.2.1 軟體維護概述 218
11.2.2 軟體維護的特點 219
11.2.3 維護中的問題 220
11.3 軟體維護的實施 221
11.3.1 軟體維護的過程 221
11.3.2 軟體維護的技術 224
11.4 軟體的可維護性 224
11.4.1 軟體可維護性概述 225
11.4.2 軟體可維護性度量 225
11.4.3 提高可維護性的方法 225
11.5 軟體維護的副作用 226
11.5.1 代碼副作用 226
11.5.2 數據副作用 227
11.5.3 文檔副作用 227
11.6 軟體再工程 227
11.6.1 軟體再工程的過程 227
11.6.2 軟體再工程的方法 228
小結 228
習題 229
第12章 軟體質量及其管理 230
12.1 軟體質量的概念及屬性 230
12.1.1 軟體質量概述 230
12.1.2 軟體質量的屬性 230
12.2 軟體質量保證與控制 231
12.2.1 軟體質量保證概述 232
12.2.2 軟體質量保證計畫 232
12.2.3 軟體質量成本 234
12.2.4 軟體質量控制 234
12.3 軟體質量度量 235
12.3.1 軟體質量度量概述 235
12.3.2 質量度量模型 235
12.3.3 三種度量模型的比較 236
12.3.4 軟體質量評價 238
12.4 軟體可靠性 238
12.4.1 基本概念 238
12.4.2 影響軟體可靠性的因素 239
12.4.3 軟體可靠性模型 240
12.4.4 軟體可靠性工程 242
12.5 CMM:軟體能力成熟度模型 242
12.5.1 CMM的發展 242
12.5.2 基本概念 243
12.5.3 SW-CMM的用途 243
12.5.4 CMM的五個等級 244
12.5.5 CMM的內部結構 246
12.5.6 採用CMM的意義 248
小結 249
習題 249
第13章 軟體項目管理 250
13.1 項目管理的概念 250
13.1.1 項目管理過程 250
13.1.2 項目管理的範圍 251
13.1.3 項目管理中的資源 251
13.2 可行性研究 252
13.2.1 可行性研究的任務和過程 252
13.2.2 技術可行性研究 253
13.2.3 經濟可行性研究 254
13.2.4 運行可行性研究 256
13.3 軟體項目估算 257
13.3.1 代碼行技術 257
13.3.2 功能點技術 257
13.4 軟體開發成本估算 260
13.4.1 軟體開發成本估算方法 260
13.4.2 專家判定技術 260
13.4.3 軟體開發成本估算的早期經驗 模型 261
13.5 進度安排 264
13.5.1 軟體開發小組人數與軟體 生產率 264
13.5.2 任務的確定與並行性 264
13.5.3 制定開發進度計畫 265
13.5.4 項目的追蹤和控制 265
13.6 人員組織 266
13.6.1 民主製程序員組 266
13.6.2 主程式設計師組 267
13.6.3 現代程式設計師組 268
13.7 軟體風險管理 269
13.7.1 風險識別 269
13.7.2 風險估計 271
13.7.3 風險評價 272
13.7.4 風險駕馭和監控 273
13.8 軟體配置管理 274
13.8.1 軟體配置 274
13.8.2 軟體配置管理過程 275
小結 276
習題 276
第14章 CASE環境與工具 278
14.1 工程環境 278
14.1.1 軟體開發環境的特點 278
14.1.2 理想環境的模型 280
14.1.3 CASE環境簡介 280
14.2 CASE環境的組成與結構 281
14.2.1 CASE的組成構件 281
14.2.2 CASE的一般結構 283
14.3 CASE環境工具與實踐 284
14.3.1 CASE軟體工程實踐 284
14.3.2 常用CASE工具介紹 285
14.4 逐步求精 287
小結 290
習題 290
第15章 軟體工程新技術概述 292
15.1 敏捷軟體開發過程 292
15.1.1 敏捷的概念 293
15.1.2 敏捷過程的含義 293
15.1.3 敏捷過程模型 295
15.2 設計模式 302
15.2.1 設計模式的基本概念 302
15.2.2 關係環與組合模式 303
15.2.3 工廠模式 306
15.2.4 觀察者模式與拉推數據 315
15.3 Web工程簡介 320
15.3.1 Web系統和套用特點 320
15.3.2 Web工程的層次 321
15.3.3 Web分析 322
15.3.4 Web設計 323
15.3.5 Web測試 324
15.3.6 Web的項目管理 328
小結 330
習題 330
參考文獻 331