軟件工程(第2版)

樸勇,周勇

  • 出版商: 電子工業
  • 出版日期: 2025-01-01
  • 定價: $414
  • 售價: 8.5$352
  • 語言: 簡體中文
  • 頁數: 288
  • ISBN: 712149325X
  • ISBN-13: 9787121493256
  • 下單後立即進貨 (約4週~6週)

商品描述

本書主要圍繞軟件的系統工程化開發過程,介紹相關的理論、方法、技術和工具。本書以面向對象的分析和設計為主線,以基本理論為出發點,遵循UML 2標準,介紹軟件工程概念和軟件開發過程;重點針對軟件開發的具體活動,討論需求分析、軟件架構的構建、類的分析與設計、代碼生成、類的詳細設計、設計優化、實現技術、交互設計、軟件測試等內容;介紹軟件開發環境,包括軟件項目級管理、軟件過程管理與改進。 本書內容豐富、循序漸進,註重軟件工程理論與實踐的結合,適合作為高等院校電腦相關專業本科生和研究生的教材,也可作為從事軟件開發的理論研究人員及工程技術人員的參考用書。

目錄大綱

目 錄

第1章 軟件工程概述 1
1.1 軟件危機與軟件工程 1
1.1.1 軟件危機 1
1.1.2 軟件工程 2
1.2 系統工程與UML 4
1.2.1 系統工程 4
1.2.2 統一建模語言UML 5
1.3 系統開發的解空間 7
1.4 軟件工程開發方法 9
1.4.1 傳統開發方法 9
1.4.2 面向對象方法 9
1.4.3 理解兩種開發方法 10
1.5 軟件工程發展 11
1.6 習題 12
第2章 軟件開發過程 13
2.1 軟件生命周期模型與軟件過程 13
2.2 傳統生命周期模型 15
2.2.1 瀑布模型 15
2.2.2 快速原型模型 16
2.2.3 增量模型 18
2.2.4 螺旋模型 18
2.2.5 噴泉模型 20
2.3 敏捷生命周期模型 20
2.3.1 增量交付與迭代開發 21
2.3.2 敏捷生命周期模型的優勢 22
2.3.3 極限編程 23
2.3.4 Scrum 24
2.3.5 持續集成與持續交付 25
2.3.6 DevOps過程 26
2.4 習題 28
第3章 需求分析 29
3.1 需求分析活動 29
3.1.1 需求準備 29
3.1.2 系統涉眾 30
3.1.3 系統目標 32
3.2 用例與系統功能 33
3.2.1 用例及其表示 33
3.2.2 識別用例 34
3.2.3 用例規約 36
3.2.4 用例提煉 38
3.3 過程建模與事件流 40
3.3.1 過程建模 40
3.3.2 事件流 43
3.4 功能性需求 45
3.5 非功能性需求 49
3.6 需求跟蹤 51
3.7 習題 52
第4章 軟件架構的構建 54
4.1 軟件架構及其定義 54
4.1.1 軟件架構的理解 54
4.1.2 軟件架構的定義 55
4.1.3 軟件架構的“4+1”視圖模型 55
4.2 軟件架構模型 57
4.3 軟件架構風格 57
4.3.1 管道與過濾器 58
4.3.2 層次結構 58
4.3.3 倉庫/黑板系統 59
4.3.4 正交軟件結構 60
4.3.5 客戶機/服務器結構 61
4.3.6 瀏覽器/服務器結構 61
4.3.7 MVC架構 62
4.4 軟件架構設計 64
4.4.1 包及其結構 64
4.4.2 包結構設計 65
4.5 習題 67

第5章 類的分析與設計 68
5.1 基本類的確定 68
5.1.1 類的識別 69
5.1.2 初始類圖 71
5.1.3 類的方法 72
5.1.4 類的關系 72
5.1.5 類與對象 74
5.2 類的細化 75
5.2.1 管理類和控制類 75
5.2.2 設計優化 78
5.3 補充和確認 79
5.3.1 順序圖 79
5.3.2 場景模擬 81
5.4 完善設計 85
5.5 習題 87
第6章 代碼生成 88
6.1 正逆向工程與CASE環境 88
6.2 單個類的實現 90
6.3 關聯關系的實現 93
6.4 對象歸屬關系的實現 96
6.4.1 聚合關系 96
6.4.2 組合關系 99
6.4.3 依賴關系 100
6.5 軟件架構的實現 100
6.6 其他物理實現 105
6.7 習題 107
第7章 類的詳細設計 109
7.1 詳細設計的主要活動 109
7.2 類方法的詳細設計 110
7.2.1 圖形工具 110
7.2.2 表格工具 112
7.2.3 語言工具 114
7.3 類的行為設計 114
7.3.1 狀態圖的結構 115
7.3.2 狀態圖的擴展 117
7.3.3 狀態圖的應用 119
7.4 對象約束語言 121
7.5 習題 125
第8章 設計優化 127
8.1 小即是美 127
8.2 設計優化思想 128
8.2.1 運行時的多態 128
8.2.2 耦合的消息鏈 130
8.2.3 狎昵關系 131
8.2.4 被拒絕的遺贈 132
8.2.5 循環依賴 132
8.3 設計原則 133
8.3.1 接口隔離原則 133
8.3.2 依賴倒置原則 134
8.3.3 開放封閉原則 134
8.3.4 Liskov替換原則 136
8.3.5 單一職責原則 137
8.3.6 合成/聚合復用原則 138
8.4 設計模式 139
8.4.1 抽象工廠模式 140
8.4.2 單例模式 142
8.4.3 適配器模式 144
8.4.4 橋模式 145
8.4.5 裝飾模式 146
8.4.6 門面模式 147
8.4.7 代理模式 148
8.4.8 觀察者模式 149
8.4.9 策略模式 150
8.4.10 狀態模式 150
8.5 習題 153
第9章 實現技術 155
9.1 非功能性需求的實現 155
9.2 數據表示與交換格式 157
9.3 程序輪子 158
9.3.1 組件 160
9.3.2 框架 162
9.4 數據的持久化 166
9.4.1 文件持久化 166
9.4.2 數據庫持久化 168
9.5 領域特定語言 169
9.6 模型驅動架構 171
9.6.1 原理及過程 171
9.6.2 MDA的應用 173
9.7 重構 174
9.8 習題 177
第10章 交互設計 179
10.1 交互設計概述 179
10.2 可用性 181
10.2.1 任務適合性 182
10.2.2 自我描述性 183
10.2.3 可控性 183
10.2.4 與用戶期望一致性 184
10.2.5 容錯性 185
10.2.6 可定製性 185
10.2.7 易學性 186
10.3 交互設計過程 186
10.4 可用性的驗證 187
10.5 習題 189
第11章 軟件測試 190
11.1 形式化驗證 190
11.2 測試技術 192
11.2.1 測試分類 193
11.2.2 測試策略 194
11.2.3 非功能性測試 196
11.3 軟件度量 197
11.3.1 控制流圖與環形復雜度 198
11.3.2 方法內聚缺乏度 201
11.4 等價類 202
11.4.1 等價類分析 203
11.4.2 等價類與邊界 204
11.4.3 等價類組合 205
11.4.4 面向對象中的等價類 207
11.5 基於控制流的測試 209
11.6 斷言機制 213
11.7 測試框架 215
11.7.1 測試環境 215
11.7.2 單元測試框架 216
11.8 可測試性 223
11.8.1 可測試性基礎 223
11.8.2 可測試性原則 226
11.9 人工測試 228
11.10 習題 230
第12章 軟件項目級管理 232
12.1 軟件配置管理 232
12.1.1 版本管理 233
12.1.2 構建管理 238
12.2 項目管理 240
12.2.1 項目計劃與工作分解 240
12.2.2 軟件規模估算 241
12.2.3 開發成本估算 244
12.2.4 任務安排與工程網絡圖 247
12.2.5 項目組織與甘特圖 249
12.3 項目計劃跟蹤控制 251
12.3.1 項目計劃跟蹤 251
12.3.2 掙值分析 252
12.4 軟件質量保證 254
12.4.1 質量管理 254
12.4.2 軟件質量保證的內容 256
12.4.3 軟件質量保證的任務 256
12.4.4 軟件質量保證計劃 257
12.5 風險管理 257
12.6 項目人員構成與溝通 259
12.6.1 項目人員構成 260
12.6.2 項目人員溝通 262
12.7 習題 264
第13章 軟件過程管理與改進 265
13.1 軟件過程管理 265
13.1.1 過程改進 265
13.1.2 能力成熟度模型 266
13.1.3 CMMI過程域 269
13.2 個體軟件過程 275
13.3 團隊軟件過程 276
13.4 習題 278