Classic Book Review: The New Software Engineering

Sue Conger
Wadsworth, 1993

ISBN 0534171435 (boards)
 

Buy it from Amazon.com (commission paid)
Buy it from Amazon.co.uk (commission paid)
 

Other Reviews

 

I liked this book as soon as I saw it, and have had no reason to change my mind since. Sue Conger has written a careful, informed, practical and well thought out textbook, and at over 800 pages it is longer even than Ian Sommerville's bestseller. It is squarely aimed at students on an introductory course, but to cover all of this in one term/semester or "quarter" as the author says she's done in the Preface, the students surely have to work very intensively.

The book is as clear as you could hope; an analyst's careful hand has organised each chapter with a brief Introduction; a well-structured main section with subheadings, diagrams, tables, lists...; a Summary; References; Bibliography (with descriptions); Key Terms; Exercises; and Study Questions.

The overall structure of the book is equally good. Chapter 1 gives an overview of what software engineering (SWE) is; of project life cycles; method[ologie]s; and the need for "user" involvement. The rest of the book is in four parts:

  1. Preparation for Software Engineering
  2. Project Initiation
  3. Analysis and Design
  4. Implementation and Maintenance

Part I looks at how we learn and develop expertise, with practical advice; at project management; and at "data gathering for application development", in other words, requirements discovery, with a note on professionalism and ethics too.

Part II's two chapters cover (business process) reengineering, and feasibility analysis and planning. These are major topics in their own right; the coverage is sensible, practical, and surprisingly detailed given the forty-odd pages for each chapter.

Part III looks at a wide range of specification and design methods. The student is introduced to everything from JAD to object-oriented design, taking in "process-oriented analysis" (with traditional context diagrams and dataflows) and much else. It is uniformly well explained, and everything fits together -- this is an account by someone who knows what each method is for, and what each technique can actually yield. Each method is described with its conceptual fouindations, explanation of the terms used, an account of the activities involved, and whether and how tool support is available.

Part IV moves into the choice of implementation languages (where the advice is sensible, but the list of languages has dated); purchasing hardware and software; testing and quality assurance (a slightly odd pairing, given that QA applies to the whole of the life-cycle); change management; and finally, software engineering as a career.

The good news for this book is that much of the account is essentially timeless; professionalism and care don't go out of fashion. Conger is emphatically not an old-style "this is how to do programming and testing" sort of book; it's far deeper and more useful than that. Many buzzwords have been invented since it was published, and whole schools of thought (or at least, of fashion) have come into being. But perhaps newest is not always best; Sue Conger is a solid and reliable teacher, and many in industry could do well to refer to her book. And of course, even the trendiest college courses sometimes need good old-fashioned engineering content that is known to work.

© Ian Alexander 2004