ACCU Home page ACCU Conference Page
Search Contact us ACCU at Flickr ACCU at GitHib 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 1949 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:
Design by Contract, by Example
Author:
Richard Mitchell&Jim McKim
ISBN:
0 201 63460 0
Publisher:
Addison-Wesley
Pages:
238pp
Price:
$44.99
Reviewer:
Francis Glassborow
Subject:
design
Appeared in:
14-1
I first came across Design by Contract when reading about Eiffel. Support for DbC is one of the main features of that language. The idea being that each function should start with a set or pre-conditions (things that had to be true for the function call to go ahead) and end with a set of post-conditions, things to be enforced before successful return (failure of either group causes failure). It is very difficult to bolt DbC support onto a language. Of course when you understand the ideas, you can implement them manually. But if you understand OOP you can do it manually in C or even, if you are a real masochist, in assembler. But C++, Smalltalk etc. provide you the tools to do OOP without too much pain and tedious repetition.

In the same way Eiffel provides the tools for DbC. I believe there is a tool that allows you to bolt on a kind of DbC to Java (iContract, seewww.reliable-systems.com).

The authors claim to have distilled DbC down to six principles, listed on pages 42-3 (and discussed in the preceding text.) The problem is that to get much value from this book you need to have suitable software tools. In the light of this, I decided to tell readers that this book exists and invite someone to volunteer to do a complete review. Of course a precondition for volunteering is that you have tools that provide adequate support for DbC (either Eiffel or Java + iContract). I would also like someone to volunteer to have a look at iContract and write about it for our Members' Experiences column. Lastly, if it can be done as a bolt on to Java, can it be done for C++?Professional Development