Object Oriented Design

This course was designed as a companion to Alistair Cockburn's "Writing Effective Use Cases" course.

This course is intended to give attendees the theory of, and practice in, developing OO designs for applications from Use Cases. At least 2/3 of the course time is spent developing and discussing the development of OO designs for applications.

Duration and intended Audience

This is a 2 day course intended for anyone who is faced with developing applications starting from Use Case based requirements for an application. This course is intended primarily for developers and their managers as a follow up to the Writing Effective Use Cases course or for people with a very good background in Use Cases.

Goals for Attendees

Course Format

This course is based on continuous group exercises and discussions, rather than the slide-based lecture form frequently encountered in industry courses. In each section of the course a concept gets introduced, the groups do an exercise and discuss, and the entire room discusses their results. In this way, each person gets to participate in both exercises and discussions.

Note. The style of this course is different than most of the other courses offered to date by Software Craftsmanship Inc.. There are no slides, participants learn to do OO Design by designing and critiquing designs.

In the first day, we cover topics such as creating Test Cases from Use Cases, Low precision OO models, Responsibility Driven Design and using the UML Collaboration diagrams. In the second day we work through refining and fully documenting the design models, then refining them using Archetypes, Patterns and Refactoring.

The topics in the course include:


The design exercises use a different domain than the Writing Effective Use Cases course, continuity is provided by using that domain as a worked example. Answers are provided for the design exercises so that participants get practice at comparing and critiquing designs.

Room Setup for in-house courses

The idea room setup is with the chairs grouped around tables (in groups of 4 or 5) set up so that all can see a whiteboard or flip chart at one end or the room. There should also be sufficient wall space so that we can put up flip chart size posters from each of the groups for comparison and review purposes. (Typically using post-it style flip charts or masking tape to hold up the standard flip charts.) The course runs completely without powerpoints so no projection facilities are needed.

If the developers will be using CASE tools to document their UML models, developers will need access to their CASE workstations at various times during the course. These computers can be set up either in the main room or nearby within the facility. The CASE UML Diagrams should ideally be able to be printed for review purposes.