The line between object-oriented analysis and design is a fine one. Analysis concerns itself primarily with the large structure of a program, whereas design is concerned with the fine details needed for implementation. A good designer can accelerate the design process by recognizing when a particular pattern can be used appropriately in a given situation. The design concepts are presented in the context of real code, with a focus on how to implement the patterns in Java. The course finishes with a lab session in which a small program is designed.
Enrollment is limited and advance enrollment is required.
He is a contributing editor at Java World. He has taught real-world programming courses for UC Berkeley Extension since 1982 and regularly receives accolades from his students.