[Home Page] - [Reviews Main] | |
|
Object-Oriented Software Engineering (revised 4th reprint) by Ivar Jacobson Recommended |
| ISBN: 0-201-54435-0 Publisher: Addison-Wesley Pages: 528pp Price: £29-95 |
| Categories: object oriented engineering modelling languages |
| Reviewed by Eric Richards in C Vu 6-6 (Sep 1994) |
The subtitle is 'A use-case driven approach' and this indicates its unique strength. I have suggested in earlier reviews that the best approach to O-O is to read Booch's book first (particularly now that he has revised his notation to conform more closely to Rumbaugh's book on OMT and produced all the illustrations in C++) to get an overview and then read Rumbaugh to fill in details, especially if you are involved with relational databases.
Jacobsen's book is a harder read, partly because of the style, but if you only read three books on object-oriented design, this should be one of them. Jacobsen's 'use cases' are what others call scenarios and he presents convincing arguments for employing use cases based on user-specified requirements as the very foundation of O-O design.
This is the essence of the book. He makes a less convincing case for changing notations in mid-stream, just because any preliminary modelling of a system, mapping real-world entities onto computer objects, needs to be supplemented by classes concerned with implementation details such as the user interface. Recall that the Smalltalk community has long used model-view- controller or model-pane-dispatcher classes to similar effect and more recently visual Doc/View programming methods have been introduced into C++ classes by Microsoft and Borland, in every case without introducing wholesale notational inconsistencies. Although none of these class-based systems are mentioned in the book, you may find it helpful to keep one of them in mind while reading it and to relate its concepts to what Jacobsen terms entity objects, control objects, and interface objects.
The book is divided into three parts: Introduction, Concepts, and Applications. The second is the longest and most important. It repeats some of part one, which could be skimmed over by anyone familiar with the other texts I mentioned. Interaction diagrams are introduced in a way entirely consistent with the Booch and Rumbaugh texts. The book's most significant single sentence is 'The use case model may be expressed in terms of the domain object model, structured by the analysis model, realised by the design model, implemented by the (class) implementation model and tested in the testing model'. These successive elaborations provide a complete methodology that is more firmly rooted in the customer requirement specification than the alternatives.
The analysis model (which Jacobsen calls robustness analysis in presentations) is where he first introduces control and interface objects alongside objects corresponding to entities in the outside world, i.e. where he paves the way for Doc/View or equivalent concepts.
This is the best, almost the only, account of a significant addition to the received wisdom of O-O design.
To link to this review, please use the URL: http://www.accu.org/bookreviews/public/reviews/o/o000921.htm
Copyright © The Association of C & C++ Users 1998-2000. All rights reserved.