ACCU Home page ACCU Conference Page
Search Contact us ACCU at Flickr ACCU at GitHib ACCU at Google+ ACCU at Facebook ACCU at Linked-in ACCU at Twitter Skip Navigation

Search in Book Reviews

The ACCU passes on review copies of computer books to its members for them to review. The result is a large, high quality collection of book reviews by programmers, for programmers. Currently there are 1918 reviews in the database and more every month.
Search is a simple string search in either book title or book author. The full text search is a search of the text of the review.
    View all alphabetically
Title:
Object-Oriented Analysis and Design with Applications (2nd Edition)
Author:
Grady Booch
ISBN:
0-8053-5340-2
Publisher:
Addison-Wesley (1994)
Pages:
589pp
Price:
£
Reviewer:
Ian Bruntlett
Subject:
Appeared in:
27-6

Reviewed: January 2016

I decided to study this book to improve my OO skills. It is reasonably well-written and, as a hardback, is sturdy enough to see a lot of use. It is sufficiently in-depth enough to require deep study and multiple readings.

The inside front and back covers act as a convenient quick reference regarding the process of Object-Oriented Development process and Booch’s notation (probably superseded by the UML notation).

The preface discusses the evolution of this book, its goals, audience and structure. I am reviewing this book from the perspective of a Software Developer wanting to refurbish my OOA, OOD and OOP skills.

This book is divided into three main sections – Concepts, the Method, Applications/Case studies. Also, there is an appendix covering different OOP languages as well as Notes, Glossary and a classified Bibliography and Index.

Section One – Concepts – has 4 chapters: Complexity, The Object Model, Classes and Objects and Classification. Indeed, I was so determined to master this section that I spent a lot of time reading it, re-reading it, making notes by summarising the text and re-reading the notes. I made these notes in a Journal and there were 161 pages of notes. In addition, I used marker pens in the book itself.

Chapter 1: Complexity (covers Inherent complexity of software, Structure of Complex Systems, Bringing Order to Chaos and On Designing Complex Systems). This discusses the inevitability of complexity in I.T. systems and the role of OO in dealing with that complexity.

Chapter 2: The Object model discusses the evolution of the object model in software systems. From early programmes that dealt with mathematical things through to current day OO languages. It discusses OOA (Object Oriented Analysis), OOD (Object Oriented Design) and OOP (Object Oriented Programming). It discusses four major elements of the Object Model (Abstraction, Encapsulation, Modularity and Hierarchy) and three minor elements (Type system, Concurrency, Persistence).

Chapter 3: Classes and Objects (The Nature of an Object – an object has State, Behaviour and Identity, Relationships among Objects, The Nature of a Class, Relationships Among Classes, The Interplay of Classes and Objects and On Building Quality Classes and Objects). By the time you finish this chapter you should be confident when dealing with Data Abstraction.

Chapter 4: Classification (The Importance of Proper Classification, Identifying Classes and Objects, Key Abstractions and Mechanisms) builds on the previous 3 chapters to produce confidence with inheritance (generalisation­specialisation mechanisms).

Section Two – The Method – has 3 chapters. The first two (The Notation, The Process) are largely superseded by UML).

The third chapter, Pragmatics covers considerations beyond programming – in particular Management and Planning, Staffing, Release Management, Reuse, Quality Assurance and Metrics, Documentation, Tools, Benefits and Risks of OOD. This chapter is easier to read than most and is likely to be relevant for a very long time.

Section Three – Applications – has five chapters, each of which is a case study of an application of the OO process. Most of its pseudo-code is in C++ and some of the examples are (currently) difficult to understand. However, I’ll be improving my C++ and revisiting this section sometime in the future. The case studies involved are Weather Monitoring Station, Frameworks (Foundation Class Library), Inventory Tracking, A.I. (Cryptanalysis) and Traffic Management.

Conclusion. I really liked this book and find it difficult to review because there are so many things I find interesting in this book that I'd like to share in this review.