Any book in its ninth edition has already proven its place to its audience - Sommerville's text has earned its reputation as a standard in the field. This book's twenty-six chapters cover four major topics: introductory material, dependability and security, advanced software techniques, and project management. The first section include basic life cycle phases of requirements, modeling, architecture, implementation, testing, and ongoing support, along with smattering of the social processes in which these activities take place.
Advanced topics, the third section, include modern topics such as aspect-oriented programming (AOP), component systems, and embedded applications. AOP seems to be moving in from the fringes of software development (Aspect-Oriented Programming with the e Verification Language gives lots of good reasons for that, despite being tangential to normal software). Still, object orientation dominates current practice by a wide margin and gets only minor mention, so I find the emphasis misplaced. Likewise, the embedded section under-represents the 99% of all processors that don't run Windows or Linux, i.e., the ones in your microwave, digital watch, CD player, car air bags, sewing machine and cell phone. Still, mentioning it at all puts this ahead of many comparable texts.
So does the second section, on dependability and security. As computers become more pervasive and take on more life-critical applications, these issues only grow in importance. As with other sections, however, topics that represent many people's entire careers get only 20 or 30 pages here. A book of this breadth necessarily sacrifices depth, however, so I can't complain too loudly. Likewise, the section on project management issues could be a book of its own, like Braude's Software Engineering: An Object-Oriented Perspective.
Real discussion of this book's content would take more space than I have here, and would soon get into matters that depend on specific applications or on personal opinion and experience. I found one pervasive weakness in this book, however, a weakness shared by every other software development and engineering text I've seen. Standards and regulatory requirements get only scant mention. In the real world, software design and implementation happens in a complex environment of interlocking standards that affect nearly every aspect of software design and implementation. I applaud Sommerville for mentioning Sorbanes-Oxley (despite the book's international audience). Still, the hundreds of applicable standards from the IEEE, ECMA, ISO, ITU, NIST, and dozens of other organizations warrant a chapter of their own. I look forward to seeing that chapter, in this book if not in some other.
- wiredweird
PS: I'm wrong a lot, but that cover photo could credibly be MIT's Stata center under construction. If so, in restrospect now that it's completed, that wouldn't be the most uplifting choice of engineering images.