This is a book that all people involved in the development of medium and large-scale software systems should read. In this 7th edition, Sommerville covers and extends all important details in the life-cycle of any of these systems: from requirements, specification and design to development, verification and validation - not forgetting management. The author also gives special relevance to the social-technical aspects of software system development, all the processes involved in it and also project management.
Managing people deserves its own part in the book as it involves, arguably, the most critical processes to achieve success: an evolving system with assured quality in terms of availability, reliability, safety and security. Due to their sensitive characteristics, critical systems are a special class of systems widely covered throughout all the book.
In this book, Sommerville demonstrates his considerable experience of being involved as an actor with different roles in the life-cycle of several large-scale and complex systems. He successfully manages to pass the knowledge acquired to the reader. Very useful UML and Java practical examples are employed to exemplify the theoretical concepts and foundations of software engineering.