REVIEW - Case Studies in Object-Oriented Analysis and Design

Title:

Case Studies in Object-Oriented Analysis and Design

Author:

Edward Yourdon, Carl Argila

ISBN:

0133051374

Publisher:

Yourdon (1996)

Pages:

346pp

Reviewer:

Tom Parke

Reviewed:

August 1998

Rating:

★★★★★

This is an excellent book. I highly recommend it as anyone's second book on OOA-OOD.

This is an excellent book. I highly recommend it as anyone's second book on OOA-OOD.

The book is devoted to working through two case studies in OOA and OOD. One is a real time system, an elevator control system (again!) and the other is basically a database system - a subscription management system for a small magazine.

Devoting a whole book to just two case studies allows every step of the process to covered fully. To stop the detail getting in the way the complete output of each stage is deferred to the appendices, the chapters deal with examples and interesting highlights.

While he uses the Coad and Yourdon notation, it does not follow the methodology (it says in the preface) but borrows from the other leading methodologies as they see fit. My feeling is that this really isn't a problem, the Coad and Yourdon notation is less extensive than some and while different from OMT, it models the same things and is perfectly easy to read. Certainly my current preference is to apply various OO modelling techniques to a problem as I see fit and this books has a similar largely pragmatic approach to methodology.

They start by linguistic analysis to produce candidate objects and operations. Then progress to produce 3 models of the system - modelling the data, the data flow and the processing. This produces a context diagram, an entity-relationship diagram, an event-response model, a state transition diagram and a decision table. Personally I think the linguistic analysis is a long winded way of getting an initial set of candidate objects, but perhaps in larger systems it would avoid missing any.

These models are then analysed to produce objects and classes, which are then structured into inheritance and containment class hierarchies. The objects are then analysed for their attributes, instance relationships and their services and messages. Finally there is a very full description of the object interactions for each identified external event.

This completes the analysis, the authors give a very clear account of how this then forms the core of the design and the sort of elaboration that remains to be done in the design phase. This is an area I had been very uncomfortable with, all the examples in the original OMT book, for instance, seem to start at the design level and I have a grave concern that OO-Analysis normally does not produce a clear specifi-cation of the system before embarking on the design.

This leads to insufficient validation of the system with the users before building it, poor control over the intended functionality of the system and poor system testing. Yourdon's approach, with context diagram and 'traditional' models before OO ones and then a full description of how the external events are satisfied by the object interactions addresses this concern fully.

I have one criticism, which is that while they mention the need to iterate over the steps and revisit and revise earlier models, they don't actually illustrate this in their case studies.

This book works if one reads it, quickly reading the detail but would handsomely repay a through working through, preparing each step before looking at their version. I am also sure it would make a valuable teaching resource. At the start I said it would be a good second book on OOA and OOD, actually I think it would be a good first book too. The book contains a diskette containing the complete case studies as 16-bit visual basic applications (the readme doesn't say which version of VB) and the designs as System Architect files.


Book cover image courtesy of Open Library.