Software Engineering: Principles and Practice
Author: Hans van Vliet
Textbook writers tend to be experts in their field, and this is usually noted in the difficulty of the language they use. But this textbook avoids jargon and covers the many aspects of software engineering clearly and comprehensibly.
The text is divided into three parts: software management, the software life cycle and advanced topics. Each chapter sets out learning objectives and then offers a summary and exercises at the end. The questions are useful and relevant, if not especially stimulating.
The author is well aware of the huge gap between academic theory and real practice, and he addresses the issue by providing information on the fundamental elements while also pointing out how things may differ in the real world. This gives an interesting insight into the world of software engineering projects and potential pitfalls.
Despite the book's coverage, some topics, such as formal specifications, are missing. Most computing degree courses at least touch on formal specifications (even though they have little place in the frantic world of programming), which are vital for systems where code must be error-free.
Those quibbles aside, I would thoroughly recommend this text to anyone interested in learning more about software engineering. It covers all the elements needed to engineer a successful software project, such as the software life cycle, XP programming and the human social aspects of software engineering. It also contains more advanced information for those with a deeper understanding of the engineering process.
Who is it for? Students of any computer software-related degree.
Presentation: The book is not too dense with text, and tables and diagrams illustrate important points.
Would I recommend it? Yes, to all students studying software engineering or a computer-science-related degree.