Page 7 -
P. 7
vi Preface
5. I have updated and revised the content in all chapters. I estimate that between
30% and 40% of the text has been completely rewritten.
6. I have added new chapters on agile software development and embedded systems.
7. As well as these new chapters, there is new material on model-driven engineer-
ing, open source development, test-driven development, Reason’s Swiss Cheese
model, dependable systems architectures, static analysis and model checking,
COTS reuse, software as a service, and agile planning.
8. A new case study on a patient record system for patients who are undergoing
treatment for mental health problems has been used in several chapters.
Using the book for teaching
I have designed the book so that it can be used in three different types of software
engineering courses:
1. General introductory courses in software engineering The first part of the book
has been designed explicitly to support a one-semester course in introductory
software engineering.
2. Introductory or intermediate courses on specific software engineering topics You
can create a range of more advanced courses using the chapters in Parts 2–4. For
example, I have taught a course in critical systems engineering using the chapters
in Part 2 plus chapters on quality management and configuration management.
3. More advanced courses in specific software engineering topics In this case, the
chapters in the book form a foundation for the course. These are then supple-
mented with further reading that explores the topic in more detail. For example,
a course on software reuse could be based around Chapters 16, 17, 18, and 19.
More information about using the book for teaching, including a comparison with
previous editions, is available on the book’s website.
Support materials
A wide range of support material is available to help people using the book for teach-
ing software engineering courses. This includes:
• PowerPoint presentations for all of the chapters in the book.
• Figures in PowerPoint.