Designing Objects
and Systems
A seminar on DVD
by Bruce Eckel & Bill Venners

A live, 5-day seminar on DVD, approximately 21 hours of lecture and discussion.

See the demonstration video clips

©2007 MindView, Inc.

How do you think about a system and partition it into objects? What makes a good subsystem? How do you decompose a subsystem into classes and interfaces? This seminar will introduce you to the essence of design by examining design tradeoffs:

This seminar is for software designers and programmers who grasp the concepts of OO, but for whom conceptualizing the best system and object designs is a hurdle.

The seminar consists of two parts: Designing Systems, covering the high-level issues of object-oriented architecture and system design, and Designing Objects, which will focus on the issues and questions surrounding the design of individual classes. These portions of the seminar and their associated projects will be interleaved throughout the seminar.

The workshop combines lectures, guided exercises, and team-based independent work to demonstrate how object-oriented design can work in a production environment. As with all Bruce Eckel’s seminars, the emphasis is on “thinking in” objects.


Read comments from students


Designing Systems

In this portion of the seminar, you’ll learn how to attack the problem of designing a system given a general set of specifications.

You’ll get:

  • A hands-on understanding of a set of techniques that you can use to develop your own OO projects
  • A simulation exercise of the full development process described below

Sections

1. The Mission Statement & Overview Description

The inception phase should produce the key objectives of the project: what problem are you trying to solve, and/or what service are you providing? With some thought, this can be summarized in a couple of sentences, what I call the Mission Statement. The value of this exercise is that, if you get stuck in details, the mission statement can refocus you onto what you’re really trying to do.

The overview description expands on the mission statement by producing a number of paragraphs that more completely describe the behavior of the system, in prose. This becomes your first-cut analysis of the system, which will be used to help produce use cases (in the following section).

Exercise: Your team will write and present the Mission Statement & Overview Description for the exercise project.

2. Teasing out the Use Cases

The concept and value of the Use Case is introduced. This tool allows you to describe the requirements and behavior of the system, and also to factor the system into features that can be implemented as part of the iterative development process.
Use cases as a minimal system specification.

Exercise: Your team will create and present use cases for the exercise project.

3. Identifying the Critical Risks

Product development is risk management, and the sooner you can discover and attack the critical risks, the sooner you’ll know whether your project is feasible and what the real costs and schedule might be.

Exercise: Your team will discover and attack the critical risks for the exercise project.

4. Introduction to Extreme Programming and the Importance of Automatic Testing

This section introduces the basic concepts of Extreme Programming (XP), and why it seems to work so well. How to start, using pair programming and integrated testing. The value behind creating the tests first, and how to build automated testing into your development process.

Exercise: You will write unit tests that test a Java class

5. Choosing the Initial Feature Set

Use cases can be broken into sets of features that can be selected for implementation during particular iterations. The negotiation of the choice of features for each iteration is an essential part of the communication between the developers and the client, and this must be a choice made by the client based on information about costs provided them by the developers.

Exercise: Your team factors the exercise project into features, and chooses the initial feature set to be implemented during the first iteration.

6. Using CRC Cards to design Objects; Creating UML Class Diagrams

The primary trap of design: seduction by low-level details. How to use the 3x5 card as a constant reminder to stick to the basics of your design. Fundamentals of UML, and UML as a communication tool. Expressing your design as a UML diagram.

Exercise: Your team uses CRC cards to discover the objects in your project. One or more UML diagrams is created and presented.

7. The Initial Implementation Plan

Projects are built as a series of iterations. Once you’ve decided and designed the initial feature set, you need to get the core of the project working so that you can add features in future iterations. This also tests and proves the validity of your analysis and design, and gives valuable feedback to the customer about the state of the project, and whether it’s going to accomplish the desired goals.

Exercise: Develop a plan to implement the core functionality of the project, as decided in step 5 and designed in step 6.

The Design Project

Our presentation of the design project will include:

At the end of the week, each team will present their approach to the solution. We will ask questions and converse about the solution choices and possible alternative approaches. This will not be about “right and wrongâ” solutions, but instead about examining decisions made based on real or imagined constraints.

The “deliverables” for each project are:

A strong emphasis will be placed on practicality and in applying the Extreme Programming (XP) principles of:


Designing Objects

An important part of good object-oriented design is well-designed objects. The portion of the seminar, which is called the Object Design Workshop, focuses on guidelines and idioms that will help you create well-designed objects. Each guideline and idiom will be explained and justified, and then discussed by the attendees. This discussion is an integral part of the workshop, aimed at facilitating a conversation about design among peers that can help everyone to learn from each other’s experiences and perspectives. At the end of the Object Design Workshop, you will walk away with a specfic set of practical guidelines and concrete idioms that you can draw upon in your future object designs.

The Object Design Workshop also includes a hands-on design project. Periodically, the attendees of the workshop will break up into small groups, each of which is assigned an API design project. Each group will document their design with UML and/or javadoc HTML pages, and present their design to the rest of the class, who will discuss it. The point of the design reviews is the same as the discussions — to draw out the experience and perspectives of the entire group, and enable everyone to learn from each other.

The Object Design Workshop focuses heavily on designing with Java. Although many of the guidelines are applicable to any object-oriented language, all examples are shown in Java. Most of the idioms are specific to Java. In addition, the end result of each API design project will be a Java package.

Here’s a list of the guidelines and idioms that will be covered during the Object Design Workshop: (Each title is linked to an online copy of the lecture handout.):

Designing with Objects

Designing with Composition, Inheritance, and Interfaces

Designing with Types

Guideline Grab Bag


Prerequisites and Recommended Reading:

A high degree of comfort with object-oriented terminology, and implementation experience with Java are prerequisites for the course. In addition, the following books are recommended for reading before the course:

  1. Extreme Programming Explained (Read Chapters 1-5)
  2. UML Distilled (Read Chapters 1 - 5)

Please note:


Sample Clip: Models


Sample Clip: Live Design Session


Sample Clip: Stamp Dispenser State Machine Example


Ordering

We accept Visa, Mastercard, American Express, Discover, eCheck, Paypal

If you have problems or special needs, contact .

Priority Mail to California

DVD set: $500.00
CA Sales Tax: $38.75
Postage & Handling: $12.00

Total: $540.75


Priority Mail to USA Outside California

DVD set: $500.00
Postage & Handling: $12.00

Total: $512.00


First-Class International Mailing

Phone number required for mailing; Enter in box at the bottom of payment form

DVD set: $500.00
International Postage & Handling: $20.00

Total: $520.00

Although PayPal will send you a USPS tracking number, there is no tracking on international mail

This page is sponsored by MindView, Inc.
Copyright ©2007 MindView, Inc. Portions Copyright © 2007 Artima, Inc. All rights reserved.