1. Software Products
Why did you write this book?1.1 The product vision
1.2 Software product management
1.3 Product prototyping
Key points
Recommended reading
Presentations, Videos, and Links
Exercises
2. Agile Software Engineering
2.1 Agile methods
2.2 Extreme programming
2.3 Scrum
Key points
Recommended reading
Presentations, Videos, and Links
Exercises
3. Features, Scenarios and Stories
3.1 Personas
3.2 Scenarios
3.3 User stories
3.4 Feature identification
Key points
Recommended reading
Presentations, Videos, and Links
Exercises
4. Software Architecture
4.1 Why is architecture important?
4.2 Architectural design
4.3 System decomposition
4.4 Distribution architecture
4.5 Technology issues
Key points
Recommended reading
Presentations, Videos, and Links
Exercises
5. Cloud-based Software
5.1 Virtualization and containers
5.2 Everything as a service
5.3 Software as a service
5.4 Multi-tenant and multi-instance systems
5.5 Cloud software architecture
Key points
Recommended reading
Presentations, Videos, and Links
Exercises
6. Microservices Architecture
6.1 Microservices
6.2 Microservices architecture
6.3 RESTful services
6.4 Microservice deployment
Key points
Recommended reading
Presentations, Videos, and Links
Exercises
7. Security and Privacy
7.1 Attacks and defenses
7.2 Authentication
7.3 Authorization
7.4 Encryption
7.5 Privacy
Key points
Recommended reading
Presentations, Videos, and Links
Exercises
8. Reliable Programming
8.1 Fault avoidance
8.2 Input validation
8.3 Failure management
Key points
Recommended reading
Presentations, Videos, and Links
Exercises
9. Testing
9.1 Functional testing
9.2 Test automation
9.3 Test-driven development
9.4 Security testing
9.5 Code reviews
Key points
Recommended reading
Presentations, Videos, and Links
Exercises
10. DevOps and Code Management
10.1 Code management
10.2 DevOps automation
10.3 DevOps measurement
Key points
Recommended reading
Presentations, Videos, and Links
Exercises
Appendix
Index
Most software engineering texts focus on project-based software engineering where a client develops a specification and the software is developed by another company. However, students mostly have experience of apps and other software products. I wanted to write about product-oriented techniques that are used in developing the kind of software that’s familiar to students.
Is this a new edition of your software engineering book?
No, this book takes a completely different approach and, apart from a couple of diagrams, does not reuse any material from Software Engineering, 10th edition.
What’s in the book?
Ten chapters covering software products, agile software engineering, features, scenarios and user stories, software architecture, cloud-based software, microservices architecture, security and privacy, reliable programming, testing, and DevOps and code management. I’ve designed the book so that it’s suitable for a one-semester software engineering course.
All FAQ >>