Why did you write this book?
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, personas, 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.
How is this book different from other introductory texts on software engineering?
As I said, the focus is on *products* rather than *projects*. I cover techniques that most other SE texts don’t cover such as personas and scenarios, cloud computing, microservices, security and DevOps. As product innovation doesn’t come from university research, there are no citations or references to research and the book is written in an informal style.
Who is the book aimed at?
The book has been designed for students taking a first course in software engineering. People thinking about developing a product who don’t have much software engineering experience may also find it useful.
What do I need to know to get value from the book?
I assume that you are familiar with a modern object-oriented programming language such as Java or Python and are familiar with common computing terminology. The examples in the book are in Python but should be understandable by anyone with programming experience.
What extra material is available to help teachers and instructors?
1. An instructor’s manual with solutions to exercises and quiz questions for all chapters.
2. Suggestions how you can use the book in a one-semester software engineering course
2. Presentations for teaching (Powerpoint and PDF)
3. Links to relevant videos that I’ve made or found on YouTube and elsewhere