Object Design: Roles, Responsibilities, and Collaborations
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 Collaborationsfocuses 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 modelObject role stereotypes and how to identify objects' behaviorsHow to characterize objects using role stereotypesAllocating responsibilities to appropriate objectsDeveloping a collaboration modelStrategies for designing application control centersDocumenting and describing a design, focusing on use cases, design conversations, and annotationsStrategies for enhancing reliability, including handling exceptions and recovering from errorsHow to characterize software variations and design to support them for greater flexibilityHow to categorize and treat various kinds of design problemsAs all experienced designers know, software design is part art and inspiration and part consistent effort and solid technique.Object Design: Roles, Responsibilities, and Collaborationswill 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