Home Page -------------------
[Home Page] - [Reviews Main]
-------------------

Book Review
Software Development with C++ (Maximising Reuse With Object Technology) by Kjell Nielsen
Recommended
ISBN: 0-12-518420-4       Publisher: Academic Press       Pages: 450pp       Price: £22-95
Categories:   object oriented     advanced c++    
Reviewed by Selvyn Wright in C Vu 8-1 (Nov 1995)
This has to have been the best book on OO software development that I have read to date. Kjell's approach to software development encompasses the whole of the software development life cycle. I would strongly suggest that this book be read by all OO Analysts, Designers and Programmers, though some enthusiastic OOPs may find this book a trifle difficult to digest.

A large number of my clients contract me for OOA work, this book offers a wide knowledge base for areas of discussion. Covered within the book are all the phases of software development, starting at the project specification and ending at implementation in C++. Each phase makes a clean transition to the next with a detailed discussion on how they differ but relate to one another. All the concepts discussed are demonstrated with reasonably concrete examples (which are patterns of many of the problems software developers must solve).

If you are looking for C++ idioms, this is not the book. This book will help you make the difficult transition from OOA (various methodologies shown) to OOD (various methodologies shown) to OOP (C++). I would suggest that you use the concepts concerning the different OOA/D methods as presented in the book carefully. There are areas in which the author's interpretation of some of the philosophies underpinning these methods is weak. Use the ideas expressed in the book about these methods as previews only. If you are interested in one of the methods presented in the book you would be well advised to purchase literature by the author of the method in question.

The book offers an interesting section on C++ development of the ideas discussed as analysis and design issues. As you would expect topics such as inheritance, aggregation and polymorphism as treated in OOA/D are directly translated into C++ constructs (i.e. class inheritance, virtual functions and classes as sub-components of other classes to represent aggregation). Class associations are treated in a way which I found strange and I am still debating as to whether or not I agree with his implementation approach (it's an interesting mechanism, client-server relationship in which the server is not a member of the client, but the client must locate the server in the global name-space; create a temporary association with it and then instantiate an event to the server). The section on C++ exception handling offered useful guidelines but no real demonstration of the overall syntax of C++ exceptions (maybe it shouldn't).

To summarise, this is a book which should be on the bookshelf of any one who is serious about software development.


Last Update - 13 May 2001.

To link to this review, please use the URL: http://www.accu.org/bookreviews/public/reviews/s/s001142.htm

Copyright © The Association of C & C++ Users 1998-2000. All rights reserved.

Mirrored from http://www.accu.org/