Starting with the deceptively simple question 'What is Object Oriented development?', this book carries the reader through both analysis and design, including the issues of concurrency, persistence and implementation.
A single example application is introduced at the start and weaves its way through requirements ana-lysis all the way to implementation. All the techniques discussed are drawn together in the final chapter, where a second example application is given the same treatment, resulting in a small Windows game.
The analysis and design is presented through the still relatively new notation of UML (Unified Modelling Language) as implemented by the Rational Rose CASE tool. The text is targeted squarely at the mass market (i.e. Windows) and uses Microsoft Visual C++ version 5 with the MFC for the example code.
Although the book is well structured overall, it is let down in a couple of places where the emphasis has been placed on completeness rather than clarity. For example, in the chapter on class design, complex design patterns are discussed which do not relate to the example application being discussed in the rest of the chapter. These advanced topics serve mainly to confuse the novice, at whom this book claims to be targeted.
Overall the book covers all of the core topics well, although on occasions it is hard going, as advanced techniques tend to be introduced too early and thus distract the reader. Apart from this, the author has produced a creditable book aimed at newcomers to the field of Object Oriented programming.