Book description
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
Table of contents
- Copyright
- Foreword
- Foreword
- Preface
-
1. Design Concepts
- Object Machinery
- Roles
- Object Role Stereotypes
- Roles, Responsibilities, and Collaborations
- Object Contracts
- Domain Objects
- Application-Specific Objects
- Interfaces
- Classes
- Composition
- Inheritance
- Object Organizations
- Components
- Patterns
- Frameworks, Inc.
- Architecture
- Architectural Styles
- Design Description
- Summary
- Further Reading
- 2. Responsibility-Driven Design
- 3. Finding Objects
- 4. Responsibilities
-
5. Collaborations
- What Is Object Collaboration?
- The Design Story for the Speak for Me Software
- Collaboration Options
-
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
- Designing Good Collaborations
- Making Collaborations Possible
- When Are We Finished?
- Summary
- Further Reading
-
6. Control Style
- What Is Control Style?
- COntrol Style Options
- Making Trade-Offs
- Developing Control Centers
- A Case Study: Control Style for External User Events
- 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
- Choosing the Appropriate Form
- Tell It, Draw It, Describe It: Guidelines
- Organizing Your Work
- Preserving Stories
- Summary
- Further Reading
-
8. Reliable Collaborations
- Understanding the Consequences of Failure
- Increasing Your System’s Reliability
- Determining Where Collaborations Can Be Trusted
- Identifying Collaborations To Be Made Reliable
- Designing A Solution
- Documenting Your Exception-Handling Designs
- 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
- The Role of Patterns in Flexible Designs
- How to Document a Flexible Design
- Changing a Working System’s Design
- Summary
- Further Reading
- 10. On Design
- Bibliography
Product information
- Title: Object Design: Roles, Responsibilities, and Collaborations
- Author(s):
- Release date: November 2002
- Publisher(s): Addison-Wesley Professional
- ISBN: 0201379430
You might also like
book
User Story Mapping
User story mapping is a valuable tool for software development, once you understand why and how …
book
Domain Storytelling: A Collaborative, Visual, and Agile Way to Build Domain-Driven Software
Build Better Business Software by Telling and Visualizing Stories "From a story to working software--this book …
audiobook
The Manager's Path
Managing people is difficult wherever you work. But in the tech industry, where management is also …
book
The Manager's Path
Managing people is difficult wherever you work. But in the tech industry, where management is also …