軟件工程(原書第10版) Software Engineering (10th Edition)

Ian Sommerville

買這商品的人也買了...

商品描述

本書是系統介紹軟件工程理論的經典教材,共包含四個部分:
第壹部分(靠前~9章)是對軟件工程的一般性介紹,介紹了軟件工程的一些重要概念(如軟件過程和敏捷方法),
描述了基本的軟件開發活動(從需求規格說明一直到系統演化);
第二部分(靠前0~14章)關註軟件系統可依賴性和信息安全等重要話題;
第三部分(靠前5~21章)介紹更不錯的軟件工程話題;
第四部分(第22~25章)介紹一系列的管理話題,關註技術管理問題。
本書適合作為軟件和系統工程專業本科生或研究生教材,同時也是軟件工程師難得的參考書。

目錄大綱

出版者的話
譯者序
前言
第一部分 軟件工程導論
第1章 概述 2
1.1 專業化軟件開發 3
1.1.1 軟件工程 5
1.1.2 軟件工程的多樣性 6
1.1.3 互聯網軟件工程 8
1.2 軟件工程職業道德 9
1.3 案例研究 11
1.3.1 胰島素泵控制系統 12
1.3.2 心理健康治療病人信息系統 13
1.3.3 野外氣象站 14
1.3.4 學校數字化學習環境 15
要點 16
閱讀推薦 17
網站 17
練習 17
參考文獻 18

第2章 軟件過程 19
2.1 軟件過程模型 20
2.1.1 瀑布模型 21
2.1.2 增量式開發 23
2.1.3 集成與配置 25
2.2 過程活動 26
2.2.1 軟件規格說明 26
2.2.2 軟件設計和實現 27
2.2.3 軟件確認 29
2.2.4 軟件演化 30
2.3 應對變化 31
2.3.1 原型 32
2.3.2 增量式交付 33
2.4 過程改進 34
要點 36
閱讀推薦 36
網站 37
練習 37
參考文獻 37

第3章 敏捷軟件開發 39
3.1 敏捷方法 40
3.2 敏捷開發技術 42
3.2.1 用戶故事 43
3.2.2 重構 44
3.2.3 測試先行的開發 45
3.2.4 結對編程 46
3.3 敏捷項目管理 47
3.4 敏捷方法的伸縮 50
3.4.1 敏捷方法的實踐問題 51
3.4.2 敏捷和計劃驅動的方法 52
3.4.3 面向大型系統的敏捷方法 54
3.4.4 面向整個組織的敏捷方法 56
要點 57
閱讀推薦 57
網站 58
練習 58
參考文獻 58

第4章 需求工程 60
4.1 功能性需求和非功能性需求 62
4.1.1 功能性需求 63
4.1.2 非功能性需求 64
4.2 需求工程過程 66
4.3 需求抽取 67
4.3.1 需求抽取技術 69
4.3.2 故事和場景 71
4.4 需求規格說明 73
4.4.1 自然語言規格說明 74
4.4.2 結構化規格說明 75
4.4.3 用況 76
4.4.4 軟件需求文檔 77
4.5 需求確認 79
4.6 需求變更 80
4.6.1 需求管理計劃 81
4.6.2 需求變更管理 82
要點 83
閱讀推薦 83
網站 84
練習 84
參考文獻 85

第5章 系統建模 86
5.1 上下文模型 87
5.2 交互模型 89
5.2.1 用況建模 90
5.2.2 順序圖 91
5.3 結構模型 93
5.3.1 類圖 93
5.3.2 泛化 95
5.3.3 聚集 95
5.4 行為模型 96
5.4.1 數據驅動的建模 96
5.4.2 事件驅動的建模 97
5.4.3 模型驅動的工程 99
5.5 模型驅動的體系結構 100
要點 102
閱讀推薦 103
網站 103
練習 103
參考文獻 104

第6章 體系結構設計 105
6.1 體系結構設計決策 107
6.2 體系結構視圖 109
6.3 體系結構模式 110
6.3.1 分層體系結構 111
6.3.2 知識庫體系結構 112
6.3.3 客戶-服務器體系結構 113
6.3.4 管道和過濾器體系結構 115
6.4 應用體系結構 116
6.4.1 事務處理系統 117
6.4.2 信息系統 118
6.4.3 語言處理系統 119
要點 121
閱讀推薦 122
網站 122
練習 122
參考文獻 123

第7章 設計和實現 125
7.1 使用UML的面向對象設計 126
7.1.1 系統上下文和交互 126
7.1.2 體系結構設計 128
7.1.3 對像類識別 129
7.1.4 設計模型 130
7.1.5 接口規格說明 133
7.2 設計模式 134
7.3 實現問題 136
7.3.1 復用 137
7.3.2 配置管理 138
7.3.3 宿主機-目標機開發 139
7.4 開源開發 141
7.4.1 開源 142
要點 143
閱讀推薦 143
網站 144
練習 144
參考文獻 145

第8章 軟件測試 146
8.1 開發測試 149
8.1.1 單元測試 150
8.1.2 選擇單元測試用例 151
8.1.3 構件測試 153
8.1.4 系統測試 155
8.2 測試驅動的開發 157
8.3 發布測試 159
8.3.1 基於需求的測試 159
8.3.2 場景測試 160
8.3.3 性能測試 161
8.4 用戶測試 161
要點 163
閱讀推薦 164
網站 164
練習 164
參考文獻 165

第9章 軟件演化 166
9.1 演化過程 168
9.2 遺留系統 170
9.2.1 遺留系統管理 173
9.3 軟件維護 176
9.3.1 維護預測 178
9.3.2 軟件再工程 179
9.3.3 軟件重構 181
要點 182
閱讀推薦 182
網站 183
練習 183
參考文獻 183

第二部分 系統可依賴性和信息安全
第10章 可依賴系統 186
10.1 可依賴性屬性 187
10.2 社會技術系統 189
10.2.1 規章與守約 191
10.3 冗餘和多樣性 192
10.4 可依賴的過程 193
10.5 形式化方法與可依賴性 195
要點 197
閱讀推薦 198
網站 198
練習 198
參考文獻 199

第11章 可靠性工程 200
11.1 可用性和可靠性 202
11.2 可靠性需求 203
11.2.1 可靠性度量 204
11.2.2 非功能性可靠性需求 205
11.2.3 功能性可靠性規格說明 207
11.3 容錯體系結構 207
11.3.1 保護性系統 208
11.3.2 自監控系統體系結構 208
11.3.3 N版本編程 210
11.3.4 軟件多樣性 211
11.4 可靠性編程 212
11.5 可靠性度量 216
11.5.1 運行概況 218
要點 218
閱讀推薦 219
網站 219
練習 219
參考文獻 220

第12章 安全工程 221
12.1 安全關鍵系統 222
12.2 安全需求 224
12.2.1 危險識別 225
12.2.2 危險評估 226
12.2.3 危險分析 227
12.2.4 風險降低 229
12.3 安全工程過程 229
12.3.1 安全保證過程 230
12.3.2 形式化驗證 232
12.3.3 模型檢測 233
12.3.4 靜態程序分析 234
12.4 安全案例 235
12.4.1 結構化論證 237
12.4.2 軟件的安全論證 238
要點 240
閱讀推薦 241
網站 241
練習 241
參考文獻 242

第13章 信息安全工程 244
13.1 信息安全和可依賴性 245
13.2 信息安全和組織 248
13.2.1 信息安全風險評估 249
13.3 信息安全需求 249
13.3.1 濫用案例 252
13.4 信息安全系統設計 253
13.4.1 設計風險評估 254
13.4.2 體系結構設計 257
13.4.3 設計準則 259
13.4.4 信息安全系統編程 263
13.5 信息安全測試和保證 263
要點 265
閱讀推薦 265
網站 265
練習 266
參考文獻 266

第14章 韌性工程 268
14.1 網絡安全 270
14.2 社會技術韌性 273
14.2.1 人為錯誤 275