大多數(shù)軟件工程教材關注基于項目的軟件工程,核心思想是客戶給出需求規(guī)約,公司開發(fā)軟件。然而,用于大規(guī)模項目開發(fā)的軟件工程技術和方法,不適合軟件產品開發(fā)。本書共10章,涵蓋了軟件產品、敏捷軟件工程、特征、場景和用戶敘述、軟件架構、基于云的軟件、微服務架構、安全和隱私,可信賴編程、測試、DevOps和代碼管理等內容。
出版者的話
譯者序
前言
第1章 軟件產品1
1.1 產品愿景6
1.2 軟件產品管理9
1.2.1 產品愿景管理11
1.2.2 產品路線圖管理11
1.2.3 用戶故事和場景開發(fā)11
1.2.4 產品待定項管理12
1.2.5 驗收測試12
1.2.6 客戶測試12
1.2.7 用戶界面設計12
1.3 產品原型設計13
要點14
推薦閱讀15
習題16
第2章 敏捷軟件工程17
2.1 敏捷方法17
2.2 極限編程20
2.3 Scrum爭球模型22
2.3.1 產品待定項27
2.3.2 限時沖刺30
2.3.3 自組織團隊35
要點39
推薦閱讀39
習題40
第3章 特征、場景和用戶故事42
3.1 人物角色46
3.2 場景50
3.3 用戶故事55
3.4 特征識別59
3.4.1 特征推導62
3.4.2 特征列表64
要點67
推薦閱讀67
習題68
第4章 軟件架構69
4.1 為什么架構很重要71
4.2 架構設計74
4.3 系統(tǒng)分解77
4.4 分布架構86
4.5 技術議題91
4.5.1 數(shù)據(jù)庫92
4.5.2 傳播平臺93
4.5.3 服務器93
4.5.4 開源94
4.5.5 開發(fā)技術95
要點95
推薦閱讀96
習題97
第5章 基于云的軟件98
5.1 虛擬化和容器100
5.2 一切即服務104
5.3 軟件即服務107
5.4 多租戶系統(tǒng)和多實例系統(tǒng)111
5.4.1 多租戶系統(tǒng)111
5.4.2 多實例系統(tǒng)116
5.5 云軟件架構118
5.5.1 數(shù)據(jù)庫組織118
5.5.2 可擴展性和可恢復性120
5.5.3 軟件結構121
5.5.4 云平臺122
要點124
推薦閱讀125
習題126
第6章 微服務架構127
6.1 微服務130
6.2 微服務架構133
6.2.1 架構設計決策135
6.2.2 服務通信136
6.2.3 數(shù)據(jù)分發(fā)與共享139
6.2.4 服務協(xié)調142
6.2.5 故障管理144
6.3 RESTful服務147
6.4 服務部署151
要點154
推薦閱讀155
習題156
第7章 安全和隱私157
7.1 攻擊和防范159
7.1.1 注入攻擊160
7.1.2 跨站點腳本攻擊161
7.1.3 會話劫持攻擊162
7.1.4 拒絕服務攻擊163
7.1.5 暴力攻擊164
7.2 認證165
7.2.1 聯(lián)合身份167
7.2.2 移動設備認證169
7.3 授權170
7.4 加密172
7.4.1 對稱和非對稱加密173
7.4.2 TLS和數(shù)字簽名176
7.4.3 數(shù)據(jù)加密177
7.4.4 密鑰管理179
7.5 隱私181
要點184
推薦閱讀184
習題186
第8章 可信賴編程187
8.1 避免錯誤189
8.1.1 程序復雜度190
8.1.2 設計模式198
8.1.3 重構202
8.2 輸入驗證204
8.2.1 正則表達式206
8.2.2 數(shù)字檢查209
8.3 失效管理210
要點216
推薦閱讀216
習題217
第9章 測試219
9.1 功能測試221
9.1.1 單元測試223
9.1.2 特征測試226
9.1.3 系統(tǒng)和發(fā)布測試227
9.2 自動化測試230
9.3 測試驅動開發(fā)238
9.4 安全測試241
9.5 代碼評審243
要點246
推薦閱讀247
習題248
第10章 DevOps和代碼管理250
10.1 代碼管理253
10.1.1 源代碼管理基礎254
10.1.2 使用Git259
10.2 DevOps自動化263
10.2.1 持續(xù)集成264
10.2.2 持續(xù)交付和部署268
10.2.3 基礎設施即代碼270
10.3 DevOps度量272
要點276
推薦閱讀276
習題277
索引279