T31: A Tour of Responsibility-Driven Design
Monday, Oct 23, from 13:30 to 17:00, C124
Responsibility-Driven Design is a way to design that emphasizes behavioral modeling using objects, responsibilities and collaborations. In a responsibility-based model, objects play specific roles and occupy well-known positions in the application architecture. Each object is accountable for a specific portion of the work. They collaborate in clearly defined ways, contracting with each other to fulfill the larger goals of the application. By creating a "community of objects", assigning specific responsibilities to each, you build a collaborative model of our application. This tutorial, which includes material from the book Object Design: Roles, Responsibilities and Collaborations, will be an example-based tour of Responsibility-Driven Design. It presents our latest innovations and practical techniques. Topics include: an updated view of CRC card models, finding and evaluating the qualities of candidate design objects, mapping roles to classes and interfaces, strategies for assigning object responsibilities, deciding on the control style of an application, collaboration trust regions, and collaboration contracts. Attendees will have an opportunity to practice techniques with several short design exercises.
Intermediate: Participants should be familiar with object concepts and be looking for practical techniques, guidelines and a design process that emphasizes modeling the behavioral aspects of a software system.
Goals: To present attendees with practical techniques for designing and new ways of thinking about object roles and patterns of collaboration.
Format: The tutorial will be presented in a lecture format with slides containing notes, guidelines and examples. Interspersed with each major section will be short exercises that reinforce the material presented. Attendees' handouts will include a copy of the slides as well as numerous design guidelines.
Rebecca Wirfs-Brock, Wirfs-Brock Associates: Rebecca Wirfs-Brock, president of Wirfs-Brock Associates and IEEE Software's Design Columnist, is a well-known and respected object practitioner and a lifetime attendee of OOPSLA. She invented the way of thinking about objects known as Responsibility-Driven Design and is the lead author of the classic Designing Object-Oriented Software (1990), and Object Design: Roles, Responsibilities and Collaborations (2003). Through her writing, teaching, consulting, and speaking she has popularized the use of informal techniques and thinking tools for designers and analysts. Among her widely-used inventions are object role stereotypes and the conversational form of use cases. From development on the Tektronix implementation of Smalltalk in the early 1980's, through years of development and training experience, she is recognized as an innovative and influential practitioner of object-oriented design.