Learn Object-Oriented Design

The methodologies you will use are UML, Use-Case, CRC and Patterns.


There are a number of on line tutorials that you can use to learn UML at http://oma.com/PDF/ Here is a local index to some of the papers, with explanations of some of the more important ones. Look especially for the UML Tutorial. You need the Adobe Acrobat Reader for these files. You can download it from Adobe.


Rational is the primary site for UML as they are developing it. UML is the Unified Modeling Language and it is the melding of three OO Design methodologies: Booch, Rumbaugh, and Jacobson. Here is their tutorial.

Use Case is a Jacobson technique for doing analysis. A use case is a script like specification of a single user carrying out a single task with a system.

CRC (Class Responsibility Collaboration) cards are an alternate design methodology. A lot of information is available on line. Use Alta Vista (below) to search for the quoted string "CRC cards". You can use a similar technique for other topics here.

Patterns are attempts to capture industry best practice in a specific problem domain in a set of rules of thumb that can be applied when a context is recognized. A pattern is a solution to a problem in a context. Here is an Introduction to Patterns by Jane Chandler from England.

Books on OOP design are:
Rebecca Wirfs-Brock, Brian Wilkerson, and Laura Wiener, Designing Object-Oriented Software, Prentice Hall, 1990. Highly recommended.
The CRC Card Book, David Bellin & Susan Suchman, Addison Wesley, 1997.
Using CRC Cards: An Informal Approach to O-O Software Development, Nancy M. Wilkinson, SIGS Books, New York, 1995.
Pattern-Oriented Software Architecture, Buschmann, Rohnert, and Meunier, John Wiley & Sons
Design Patterns : Elements of Reusable Object-Oriented Software; Gamma, Helm, Johnson, and Vlissides, Addison Wesley. This is the famous GOF (Gang of Four) book.
UML and C++, Lee and Tepfenhart, Prentice-Hall, 1997
Applying UML and Patterns, Larman, Prentice Hall, 1998

These books and others can be found at Amazon online bookstore.

You can find some additional resources here:
http://csis.pace.edu/~bergin/patterns/design.html
http://csis.pace.edu/~bergin/links.html Various papers
http://csis.pace.edu/~bergin

Spicy Item -->Here is an example of a complete OOP design of an ATM machine by Prof. Russell Bjork of Gordon College. Note, however, that this is not an Internet application.

Here is another example of a complete design of an online version of a party game.

Here is a simple introduction to some object oriented design tools that you will want to use to document your project.

Extreme Programming

XP is a new development methodology that emphasizes rapid prototyping, constant refactoring, and intimate contact with the customer. Look here to learn more about Extreme Programming. Kent Beck is one of the prime movers in this field. There is more on XP on the wiki also.

Laurie Williams of North Carolina State (formerly University of Utah) has developed a Collaborative Software Process (pdf) as part of her Ph.D. program. She has also done research on Pair Programming, which you can find at her web site.

Last Updated: September 16, 2000