New York: Pearson, 2019. — 578 p. — ISBN 013521064X, 9780135210642
For one-semester courses in software engineering.
Introduces software engineering techniques for developing software products and apps
With Engineering Software Products, author Ian Sommerville takes a unique approach to teaching software engineering and focuses on the type of software products and apps that are familiar to students, rather than focusing on project-based techniques. Written in an informal style, this book focuses on software engineering techniques that are relevant for software product engineering. Topics covered include personas and scenarios, cloud-based software, microservices, security and privacy and DevOps. The text is designed for students taking their first course in software engineering with experience in programming using a modern programming language such as Java, Python or Ruby.
Software ProductsThe product vision
Software product management
Product prototyping
Key Points
Recommended Reading
Presentations, Videos, and Links
Exercises
Agile Software EngineeringAgile methods
Extreme Programming
Scrum
Key Points
Recommended Reading
Presentations, Videos, and Links
Exercises
Features, Scenarios, and StoriesPersonas
Scenarios
User stories
Feature identification
Key Points
Recommended Reading
Presentations, Videos, and Links
Exercises
Software ArchitectureWhy is architecture important?
Architectural design
System decomposition
Distribution architecture
Technology issues
Key Points
Recommended Reading
Presentations, Videos, and Links
Exercises
Cloud-Based SoftwareVirtualization and containers
Everything as a service
Software as a service
Multi-tenant and multi-instance systems
Cloud software architecture
Key Points
Recommended Reading
Presentations, Videos, and Links
Exercises
Microservices ArchitectureMicroservices
Microservices architecture
RESTful services
Service deployment
Key Points
Recommended Reading
Presentations, Videos, and Links
Exercises
Security and PrivacyAttacks and defenses
Authentication
Authorization
Encryption
Privacy
Key Points
Recommended Reading
Presentations, Videos, and Links
Exercises
Reliable ProgrammingFault avoidance
Input validation
Failure management
Key Points
Recommended Reading
Presentations, Videos, and Links
Exercises
TestingFunctional testing
Test automation
Test-driven development
Security testing
Code reviews
Key Points
Recommended Reading
Presentations, Videos, and Links
Exercises
DevOps and Code ManagementCode management
DevOps automation
DevOps measurement
Key Points
Recommended Reading
Presentations, Videos, and Links
Exercises