Software Engineering – Iam Sommerville – 9th Edition


The 9th Edition of my textbook on Software Engineering was published in March 2010. This is a major revision of the previous edition with extensive reorganization and 30-40% new material. See the preface for details of the changes and the contents list for information about the book’s structure.

As I was writing the final chapters in this book in the summer of 2009, I realized that software engineering was forty years old. The name ‘software engineering’ was proposed in 1969 at a NATO conference to discuss software development problems: large software systems were late, did not deliver the functionality needed by their users,
cost more than expected, and were unreliable. I did not attend that conference but, a year later, I wrote my first program and started my professional life in software.

Progress in software engineering has been remarkable over my professional lifetime. Our societies could not function without large professional software systems. For building business systems, there is an alphabet soup of technologies – J2EE, .NET, SaaS, SAP, BPEL4WS, SOAP, CBSE, etc. – that support the development and deployment of large enterprise applications. National utilities and infrastructure – energy, communications and transport – all rely on complex and mostly reliable computer systems. Software has allowed us to explore space and to create the World Wide Web – the most significant information system in the history of mankind.

View more

  • Part 1 Introduction to Software Engineering
    Chapter 1: Introduction
    Chapter 2: Software processes
    Chapter 3: Agile software development
    Chapter 4: Requirements engineering
    Chapter 5: System modeling
    Chapter 6: Architectural design
    Chapter 7: Design and Implementation
    Chapter 8: Software testing
    Chapter 9: Software Evolution

    Part 2 Dependability and Security
    Chapter 10: Socio-technical Systems
    Chapter 11: Dependability and Security
    Chapter 12: Dependability and Security Specification
    Chapter 13: Dependability Engineering
    Chapter 14: Security Engineering
    Chapter 15: Dependability and Security Assurance

    Part 3 Advanced Software Engineering
    Chapter 16: Software Reuse
    Chapter 17: Component-based Software Engineering
    Chapter 18: Distributed Software Engineering
    Chapter 19: Service-oriented Architecture
    Chapter 20: Embedded Systems
    Chapter 21: Aspect-oriented software engineering

    Part 4 Software management
    Chapter 22: Project management
    Chapter 23: Project planning
    Chapter 24: Quality management
    Chapter 25: Configuration management
    Chapter 26: Process improvement
  • Citation

Leave us a comment

No Comments

Notify of
Inline Feedbacks
View all comments
Would love your thoughts, please comment.x