johnson@p.cs.uiuc.edu (06/12/90)
I've seen lots of methods for OOD described, but most of them didn't match well what I did. CRC is an exception. It models faithfully what goes on in the head of an experienced Smalltalker, making it easy to discuss designs with other people. It has been used a lot inside Tektronix, where it was developed by Beck, Cunningham, and others. There is a book by Wiener, Wilkerson, and Wirfs-Brock that should be out any week now. The book is on object-oriented design, and uses the CRC method as a basis for the entire book. The authors are all from Tektonix. Wirfs-Brock is still there. It is the best book on OOD that I have seen, and is the only one that accurately descibes the design style used in the Smalltalk community, although it is in fact a very general design method and can be used with any programming language. My favorite event at OOPSLA'89 was having Ward Cunningham describe HotDraw to me using CRC cards. I had tried to figure out what HotDraw did before, but was stymed by the lack of documentation. I looked at it again after OOPSLA, and it was crystal clear. CRC cards make it easy to get the big picture, to see how the various parts of a system are related to each other. They complement the Smalltalk browser very well, since it describes low-level relationships well, such as who calls who. I'll be teaching about CRC cards and OOD as part of a 3 day course on software design that will be held here (at the U of Illinois at Urbana-Champaign) July 18-20. Ralph Johnson