Software Engineering – Iam Sommerville – 9th Edition


The 9th Edition of my 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 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 were late, did not deliver the functionality needed by their users,
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 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, and transport – all rely on and mostly reliable computer systems. Software has allowed us to explore space and to create the World Wide Web – the most significant information in the history of mankind.

View more

Table of Contents

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

Leave us a commentNo Comments

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