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, we build a collaborative model of our application.
Objects are more than simple bundles of logic and data... they are service-providers, information-holders, structurers, coordinators, controllers, and interfacers to the outside world! Each must know and do its part! Thinking in these terms enables you to build powerful, flexible applications.
This tutorial, which includes material from our new book, will be an example-based tour of Responsibility-Driven Design. It presents our latest innovations and practical techniques. Topics include: 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, effective ways to describe collaborations using UML and collaboration stories. Students will have an opportunity to practice techniques with several short exercises.
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.
The tutorial will be presented in a lecture format with slides containing notes, guidelines and examples. Interspersed with each major section will be short, instructor-led exercises that reinforce the material presented. Students' handouts will include a copy of the slides as well as numerous design guidelines.
Rebecca Wirfs-Brock is president of Wirfs-Brock Associates, a firm specializing in the transfer of object analysis and design expertise to organizations and individuals through training, mentoring, and consulting. Rebecca has been involved with object technology since its infancy. She is the inventor of the set of development practices known as Responsibility-Driven Design. From development on the Tektronix implementation of Smalltalk in the early 1980's, through years of development and training experience, she is recognized as one of only a few knowledgeable and influential practitioners of object-oriented design. She spent 17 years as a Software Engineer at Tektronix, where among other accomplishments, she managed the first commercial Smalltalk effort and was the technical lead for the development of Color Smalltalk. She has written articles, lectured and presented tutorials on object analysis, design and management topics, and has been an innovator in object technology since 1984. Together, with Alan McKean she has co-authored a new design book, to be published in 2002 by Addison-Wesley. Recently, she has authored use cases for a telecommunications framework and an online banking system and has mentored teams designs in use case writing, design, architecture and managing incremental, iterative object-technology projects. She practices what she teaches!
Alan McKean is Vice President and Director of Educational Services at Wirfs-Brock Associates. Alan is an internationally known instructor of object-oriented software design and development. Alan McKean has devoted most of his career applying principles of design and adult learning to find better ways to communicate technical and design information. A student of R. Buckminster Fuller's and a graduate of the University of Oregon with a Masters in Computer Science, he specializes in system architecture and object-oriented design and programming. Alan has authored courses including Responsibility-Driven Design, Smalltalk, and Designing with Java and has delivered over a hundred workshops on designing and programming object-oriented software during his 10+ years at Instantiations, Digitalk, and Wirfs-Brock Associates. Alan was a keynote speaker at the OOPSLA Educator's Symposium in 1995 and 2001. Prior to his training experience, Alan was Director of Audio Engineering at Dynamix, Inc., a computer game company, where he invented and developed a toolset for synchronizing animated images with actors' recorded voices and a suite of Smalltalk-based tools for managing computer game sound effects and music.