Forside > Bøger > Reviews of OOA&D > Cockburn review
Review of Object-Oriented Analysis & Design - UML

Reviews of Mathiassen, Munk-Madsen, Nielsen og Stage: Object-Oriented Analysis & Design.

Alistair Cockburn, Senior Consultant, Humans and Technology, Salt Lake City, UT, USA.

I thought to write a short review of this book. I can't. These authors perform an amazing job in this college-level text, which will also be useful as a study guide to anyone short of a bona-fide OO design expert. As a sceptical, experienced methodologist, project consultant, and OO designer, I did not think it was possible to describe specific useful techniques for design, and also give the student useful information about the context of the project itself. Nor did I think it was possible to capture in one book the specificity of recommendations needed for college-level instructional material, with the openness of opinion needed for ongoing personal development, and also the hints for tailoring work habits to specific and varying projects.

This is a book written by people steeped in the OO design tradition, the socially aware "Scandinavian school" of software design, and the understanding of "methods" as an individual self-education process. They are expert in each of these areas, and it shows in the completeness, confidence, and openness of the chapters and the book as a whole.

The result is that the newcomer to object technology gets to see a portfolio of requirements, analysis and design techniques in a remarkably readable and succinct form. Brevity and clarity of developer expression is emphasized throughout (thank goodness!) and is demonstrated in the writing of the book itself. Woven around the specific techniques are notes and checklists for undertanding where to tailor or supplement the ideas. The reader gets to see how a set of experts would view a project, what checklists they would use, as they think about whether the software should be developed with a dominant eye to the architecture or the application domain.

Those more expert will pick up good advice about how to tailor the design approach for different projects, and deal with user interface design. Those most expert will appreciate the uncanny subtlety with which the authors have balanced the needs of being specific with the needs of being flexible.

Beyond the obvious set of design techniques, here are five areas I particularly enjoyed seeing in the book:

  • a small framework for recording out the social context in which the system will be built, as well as its technology, application area and responsibility;
  • the steady reminder in each chapter to study recurring and useful "patterns", patterns that occur in the OO model, in its behavior, in the system architecture, even in the project setup. People who develop a habit of noticing useful patterns will get steadily better over time.
  • inclusion of a screens-as-statecharts notation for describing the user interface flow. This is among the few books that includes this notation.
  • the section on tailoring the developer's approach to projects. I expected handwaving, and found instead good and specific tips.
  • notes for mapping the design techniques and notations to the different programming languages.

Frankly, I think everyone but the most experienced of my network of colleagues would benefit from studying the content of this book, since it is so rare to find social issues, architectural issues, and project-tailoring issues so neatly tied to the task of designing software. Far from "academic" (in the pejorative sense of "not having enough to do with the 'real world'"), this book superbly prepares the student for the real world. I think that the student coming out of a course based on this book will have in his/her working style a readiness to learn and adapt to project situations and technology, exactly as we need. I am really only worried that there may be a shortage of instructors who appreciate the value of the book's project-contextual content - it would be a waste to only teach the OO design techniques, and omit the lessons in keeping the techniques effective.

This page updated on September 19th 2000. Reformatted February 1st 2002.