shopping cart
Call us:  800-878-7323 HELP
McAfee SECURE helps keep you safe from identity theft, credit card fraud, spyware, spam, viruses and online scams.
Powell's Q&A, Q&A | October 16, 2009

Gail Collins: IMG Powell's Q&A: Gail Collins



[My new book] starts in 1960 with a woman named Lois Rabinowitz, who was evicted from Manhattan traffic court for attempting to pay a parking ticket while wearing slacks. This was... Continue »
  1. $19.59 Sale Hardcover add to wish list

Ships free on qualified orders.
Add to Cart
$29.95
List price: $44.99
Used Trade Paper
Ships in 1 to 3 days
Add to Wishlist
Qty Store Section
2 Local Warehouse Software Engineering- Object Oriented Programming

Other titles in the Addison-Wesley Object Technologiey Series series:

  1. Practical Guide to Testing Object-Oriented Software

Object Design: Roles, Responsibilities, and Collaborations (Addison-Wesley Object Technologiey Series)

by Rebecca Wirfs Brock

Object Design: Roles, Responsibilities, and Collaborations (Addison-Wesley Object Technologiey Series) Cover

ISBN13: 9780201379433
ISBN10: 0201379430
Condition: Standard
All Product Details

Only 2 left in stock at $29.95!

Synopses & Reviews

Publisher Comments:

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.

    0201379430B08292002

    Book News Annotation:

    Wirfs-Brock and her co-worker McKean outline a set of software development practices she devised to design objects with specific roles, known as responsibility-driven design. Her approach involves selecting candidate objects for the design model, defining the responsibilities of an object, and designating the control centers of an application. Later chapters in the book explore options for documenting a design, present strategies for handling exceptions and recovering from errors, and discuss how to characterize software variations.
    Annotation c. Book News, Inc., Portland, OR (booknews.com)

    Synopsis:

    Object technology pioneer Wirfs-Brock teams with expert 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.

    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.

    0201379430AB08292002

    Table of Contents

    Foreword by Ivar Jacobson.

    Foreword by John Vlissides.

    Preface.

    1. Design Concepts.

    Object Machinery.

    Roles.

    Object Role Stereotypes.

    Roles, Responsibilities, and Collaborations.

    Object Contracts.

    Conditions-of-Use and Aftereffect Guarantees.

    Domain Objects.

    Application-Specific Objects.

    Interfaces.

    Classes.

    Two Roles.

    Composition.

    Inheritance.

    Object Organizations.

    Components.

    Patterns.

    Applying Double Dispatch to a Specific Problem.

    The Real Benefits of Using Patterns.

    Frameworks, Inc.

    Architecture.

    Architectural Styles.

    Centralized Control Style.

    Dispersed Control: No Centers.

    Delegated Control.

    Examining Interactions: A Layered Architecture Example.

    Locating Objects in Layers.

    Design Description.

    Summary.

    Further Reading.

    2. Responsibility-Driven Design.

    A Process for Seeing, Describing, and Designing.

    Launching the Production: Project Definition and Planning.

    Setting the Stage: Early Description.

    Staging the Production: Design.

    “Seeing” from Multiple Perspectives.

    Writing the Script: Analysis Descriptions.

    Usage Descriptions.

    Other Specifications.

    Glossaries.

    Conceptual Objects.

    Casting the Characters: Exploratory Design.

    CRC Cards.

    Inventions: Using Patterns.

    Pursuing a Solution.

    Bouncing Between Ideas and Details.

    Tuning the Production: Design Refinement.

    Designing for Flexibility and Extension.

    Designing for Reliability.

    Making Our Design Predictable, Consistent, and Comprehensible.

    Summary.

    Further Reading.

    3. Finding Objects.

    A Discovery Strategy.

    Looking for Objects and Roles, and Then Classes.

    Why Tell a Design Story?

    Search Strategies.

    What's in a Name?

    Describing Candidates.

    Characterizing Candidates.

    Connecting Candidates.

    Looking for Common Ground.

    Defend Candidates and Look for Others.

    Summary.

    Further Reading.

    4. Responsibilities.

    What Are Responsibilities?

    Where Do Responsibilities Come From?

    Strategies for Assigning Responsibilities.

    Recording Responsibilities.

    Making Initial Assignments.

    Getting Unstuck.

    Implementing Objects and Responsibilities.

    Testing Your Candidates' Quality.

    Summary.

    Further Reading.

    5. Collaborations.

    What Is Object Collaboration?

    Preparing for Collaboration.

    Recording Candidate Collaborations.

    The Design Story for the Speak for Me Software.

    Collaboration Options.

    Who's In Control?

    How Much Should Objects Trust One Another?

    Strategies for Identifying Collaborations.

    Looking at an Individual Object's Role: Stereotypes Imply Collaborations.

    Looking at Individual Responsibilities: They Imply Collaborations.

    Designing the Details of a Complex Responsibility.

    Designing Collaborations for a Specific Task.

    Identifying Applicable Patterns.

    Identifying How Architecture Influences Collaborations.

    Solving Problems in Collaborations.

    Simulating Collaborations.

    Planning a Simulation.

    Running a Simulation.

    Designing Good Collaborations.

    The Law of Demeter: A Case Study.

    Making Collaborations Possible.

    Guidelines for Making Connections.

    Designing Reliable Collaborations.

    When Are We Finished?

    Summary.

    Further Reading.

    6. Control Style.

    What Is Control Style?

    Control Style Options.

    Making Trade-offs.

    Centralizing Control.

    Delegating Control.

    The Limits of Control Decisions.

    Developing Control Centers.

    A Case Study: Control Style for External User Events.

    Centralizing Control in the MessageBuilder.

    Refactoring Decision Making into State Methods within the MessageBuilder.

    Abstracting Away Decisions.

    Delegating More Responsibility.

    Designing the Control Style for the Guessing Neighborhood.

    Designing a Similar Control Center: Can We Be Consistent?

    Summary.

    7. Describing Collaborations.

    Telling Collaboration Stories.

    A Strategy for Developing a Collaboration Story.

    Establishing Scope, Depth, and Tone.

    Listing What You Will Cover.

    Deciding on the Level of Detail.

    Showing a Bird's-Eye View.

    Showing Collaborators Only.

    Showing a Sequence of Interactions Among Collaborators.

    Showing an In-Depth View.

    Showing a Focused Interaction.

    Showing an Implementation View.

    Showing How to Adapt a Collaboration.

    Where UML Diagrams Fall Short.

    Choosing the Appropriate Form.

    Tell It, Draw It, Describe It: Guidelines.

    Organizing Your Work.

    Adding Emphasis.

    Unfolding Your Story.

    Understanding What's Fundamental.

    Putting It All Together.

    Preserving Stories.

    Summary.

    Further Reading.

    8. Reliable Collaborations.

    Understanding the Consequences of Failure.

    Increasing Your System's Reliability.

    Determining Where Collaborations Can Be Trusted.

    Trusted Versus Untrusted Collaborations.

    Implications of Trust.

    Identifying Collaborations to Be Made Reliable.

    What Use Cases Tell Us.

    Distinguish Between Exceptions and Errors.

    Object Exceptions Versus Use Case Exceptions.

    Object Exception Basics.

    Exception- and Error-Handling Strategies.

    Determining Who Should Take Action.

    Designing a Solution.

    Brainstorm Exception Conditions.

    Limit Your Scope.

    Record Exception-Handling Policies.

    Documenting Your Exception-Handling Designs.

    Specifying Formal Contracts.

    Reviewing Your Design.

    Summary.

    Further Reading.

    9. Flexibility.

    What Does It Mean to Be Flexible?

    Degrees of Flexibility.

    The Consequences of a Flexible Solution.

    Nailing Down Flexibility Requirements.

    Recording Variations.

    Variations and Realizations.

    Identifying the Impact of a Variation.

    Exploring Strategies for Realizing Flexibility.

    Using Templates and Hooks to Support Variations.

    The Role of Patterns in Flexible Designs.

    Varying an Object's Behavior with the Strategy Pattern.

    Hiding Interacting Objects with Mediator.

    Making a Predefined Object or System Fit Using Adapter.

    How Do Patterns Increase Flexibility?

    How to Document a Flexible Design.

    Consider Your Audience.

    Describing How to Make a Variation.

    Changing a Working System's Design.

    Summary.

    Further Reading.

    10. On Design.

    The Nature of Software Design.

    Tackling Core Design Problems.

    Frame the Problem.

    Dealing with Revealing Design Problems.

    A Story About Managing Shared Information.

    A Story About Connection Problem Complexity.

    A Story About a Design Problem That Never Got Easier.

    Can Revealing Problems Be Wicked, Too?

    Strategies for Solving Revealing Problems.

    Redefining the Problem.

    Synthesizing a Solution.

    Working on the Rest.

    Designing Responsibly.

    Further Reading.

    Bibliography.

    Index. 0201379430T10212002


    What Our Readers Are Saying

    Add a comment for a chance to win!
    Average customer rating based on 1 comment:
    gustavosgarcia, April 13, 2007 (view all comments by gustavosgarcia)
    very good
    Was this comment helpful? | Yes | No

    Product Details

    ISBN:
    9780201379433
    Subtitle:
    Roles, Responsibilities, and Collaborations
    Author:
    Wirfs-Brock, Rebecca
    Author:
    Wirfs-Brock, Rebecca
    Author:
    McKean, Alan
    Publisher:
    Addison-Wesley Professional
    Subject:
    Programming Languages - General
    Subject:
    Programming - General
    Subject:
    Programming - Object Oriented Programming
    Subject:
    Operating Systems - General
    Subject:
    Programming / Object Oriented
    Copyright:
    Edition Description:
    Trade paper
    Series:
    Addison-Wesley Object Technologiey Series
    Publication Date:
    November 2002
    Binding:
    Paperback
    Grade Level:
    Professional and scholarly
    Language:
    English
    Illustrations:
    Y
    Pages:
    416
    Dimensions:
    920x738x86 177

    Other books you might like

    1. $25.50 Used Trade Paper add to wish list

      Uml Bible

      Tom Pender
    2. $44.99 New Trade Paper add to wish list
    3. $51.75 New Trade Paper add to wish list
    4. $42.00 Used Hardcover add to wish list
    5. $68.00 New Trade Paper add to wish list
    6. $3.75 Used Hardcover add to wish list

    Related Aisles

    • back to top

    Powell's City of Books is an independent bookstore in Portland, Oregon, that fills a whole city block with more than a million new, used, and out of print books. Shop those shelves — plus literally millions more books, DVDs, and eBooks — here at Powells.com.