This thoroughly updated text teaches students or industry R & D practitioners to successfully negotiate the terrain for building and maintaining large, complex software systems. The authors introduce the basic skills needed for a developer to apply software engineering techniques. Next, they focus on methods and technologies that enable developers to specify, design, and implement complex systems. Finally, the authors show how to support the system changes throughout the software life cycle.
"This is a well-written book using an object-oriented approach to describe an in-depth methodology for building software systems. Good examples are used throughout to illustrate concepts. The clear and lucid flow of the authors' writing enhances and contributes even mare to the didactic aspects of this book. ― William Lively, Texas A&M University
"This is the best software engineering book that I have come across. I plan to use it at both the undergraduate and graduate levels. The book has numerous advantages . . . a wealth of good technical information, useful heuristics, and good advice. The book can be used effectively by both university programmers and by software engineering professionals. ― Martin Purvis, University of Otago