“Enabling teams and individuals to specify, design and deliver software for a complex world.”
Responsibility-Driven Software Development

Design Rebecca's Blog Contact Us Training and Consulting Consulting Resources

Wirfs-Brock Associates Home Page > Training > Introduction to Object Design and UML

Introduction to Object Design and UML: A Responsibility-Driven Approach

4 days

Ideal size is up to 12 students. More can be accommodated. Price: Contact us at training@wirfs-brock dot come. Course customizations welcome and encouraged. Price includes all course materials. Instructor travel and lodging expenses are extra.

This revised and expanded version of our course teaches practical techniques for defining objects, their roles, responsibilities and interactions and using the Unified Modeling Language to document the design. Responsibility-Driven uses powerful, informal design techniques to promote thinking and abstracting the essential characteristics of complex problems. We model the dynamics of our object collaborations with UML sequence diagrams. We use class diagrams to describe a model of key classes, their structural and inheritance relationships, interfaces and attributes.

This course is intended for developers that want a systematic approach to designing an object application. It is also useful to managers and analysts that need to understand an object-oriented design process.


Our goal in this design course is to equip you with sufficient skills to enable you to design a medium-sized project. You should be able to evaluate design alternatives and make trade-offs with confidence.


Day 1: Object Design and Modeling Overview
The first day is exploratory and introduces many new concepts. Short exercises reinforce key concepts.

Day 2: Finding Objects and Modeling Responsibilities and Collaborations
Students focus on inventing an initial candidate model of objects, assigning them some responsibilities, and demonstrating how they collaborate to satisfy a use case.

Day 3: Collaborations and Control Centers
Here students think more critically about their designs. We focus on developing consistent patterns of interaction between collaborators and designing to recover from exceptional conditions.

Day 4: Specifying flexibility
Students refine their designs and identify points where design variability is required. They then develop design solutions that support planned variations and document their results.

Course Philosophy
Students learn by doing. There is ample class-time opportunity to explore the design techniques and develop design skills. Class is roughly half lecture/demonstration, and half exercises and in-depth labs. Each learning cycle, which lasts between a half hour and two hours, consists of:

Students present their work for review and comment. An instructor-led discussion of student work reinforces good design practices and explores acceptable alternatives solutions. Short in-class readings provoke stimulating discussions on the nature of software design, the value of inheritance and reuse, how to evaluate different design alternatives, and where and when design precision is needed.

Attendees should have a background in at least one programming language.

We round out your professional library with references vital to on-the-job performance: These books provide guidance on object design and continued development.

For additional information, please contact us at training@wirfs-brock.com

Site Map

Entire Site © Wirfs-Brock Associates 2005 - 2022.
Click here to contact the Webmaster.