by Rebecca Wirfs-Brock and Alan McKean
Edition: 03If 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
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.
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
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.
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
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.