Responsibility Driven Design

Design based on the principle that some class has to be responsible for each task that the system will carry out. The responsible class may collaborate with other classes to carry out its task. (It's probably a good idea if each responsibility occurs OnceAndOnlyOnce.)

DesigningObjectOrientedSoftware by RebeccaWirfsBrock et al. ISBN 0136298257 was the first book to articulate this approach to design, to the best of my knowledge. Does anyone know of earlier references?

-- JohnBrewer

I'll bet BertrandMeyer's book, ObjectOrientedSoftwareConstruction, is a good contender. Although I never read it, I understand that it does mention the idea of OnceAndOnlyOnce. Although, I might be wrong. -- SunirShah

If you want to get the sense of ResponsibilityDrivenDesign, read Object-oriented design: a responsibility-driven approach by RebeccaWirfsBrock and B. Wilkerson, Conference proceedings on Object-oriented programming systems, languages and applications, 1989. There are some articles and presentation files you can download at http://www.wirfs-brock.com/Resources.html. -- JuneKim

RebeccaWirfsBrock and AlanMcKean? have written a book on responsibility-driven design called ObjectDesign: Roles, Responsibilities and Collaborations.


DesigningObjectOrientedSoftware was published in 1990, while WardAndKent presented their CRC paper in OOPSLA in 1989. I think that that paper contains most (if not all) of the concepts linking Roles&Responsibilities with OO-Design, and it certainly predates Rebecca's book. -- GastonNusimovich


In that paper Ward Cunningham and Kent Beck acknowledge Wirfs-Brock's work (in particular a paper she presented with Brian Wilkerson at OOPSLA '89) in creating a methodology that uses CRC cards. They similarly acknowledged a 1988 paper by Reenskaug.


See PrimaryNoun, ResponsibilitiesSubsumeOtherRules
CategoryCrcCards. CategoryInfoPackaging

EditText of this page (last edited September 21, 2009) or FindPage with title or text search