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:
Object Design: Roles, Responsibilities and Collaboration
Author:
Rebecca Wirfsck and Alan McKean
ISBN:
0-201-37943-0
Publisher:
Addison-Wesley
Pages:
390pp
Price:
£37-99
Reviewer:
Silvia de Beer
Subject:
object oriented
Appeared in:
15-4
This book focuses on the practice of designing objects as integral members of a community where each object has specific roles and responsibilities. The book does not require any experience as a developer and can be used as a first study of object design. However, also for experienced developers this book does offer very valuable and refreshing advice and teaches about modern views on object design.

The purpose of a design process is to create a collaboration model, which can be developed by studying the collaborations and responsibilities of objects. The design process starts with writing a brief design story, searching for candidate objects and choosing good names. A whole chapter is dedicated how to find objects and valuable advice is given, which goes beyond the advice of identifying noun phrases. A useful concept while creating the collaboration model is to look at an object's role in the light of stereotypes. These stereotypes help to discover the collaborations between various types of objects. An object can be an information holder, structurer, service-provider, controller, coordinator, interfacer. One should write the object's purpose and stereotype on a CRC card and start to connect the object candidates.

I was mostly impressed with the chapter on Control Style, where in an example is shown how an implementation based on a state pattern can be converted to a delegated control style. I found this example highly valuable, because in my experience less experienced developers quickly tend for a centralised control style. With this case study many important points about different control styles become clear.

I liked the layout of the book, which uses blue section titles and useful side comments on the main text in the borders. The only negative point is may be that the chapters have no numbered subsections, which make it slightly difficult to see a hierarchic structure in a chapter.