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:
Software Engineering with Ada
Author:
Grady Booch
ISBN:
0-805306-04-8
Publisher:
Benjamin Cummings
Pages:
575p
Price:
p
Reviewer:
Colin Paul Gloster
Subject:
ada
Appeared in:
16-2
Grady Booch used to be actively involved with Ada before he ported the Booch components to C++ and merged his diagramming notation into UML. At the end of 1984 he stopped writing an Ada advice column in "Ada Letters" which had a very different style to this book but a similar target readership.

Page 63 is the first to contain any Ada code. The rather late appearance of code is deliberate so as to devote earlier pages to such issues as the software crisis; the history of Ada; software engineering and determining nouns to be mapped to objects. From page 404 onwards the chapters also have no code but contain less welcome discussions on IDEs and future trends.

Unlike what is unfortunately the majority of programmers, Grady Booch appealed against importing packages into direct visibility. Ada 95's use type mechanism is a comfortable way of enjoying some of the conciseness brought about by an Ada 83 use clause while not introducing any scope clashes. The book described an Ada 83 substitute of a use type clause. Something else which you might find in old code could be optimisations for accept statements recommended in the book. Though accept would be discouraged in one particular modern community, the author's dismissiveness of polling in favour of Ada tasking would have been unfair even when the book was written.

As this book is from before the effort to define Ada 9X, it contains claims that Ada 83 is OO. The object based decompositions in the book lack inheritance and polymorphism. For areas of his solutions where classes or abstract data types are not needed, Grady Booch had abstract-state machines: which he had much more easily represented by Ada packages than the insecure, inflexible awkwardness of the Singleton pattern in C++ in Gamma's; Helm's; Johnson's and Vlissides's "Design Patterns: Elements of Reusable Object-Oriented Software".

He provides an explanation for the language oddity which is the locating of a package's private section in the package specification instead of the package body. Unfortunately a few small mistakes and some misleading explanations for other language elements survive in the second edition. Very few spelling mistakes are to be found in the English sentences but illegal spaces are common in the code.

The blurb boasts that this edition has an "updated section on object-oriented techniques to reflect the current state of practice" without drawing attention to one huge case statement all of whose branches are identical. A default may be justified from time to time, but his assertion that when others = "is useful" contradicts guidelines issued by a number of parties.

One of his examples has a memory leak. This latter edition somehow contains no warning of some of the quality issues with supposed Ada compilers of the time.

Generally Ada is correctly and easily explained. The book is designed to be sped through.