Programming Books C Java PHP Python Learn more Browse Programming Books

Sorry, this item is not available in
Image not available for
Image not available

To view this video download Flash Player


Sign in to turn on 1-Click ordering
Sell Us Your Item
For a $22.10 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Tell the Publisher!
I'd like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Object Design: Roles, Responsibilities, and Collaborations [Paperback]

by Rebecca Wirfs-Brock, Alan McKean
4.5 out of 5 stars  See all reviews (15 customer reviews)

List Price: $69.99
Price: $53.67 & FREE Shipping. Details
You Save: $16.32 (23%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
Only 12 left in stock.
Ships from and sold by Gift-wrap available.
Want it tomorrow, April 25? Choose One-Day Shipping at checkout. Details
Free Two-Day Shipping for College Students with Amazon Student

Shop the new
New! Introducing the, a hub for Software Developers and Architects, Networking Administrators, TPMs, and other technology professionals to find highly-rated and highly-relevant career resources. Shop books on programming and big data, or read this week's blog posts by authors and thought-leaders in the tech industry. > Shop now

Book Description

November 18, 2002 0201379430 978-0201379433
After more than ten years, object technology pioneer Rebecca Wirfs-Brock teams with expert Alan McKean to present a thoroughly updated, modern, and proven method for the design of software. The book is packed with practical design techniques that enable the practitioner to get the job done. Like many human endeavors, design is part art, part engineering, part guesswork, and part experimentation. Discipline, hard work, inspiration, and sound technique all play their part as well. For any given problem, there are many reasonable, but only a few very good solutions. The authors' goal is to help readers learn to make those very good design decisions on their own. The book explores challenges that software developers will face as they build their design, and shows how design patterns can be used to solve design problems. Long awaited and eagerly anticipated, this book represents the first great software design book of the century. A FUTURE CLASSIC!

Frequently Bought Together

Object Design: Roles, Responsibilities, and Collaborations + Agile Software Development, Principles, Patterns, and Practices + Refactoring: Improving the Design of Existing Code
Price for all three: $150.70

Buy the selected items together

Editorial Reviews

From the Back Cover

If you create software using object-oriented languages and tools, then Responsibility-Driven Design has likely influenced your work. For over ten years Responsibility-Driven Design methodology has been the standard bearer of the behavioral approach to designing object-oriented software. Object Design: Roles, Responsibilities, and Collaborations focuses on the practice of designing objects as integral members of a community where each object has specific roles and responsibilities. The authors present the latest practices and techniques of Responsibility-Driven Design and show how you can apply them as you develop modern object-based applications.

Working within this conceptual framework, Rebecca Wirfs-Brock and Alan McKean present how user requirements, system architecture, and design patterns all contribute to the design of an effective object model. They introduce a rich vocabulary that designers can use to discuss aspects of their designs, discuss design trade-offs, and offer practical guidelines for enhancing the reliability and flexibility of applications. In addition, case studies and real-world examples demonstrate how the principles and techniques of Responsibility-Driven Design apply to real-world software designs.

You'll find coverage of such topics as:

  • Strategies for selecting and rejecting candidate objects in an emerging design model
  • Object role stereotypes and how to identify objects' behaviors
  • How to characterize objects using role stereotypes
  • Allocating responsibilities to appropriate objects
  • Developing a collaboration model
  • Strategies for designing application control centers
  • Documenting and describing a design, focusing on use cases, design conversations, and annotations
  • Strategies for enhancing reliability, including handling exceptions and recovering from errors
  • How to characterize software variations and design to support them for greater flexibility
  • How to categorize and treat various kinds of design problems
  • As all experienced designers know, software design is part art and inspiration and part consistent effort and solid technique. Object Design: Roles, Responsibilities, and Collaborations will help all software designers--from students to seasoned professionals--develop both the concrete reasoning skills and the design expertise necessary to produce responsible software designs.


    About the Author

    Rebecca Wirfs-Brock is founder of Wirfs-Brock Associates. She consults with clients on actual architecture and design projects as well as development practices and methods. She is the originator of the set of development practices known as Responsibility-Driven Design. Among her widely used inventions are use case conversations and object role stereotypes. She was lead author of the classic work Designing Object-Oriented Software (Prentice-Hall, 1990).

    Alan McKean is a respected object technology educator and cofounder of Wirfs-Brock Associates. His classes have introduced thousands of developers to object-oriented design and programming and his instructional techniques have been widely adopted by other educators. An experienced programmer, speaker, and instructor, Alan has developed curricula in object-oriented design, programming, and distributed object systems.


    Product Details

    • Paperback: 416 pages
    • Publisher: Addison-Wesley Professional (November 18, 2002)
    • Language: English
    • ISBN-10: 0201379430
    • ISBN-13: 978-0201379433
    • Product Dimensions: 9.1 x 7.3 x 0.6 inches
    • Shipping Weight: 1.4 pounds (View shipping rates and policies)
    • Average Customer Review: 4.5 out of 5 stars  See all reviews (15 customer reviews)
    • Amazon Best Sellers Rank: #563,634 in Books (See Top 100 in Books)

    More About the Author

    Discover books, learn about writers, read author blogs, and more.

    Customer Reviews

    Most Helpful Customer Reviews
    41 of 41 people found the following review helpful
    5.0 out of 5 stars Very Good Text on Object Design January 23, 2003
    I think I finally have a handle on object modeling-- 'Object Design' deserves a lot of the credit.
    I have a shelf full of books on UML, uses cases, patterns, and modeling. I spent almost a year struggling through UML, trying to understand the nuances of sequence diagrams versus collaboration diagrams. Meanwhile, I felt no closer to being able to create serviceable object models for my projects.
    Rebecca Wirfs-Brock and Alan McKean dispense with much of the tedious diagramming one usually associates with object modeling. Instead of charts and relationships, the book focuses on the roles, responsibilities, and behaviors that define an object. If you have ever assembled and managed employee teams, the framework will be very fmailiar. And that's where I found my breakthrough.
    The book offers a good introduction to object modeling for those new to the area, and a solid reference for those looking to stremline their current methodology. The processes suggested by the authors are simple and flexible. But they are powerful enough to handle even complex designs.
    One of the strongest pieces of advice in the book is to avoid rushing into UML software--stick with index cards until the design is fairly well developed. That's what got me out of a morass of charts and diagrams that looked nice, but did relatively little. I'd paraphrase the book's theme as "Forget the formalism and focus on your application's responsibilities, and how those responsibilities can be allocated among cohesive, well-organized team players.:
    The book is language neutral--it's focus is design, rather than programming. The design methodology taught in the book should be easily adaptable to nearly any object-oriented programming language.
    I have no hesitation recommending Object Design to novice and intermediate object modelers. I rate is as the best book I have read on the design and modeling of object-oriented systems.
    Comment | 
    Was this review helpful to you?
    21 of 21 people found the following review helpful
    5.0 out of 5 stars object design recommendation January 27, 2003
    I purchased this book a week ago, and am enjoying it immensely. This
    is NOT a book by authors that rapidly churn out multiple books, and it
    is NOT a book to be read quickly. It's clear that a lot of thought
    has gone into every page and every sentence, and that you need to
    reflect and compare with your own professional programming experience.
    Despite the huge amount of information, I'm finding the book very
    readable. The authors make a living consulting on architecture and
    design, and know how to communicate.
    There are some code examples in java, but the book is really language
    neutral. The java code uses features that are available in all object
    oriented languages, and can really be considered to be illustrative
    pseudo code. This book is written for software architects, and coders
    who are looking to advance to higher levels of design responsibility.
    A nice touch that I appreciated was the short summarizing side bars
    sprinkled throughout the text. If you want to quickly evaluate whether
    this book is for you are not, just pick up the book and read the
    sidebars from beginning to end.
    Comment | 
    Was this review helpful to you?
    18 of 18 people found the following review helpful
    5.0 out of 5 stars Definitive guide to Object Oriented Design July 20, 2003
    I've always believed the best approach to object-oriented design is Responsibility Driven Design (RDD), and this is the best book on the subject-written by the inventor of RDD.
    I recently showed Mike Rosen, of Cutter Consortium, Object Design. Before I could say it had great chapters on RDD plus work on design for reliability and flexibility plus pages of references to related books and papers, he said 'Great! This will be my next book purchase'.
    So, why is Object Design: Roles, Responsibilities, and Collaborations (OD) a really great book? These folks have years of design consulting and teaching experience, know what they are talking about, and are good at telling the story.
    OD is a great read from cover to cover. Their two-chapter review of object design concepts was energetic, insightful, and comprehensive. From the beginning they are mixing in CRC cards (Thanks Kent, Ward!), architecture styles, patterns, and stereotypes into the discussion. This is the place to start for novices and intermediate students, and professionals now have the definitive reference book on object oriented design.
    The authors understand we all have different learning styles. Along with their conversation, the first two chapters also illustrate concepts and examples with over 20 figures, a couple of UML diagrams, three (short) Java code blocks, and eight CRC card drawings. Concrete examples are provided throughout the book, from computer speech to finance and telecommunications.
    The Chapter titles are: 1 Design Concepts, 2 Responsibility Driven Design, 3 Finding Objects, 4 Responsibilities, 5 Collaborations, 6 Control Style, 7 Describing Collaborations, 8 Reliable Collaborations, 9 Flexibility, and 10 On Design. Each chapter includes a summary.
    Read more ›
    Comment | 
    Was this review helpful to you?
    15 of 15 people found the following review helpful
    5.0 out of 5 stars A great first text on OO design July 28, 2004
    Format:Paperback|Verified Purchase
    Wirfs-Brock and McKean have written an oustanding introductory book on object-oriented design. This is definitely a book for beginning OO programmers, the ones who aren't sure how to assign functions to objects and who aren't ready for design patterns yet. More experienced developers won't get much out of it, but that's OK. Every level needs its own reference books.

    The book's layout and illustrations present its content well. UML diagrams, for example, use one color and typeface for the actual UML notation. The same diagrams use a different color and typeface for notes that explain the UML. Unlike other books, there's no confusion about which is the tool and which describes the tool. The text is gentle and reasonably jargon-free, but I think it over-does the friendliness in places. In discussing a program's normal and exception handling behavior, the term "happy path" described the execution in the absence of errors. The term may be evocative, but is just a bit hard to take seriously.

    The sequence of topics makes good sense. It starts with the idea of a "responsibility," the basic unit of application logic. The authors develop this into strategies for defining objects, defining relationships between objects, and defining the control strategies that implement those relationships. They continue on through error handling (reliability) and extensibility - handling of future features. Throughout, the authors keep a moderate, pragmatic tone, free of name-brand methodology. That's a good thing, since the real focus is on basic skills and decision criteria.

    One aspect of this book is just a little confusing. It's definitely aimed at educating a new OO designer, but it doesn't lay out its educational objectives or plan very clearly.
    Read more ›
    Comment | 
    Was this review helpful to you?
    Most Recent Customer Reviews
    5.0 out of 5 stars old but good
    more desciprtive than other books

    but restrictive sample code

    another defact is that oop is old..

    functional is more trendy and strict
    Published 1 month ago by whosnail
    5.0 out of 5 stars Sooner or later you will learn RDD. If you love failure, don't read...
    I don't think it's a stretch to say that the vast majority of OOD developers fell prey to the Data Centric Design (DCD) (not to be confused with Data Driven Design) methodology. Read more
    Published 15 months ago by Alfredo
    5.0 out of 5 stars A must have for people learning about object design
    What I like about this book is that it gives you another point of view about object analysis and design. The book is full of tips and examples so it is easy to read and understand.
    Published 19 months ago by Luciano A.
    5.0 out of 5 stars Very Good Text on Object Design, A great first text on OO design,...
    I have to agree with some earlier reviews on this book.

    1. Very Good Text on Object Design,

    2. A great first text on OO design,

    3. Read more
    Published on February 3, 2007 by Yujun Liang
    3.0 out of 5 stars Hit and Misses
    The authors provides a good introduction to object oriented analysis and design. Some may find that the content is too wishy washy with seemingly vague advice in many areas. Read more
    Published on January 5, 2006 by F. Huynh
    5.0 out of 5 stars Developer, Programmer, and System Modeler
    I have read so many OOAD books, none of which give me a clear idea how and why software design should be designed that way,

    at which situration, according to which... Read more
    Published on September 18, 2005 by Ho Chung Wan
    1.0 out of 5 stars Total Disappointment for Programmers
    I am a developer/programmer for a technical software company and my review contains my perception of this book from that perspective. Read more
    Published on March 3, 2005 by Kavka
    4.0 out of 5 stars OO-Collaborations Perspective
    Overall very good impression, original presentation with sidebar essential quotes. However after a while seems more of the same: how to identify collaborations in an Object... Read more
    Published on November 22, 2004 by Stefan
    5.0 out of 5 stars Pragmatic OO Design
    This well-written and very readable book gives an excellent overview of object-oriented design. It takes a very pragmatic and human-centred approach that is fresh and enjoyable to... Read more
    Published on December 27, 2003 by Nicholas Roeder
    5.0 out of 5 stars Effective methods for design, tunable for your agility level
    Generally excellent language and flow. The book manages to bob nicely at a readable level, ducking deep when necessary for some details, and popping back up for abstract concepts... Read more
    Published on December 24, 2003 by Lars Bergstrom
    Search Customer Reviews
    Only search this product's reviews

    What Other Items Do Customers Buy After Viewing This Item?

    Sell a Digital Version of This Book in the Kindle Store

    If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more


    There are no discussions about this product yet.
    Be the first to discuss this product with the community.
    Start a new discussion
    First post:
    Prompts for sign-in

    Look for Similar Items by Category