本书共十章,涵盖了软件产品、敏捷软件工程、特征、场景和用户叙述、软件架构、基于云的软件、微服务架构、安全和隐私,可信赖编程、测试、DevOps和代码管理等内容。
第1章 软件产品1
1.1 产品愿景7
1.2 软件产品管理11
1.3 产品原型设计16
要点17
推荐阅读18
习题19
第2章 敏捷软件工程20
2.1 敏捷方法20
2.2 极限编程24
2.3 Scrum27
要点47
推荐阅读48
习题48
第3章 特征、场景和用户故事50
3.1 人物角色54
3.2 场景59
3.3 用户故事66
3.4 特征识别70
要点79
推荐阅读80
习题80
第4章 软件架构82
4.1 为什么架构很重要84
4.2 架构设计88
4.3 系统分解92
4.4 分布架构103
4.5 技术议题109
要点113
推荐阅读114
习题115
第5章 基于云的软件116
5.1 虚拟化和容器118
5.2 一切即服务124
5.3 软件即服务127
5.4 多租户系统和多实例系统132
5.5 云软件架构140
要点147
推荐阅读148
习题149
第6章 微服务架构150
6.1 微服务154
6.2 微服务架构157
6.3 RESTful服务173
6.4 服务部署179
要点182
推荐阅读183
习题184
第7章 安全和隐私185
7.1 攻击和防范188
7.2 认证195
7.3 授权201
7.4 加密203
7.5 隐私213
要点217
推荐阅读218
习题219
第8章 可信赖编程221
8.1 避免错误223
8.2 输入验证242
8.3 失效管理249
要点256
推荐阅读256
习题257
第9章 测试259
9.1 功能测试262
9.2 自动化测试273
9.3 测试驱动开发281
9.4 安全测试285
9.5 代码评审288
要点292
推荐阅读292
习题293
第10章 DevOps和代码管理295
10.1 代码管理299
10.2 DevOps自动化310
10.3 DevOps度量321
要点326
推荐阅读326
习题327
Contents
Chapter 1 Software Products 1
1.1 The product vision 7
1.2 Software product management 11
1.3 Product prototyping 16
Key Points 17
Recommended Reading 18
Exercises 19
Chapter 2 Agile Software Engineering 20
2.1 Agile methods 20
2.2 Extreme Programming 24
2.3 Scrum 27
Key Points 47
Recommended Reading 48
Exercises 48
Chapter 3 Features, Scenarios, and Stories 50
3.1 Personas 54
3.2 Scenarios 59
3.3 User stories 66
3.4 Feature identification 70
Key Points 79
Recommended Reading 80
Exercises 80
Chapter 4 Software Architecture 82
4.1 Why is architecture important? 84
4.2 Architectural design 88
4.3 System decomposition 92
4.4 Distribution architecture 103
4.5 Technology issues 109
Key Points 113
Recommended Reading 114
Exercises 115
Chapter 5 Cloud-Based Software 116
5.1 Virtualization and containers 118
5.2 Everything as a service 124
5.3 Software as a service 127
5.4 Multi-tenant and multi-instance systems 132
5.5 Cloud software architecture 140
Key Points 147
Recommended Reading 148
Exercises 149
Chapter 6 Microservices Architecture 150
6.1 Microservices 154
6.2 Microservices architecture 157
6.3 RESTful services 173
6.4 Service deployment 179
Key Points 182
Recommended Reading 183
Exercises 184
Chapter 7 Security and Privacy 185
7.1 Attacks and defenses 188
7.2 Authentication 195
7.3 Authorization 201
7.4 Encryption 203
7.5 Privacy 213
Key Points 217
Recommended Reading 218
Exercises 219
Chapter 8 Reliable Programming 221
8.1 Fault avoidance 223
8.2 Input validation 242
8.3 Failure management 249
Key Points 256
Recommended Reading 256
Exercises 257
Chapter 9 Testing 259
9.1 Functional testing 262
9.2 Test automation 273
9.3 Test-driven development 281
9.4 Security testing 285
9.5 Code reviews 288
Key Points 292
Recommended Reading 292
Exercises 293
Chapter 10 DevOps and Code Management 295
10.1 Code management 299
10.2 DevOps automation 310
10.3 DevOps measurement 321
Key Points 326
Recommended Reading 326
Exercises 327