Software Engineering. 
6th Edition
Ian Sommerville
 

Since this book was published in 2000, there have been important new developments in software engineering such as the increased use of component-based software engineering and agile methods. To reflect these new developments, I have revised and updated the 6th edition and the 7th edition of this best-selling textbook is now available. For information about changes and updates, see the SE7 website. I am no longer actively maintaining the site for the 6th edition - all internal links should work but I don't have time to fix external links that are broken.

Software Engineering, 6th Edition. August 2000.

One of my goals in preparing the 6th edition was to reduce rather than increase the size of the book and this has entailed some reorganisation and difficult decisions on what to cut out while still including important new material.   There are new chapters covering software processes, distributed systems architectures, dependability and legacy systems.  All chapters have been updated and several have been extensively rewritten. Program examples are in Java and, where appropriate, graphical system models are defined in the UML. I have described the changes in more detail here.

Several sections of the book are available as PDF downloads including the Preface, the Contents, Chapter 1: An Introduction and Chapter 12: Object-oriented Design.

An extensive set of supplementary material for instructors to support the use of the 6th edition in teaching may be downloaded from the links below. These include powerpoint presentations, case study material, Java program source code, a software engineering glossary and, for instructors only, solutions to selected exercises. 

It is the policy of my publishers, Pearson Education, that selected solutions are only made available to instructors who recommend the book in their teaching - I cannot distribute these directly so please do not ask.

INSTRUCTOR'S GUIDE WEB SITES REFERENCED FURTHER READING

Slides for all book chapters (ppt and pdf)

Solutions to selected exercises
These solutions are ONLY available to teachers who have registered with the publisher to use the book in their teaching. Register HERE to get a password to access the solutions. I cannot issue passwords so please don't ask.

Case studies and examples
Case studies and examples help students understand real systems and supplement the material in the book. In my courses, I use an automated insulin pump as a comprehensive case study and draw on a range of examples including the Internet Worm and the failure of the Ariane 5 launcher in 1996

Insulin pump case study

Internet worm. An early example of a security failure. Discusses causes of the problem.
Ariane 5 launcher explosion. The Ariane 5 rocket failed on its maiden flight due to software problems. This discusses how these occurred.
Airbus 340 flight control system. Discusses the use of redundancy in the Airbus flight control system.
London Ambulance Despatching System. Discusses the failure of the LAS system.

Student projects
These links are to projects of different types set for students at Lancaster University

Project for Computer Science students (Dr J. Allanson and Dr K. Cheverst)
Project for Computer Science and Software Engineering students (Dr G. Kotonya)
Project for Computer Science and Multimedia students (Dr A. Friday)

Glossary of SE terms
A glossary of terms that we produced as part of the results of a European project on re-engineering (RENAISSANCE).

Java program source code
Source code and supplementary code to make it executable. Simple, text I/O. JDK 1.2 - I have not tested the code with more recent versions
.

VORD (Viewpoint-oriented Requirements Definition) toolset
A rather old toolset to support the VORD method described in the book is available.

Material from the 5th edition
Some chapters that were cut from the 5th edition can be downloaded including Chapter 10 - Algebraic specification, Chapter 11 - Model-based specification (Z) and Chapter 15 - Function-oriented Design. The source code in Ada and C++ for some (not all) examples is also available.
 

COCOMO 2

CORBA

eXtreme programming

Requirements management tools (DOORS)

Requirements management tools (Requisite Pro)

Safety-critical systems standard (Search for 00-56 to find pdf)

Survivability

Unified Modeling Language

Usable web page design


 

Introduction

Requirements

Design

Critical Systems

Verification and Validation

Management

Evolution

These web pages provide supplementary material, free of charge, for users of the book.  They are updated and enhanced intermittently when I have some time.   The links worked when I set them up but the dynamic nature of the web means that external links may stop working at any time. Please let me know of problems and (if possible) I will try and fix them.

Contact me at ian<att>software<hyphen>engin<dott>com . Replace <att>, <hyphen> and <dott> with the usual symbols. I regret that I don't have time to give advice to students on their homework and will not answer any mail asking for such advice.

The material here has been included for its instructional value. Neither the author nor Pearson Education Ltd offer any warranties or representations in respect of its fitness for a particular purpose. No liability is accepted by either the author or the publisher for any loss or damage arising from its use.