A poor textbook for a murky field of study.

Sadly, software engineering is a big grab bag of topics necessarily focuses on how high ceremony, high discipline projects work.Real projects almost never see the kinds of specialization and formalism described in a software engineering class, except for big ticket, high cost, cannot fail, bureaucratic projects.Unfortunately, those projects have very little in common with each other, and even less in common with everyday projects, especially those using any of a number of agile methods.

Yet the text paints everything with a broad brush, giving the impression that every project should have a staff of 20 dotting i's and crossing t's, while simultaneously giving the impression that you can choose any of a, b, c, ..., q, r, s, ... w to structure your project, oh wait, you need to do some of (a, b, c) and some of (d, e, f), oh, wait, those steps are optional too, maybe.

The text reads like an accretion of paragraphs written over several revisions, never edited for readability, consistency, currency, applicability or accuracy, just so long as it has "plenty of examples" and drops enough references to notable names, papers and approaches to appear comprehensive.Without ever vetting that the tools, techniques and examples references are in any way actually relevant or in use.

Hardly a practitioner's approach to software engineering.