Cart
Free Shipping in Australia
Proud to be B-Corp

Object Design Rebecca Wirfs-Brock

Object Design By Rebecca Wirfs-Brock

Object Design by Rebecca Wirfs-Brock


$70.99
Condition - Very Good
Only 1 left

Summary

Focuses on the practice of designing objects as integral members of a community where each object has specific roles and responsibilities. This work includes the practices and techniques of Responsibility-Driven Design, and show how to apply them as you develop modern object-based applications. It is suitable for software designers and students.

Object Design Summary

Object Design: Roles, Responsibilities, and Collaborations by Rebecca Wirfs-Brock

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!

About Rebecca Wirfs-Brock

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

Additional information

GOR001733652
9780201379433
0201379430
Object Design: Roles, Responsibilities, and Collaborations by Rebecca Wirfs-Brock
Used - Very Good
Paperback
Pearson Education (US)
20021119
416
N/A
Book picture is for illustrative purposes only, actual binding, cover or edition may vary.
This is a used book - there is no escaping the fact it has been read by someone else and it will show signs of wear and previous use. Overall we expect it to be in very good condition, but if you are not entirely satisfied please get in touch with us

Customer Reviews - Object Design