...a single-volume introduction to Software Engineering in the real world
I wish I had read this book 20 years ago. When the first edition was published I had recently graduated with a Maths degree whose computing content was negligible and whose software engineering content was nil. I then had to learn software engineering on the job and this would have been much easier had I had a general overview, such as this book provides.
The book is split into five sections. The first is an introduction, which covers the problems of software development and the need for software engineering. The second covers project management topics, planning, scheduling, tracking, SQA and SCM. The largest section describes the traditional structured techniques; analysis, architectural and detailed design, UI design, testing strategies and techniques. A section on the corresponding OO techniques follows. The final section covers a selection of advanced topics, such as formal methods, client/server, CASE and web development.
Clearly a single volume on such a large subject cannot go into great detail. It will not turn you into an expert on any of the topics, but will allow you to understand what the experts are doing and why. When you are ready to learn more about a topic, you will find a comprehensive bibliography and links to other resources.
I would highly recommend this book to anyone who needs a single-volume introduction to Software Engineering in the real world. It gives a well-written, pragmatic coverage of most mainstream topics. I cannot say from personal experience whether it will be relevant to an academic course, but I would certainly hope so and if not, then it should be viewed as a source of remedial education. UK members may well prefer the European adaptation by Darrel Ince, which provides more coverage of European standards and which is also a lot cheaper.