Changes from previous editions

There have been major changes in the 9th edition both in terms of structure and content but, obviously, a good deal of material from previous editions has been reused. If you have used previous editions in your teaching, I've created this page that (a) explains the chapter correspondence between the 8th and the 9th editions and (b) briefly summarizes the changes/new material in each chapter.

One important change has been the replacement of the library system example (LIBSYS) that I used in the 7th and 8th edition with a more extensive case study based on a (real) system that manages information about patients suffering from mental health problems (MHC-PMS)

Part 1 - Introduction to software engineering

This is a set of chapters that has been designed as a introductory, 1 semester course on software engineering covering a range of aspects of the discipline. I assume students have done a programming course.

1. Introduction ( 8th ed. Chap 1)

Changed format from previous intro based around FAQs. Added sections on software engineering and the web. Added sections introducing case studies including new case study based around a medical information system.

2. Software Processes ( 8th ed. Chap 4)

The major changes here are the inclusion of a section on coping with change, including material on prototyping previously covered in Chapter 17.

3. Agile Software Development

This new chapter reuses some material from Chapter 17 on XP. More general discussion on agile methods plus material on Scrum added and some realism on the problems of scaling agile methods.

4. Requirements ( 8th ed. Chaps 6, 7)

I have combined chapter 6 (software requirements) and chapter 7 (requirements engineering processes) to create an integrated requirements engineering chapter. Lots of material moved to the web.

5. System Modeling ( 8th ed. Chaps 8, 14)

Use-case modeling now covered here and new examples included based on the Mental Health Care-Patient Management System. Structured methods section deleted (but available on the web) and new section included on model-driven engineering.

6. Architectural Design ( 8th ed. Chap 11, 13)

A combinations of general discussion on architectures plus some examples of application architectures. New section on architectural views and more on architectural patterns. Some material on application architectures moved to web.

7. Design and Implementation

A new chapter with the first part based on a summarized version of object-oriented design previously covered in Chapter 14. However, I have added sections on implementation issues that might be included in an introductory course and on open source development.

8. Software Testing ( 8th ed. Chaps 22, 23)

Includes introduction to inspections from Chapter 22 plus testing principles from Chapter 23. New sections on test-driven development (linked to Chapter 3) and scenario-based testing.

9. Software Evolution ( 8th ed. Chap 21)

Reorganized version of Chapter 21 but most material from that chapter has been retained.

Part 2 – Security and Dependability

This part has been designed as the basis (with additional reading and material from Part 4) of a 1 semester course in in critical systems engineering.

10. Sociotechnical systems ( 8th ed. Chap 2)

New material added on systems procurement and on systems operation, including a model of human error.

11. Security and dependability ( 8th ed. Chap 3)

Extended discussion of security, compared to Chapter 3, 8th ed. Case study material on insulin pump system from Chapter 3 moved to Chapter 1.

12. Dependability and security specification ( 8th ed. Chaps 9, 10)

More material on security specification added as is a section introducing formal methods. Formal methods chapter (chapter 10) available as a separate web chapter.

13. Dependability engineering ( 8th ed. Chap 20)

Extensive revision. Lots more on architectural patterns for fault tolerant systems. Guidelines for dependable programming added Exception handling moved to web.

14. Security engineering ( 8th ed. Chap 30)

Removed overlap between Chap 30 and Chap 3 in 8th edition in the discussion of security concepts. Otherwise, most material in Chap 30 retained.

15. Dependability and Security Assurance ( 8th ed. Chaps 22, 24)

More extensive discussion of static analysis, including a new section on model checking. Extended section on security testing.

Part 3 - Software Technologies

The chapters here have been designed to be included in an advanced software engineering course, where you can use these chapters along with some of the other chapters from Parts 2 and 4. There are lots of possibilities.

16. Software reuse ( 8th ed. Chap 18)

Significant revision. More on product lines, application frameworks and COTS product reuse. Generator based reuse moved to web and stuff on aspects integrated with Chapter 21.

17. Component-based software engineering ( 8th ed. Chap 19)

No major changes from 8th edition.

18. Distributed software engineering ( 8th ed. Chap 12)

CORBA, sadly, is not much used so that material has been removed.Introduction to service-oriented architecture completely re-written to present the notion of software as a service, including a discussion of multi-tenancy.

19. Service-oriented architecture ( 8th ed. Chap 31)

Integrated material previously covered in Chapter 12. Otherwise, only minor updates of Chapter 31.

20. Embedded software

Extensive revision but chapter based on Chapter 15 on real-time systems. New material on architectural patterns for embedded systems, real-time programming and on timing analysis.

21. Aspect-oriented software engineering ( 8th ed. Chap 32)

No major changes from Chapter 32.

Part 4 - Management

The chapters here could be the basis of a course on software project management and/or included in an advanced software engineering course. Alternatively, you might decide to use Chapters 22 and 23 in an introductory course, replacing chapters from Part 1.

22. Project management ( 8th ed. Chap 5, 25)

I have separated project planning from more general project management issues. This introduction focuses on risk and people management so combining elements of Chapter 5 and chapter 25.

23. Project planning ( 8th ed. Chap 5,26)

Material on cost estimation now integrated with the discussion of project planning, which seemed a more logical structure than in the 8th editions where they were widely separated. New material on plan-driven development and agile planning included.

24. Quality management ( 8th ed. Chap 27)

Discussion of program inspections (from Ch 22) that overlapped with the discussion of reviews in Chapter 27 now integrated in this chapter. Slightly extended section on metrics and measurement.

25. Configuration management ( 8th ed. Chap 29)

Covers largely the same material as Chapter 29 but completely rewritten and reorganized with new examples and diagrams.

26. Process improvement (8th ed. Chap 28)

No major changes from 8th edition.