On the whole this is a good book and I would recommend it as a textbook
I have a kind of perverse interest in reading books on software engineering. However, it is true to say that almost all such titles are not aimed at me at all, they are designed as textbooks for the undergraduate student. This is such a book, an introduction to the discipline of software engineering.
I first level a criticism that applies to this book as well as all other titles on the subject that I have ever seen.
Software engineering is a large and complex subject. There are many interplaying forces that to be described faithfully need lengthy discussion. However, the average student is not truly aware of the context of the software engineering discipline and large books such as these are not particularly helpful.
You pick up such a weighty tome (this edition has 726 pages) and are immediately daunted. I really want to see a small book on software engineering that will introduce the subject and give an overview of the concepts involved.
However, with this in mind, Vliet's book has a lot of merit. It is large and it is fairly comprehensive.
The layout is clean and inspiring. The book is well structured. The tone is well set. These are all issues that if pitched wrongly would spoil the textbook's appeal to the student.
So the content? There is a lot of it. It is broad but well balanced. A good introduction precedes three main sections;
i) Software management (including software life cycles, team-dynamic issues, project issues such as cost estimation, quality issues and planning),
ii) The software life cycle in depth (requirements, architecture, design, testing, maintenance, with a section on OO-design thrown in) and
iii) Supporting technology (formal system specifications, user interface design, reusability, reliability and tools).
The second edition has seen a large number of alterations and improvements, including the addition of the requisite chapter on object-oriented methodologies. Each chapter has a concise summary of its objectives up front and is followed by a set of exercises of varying complexities at the end.
Seemingly like all books of its kind, an academic has written this book. There is a detached feel and a little more first person real world experience would probably lend a different insight into the important issues discussed.
On the whole this is a good book and I would recommend it as a textbook. I have to carefully consider this viewpoint as I am well aware that I am far from my student days. As with all similar books, the discussion of professional engineering issues can only really be benefited from when the student has a good grasp of what the subject really entails in the first place.