Library Hours
Monday to Friday: 9 a.m. to 9 p.m.
Saturday: 9 a.m. to 5 p.m.
Sunday: 1 p.m. to 9 p.m.
Naper Blvd. 1 p.m. to 5 p.m.
     
Results Page:  Previous Next
Author Wirfs-Brock, Rebecca, author.

Title Object Design : Roles, Responsibilities, and Collaborations / Wirfs-Brock, Rebecca. [O'Reilly electronic resource]

Edition 1st edition.
Publication Info. Addison-Wesley Professional, 2002.
QR Code
Description 1 online resource (416 pages)
text file
74.99
Summary 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.
Bibliography Includes bibliographical references and index.
Contents Chapter 1 Design Concepts 1 -- Object Machinery 2 -- Roles 3 -- Object Role Stereotypes 4 -- Roles, Responsibilities, and Collaborations 5 -- Object Contracts 7 -- Conditions-of-Use and Aftereffect Guarantees 8 -- Domain Objects 8 -- Application-Specific Objects 10 -- Interfaces 12 -- Classes 13 -- Two Roles 13 -- Composition 16 -- Inheritance 16 -- Object Organizations 17 -- Components 18 -- Patterns 18 -- Applying Double Dispatch to a Specific Problem 20 -- The Real Benefits of Using Patterns 25 -- Frameworks, Inc. 25 -- Architecture 27 -- Architectural Styles 28 -- Centralized Control Style 30 -- Dispersed Control: No Centers 30 -- Delegated Control 31 -- Examining Interactions: A Layered Architecture Example 32 -- Locating Objects in Layers 34 -- Design Description 36 -- Chapter 2 Responsibility-Driven Design 39 -- A Process for Seeing, Describing, and Designing 40 -- Launching the Production: Project Definition and Planning 44 -- Setting the Stage: Early Description 44 -- Staging the Production: Design 47 -- "Seeing" from Multiple Perspectives 49 -- Writing the Script: Analysis Descriptions 49 -- Usage Descriptions 50 -- Other Specifications 58 -- Glossaries 58 -- Conceptual Objects 58 -- Casting the Characters: Exploratory Design 60 -- CRC Cards 61 -- Inventions: Using Patterns 62 -- Pursuing a Solution 67 -- Bouncing Between Ideas and Details 68 -- Tuning the Production: Design Refinement 70 -- Designing for Flexibility and Extension 71 -- Designing for Reliability 73 -- Making Our Design Predictable, Consistent, and Comprehensible 73 -- Chapter 3 Finding Objects 77 -- A Discovery Strategy 78 -- Looking for Objects and Roles, and Then Classes 79 -- Why Tell a Design Story? 80 -- Search Strategies 84 -- What's in a Name? 88 -- Describing Candidates 93 -- Characterizing Candidates 98 -- Connecting Candidates 99 -- Looking for Common Ground 101 -- Defend Candidates and Look for Others 104 -- Chapter 4 Responsibilities 109 -- What Are Responsibilities? 110 -- Where Do Responsibilities Come From? 111 -- Strategies for Assigning Responsibilities 125 -- Recording Responsibilities 126 -- Making Initial Assignments 128 -- Getting Unstuck 138 -- Implementing Objects and Responsibilities 140 -- Testing Your Candidates' Quality 145 -- Chapter 5 Collaborations 149 -- What Is Object Collaboration? 150 -- Preparing for Collaboration 150 -- Recording Candidate Collaborations 151 -- The Design Story for the Speak for Me Software 152 -- Collaboration Options 153 -- Who's In Control? 155 -- How Much Should Objects Trust One Another? 155 -- Strategies for Identifying Collaborations 158 -- Looking at an Individual Object's Role: Stereotypes Imply Collaborations 159 -- Looking at Individual Responsibilities: They Imply Collaborations 166 -- Designing the Details of a Complex Responsibility 168 -- Designing Collaborations for a Specific Task 169 -- Identifying Applicable Patterns 170 -- Identifying How Architecture Influences Collaborations 172 -- Solving Problems in Collaborations 173 -- Simulating Collaborations 176 -- Planning a Simulation 177 -- Running a Simulation 180 -- Designing Good Collaborations 183 -- The Law of Demeter: A Case Study 184 -- Making Collaborations Possible 187 -- Guidelines for Making Connections 188 -- Designing Reliable Collaborations 190 -- When Are We Finished? 191 -- Chapter 6 Control Style 195 -- What Is Control Style? 196 -- Control Style Options 197 -- Making Trade-offs 198 -- Centralizing Control 198 -- Delegating Control 200 -- The Limits of Control Decisions 201 -- Developing Control Centers 205 -- A Case Study: Control Style for External User Events 206 -- Centralizing Control in the MessageBuilder 208 -- Refactoring Decision Making into State Methods within the MessageBuilder 220 -- Abstracting Away Decisions 221 -- Delegating More Responsibility 224 -- Designing the Control Style for the Guessing Neighborhood 225 -- Designing a Similar Control Center: Can We Be Consistent? 230 -- Chapter 7 Describing Collaborations 239 -- Telling Collaboration Stories 240 -- A Strategy for Developing a Collaboration Story 241 -- Establishing Scope, Depth, and Tone 242 -- Listing What You Will Cover 243 -- Deciding on the Level of Detail 243 -- Showing a Bird's-Eye View 244 -- Showing Collaborators Only 245 -- Showing a Sequence of Interactions Among Collaborators 250 -- Showing an In-Depth View 251 -- Showing a Focused Interaction 253 -- Showing an Implementation View 254 -- Showing How to Adapt a Collaboration 254 -- Where UML Diagrams Fall Short 258 -- Choosing the Appropriate Form 263 -- Tell It, Draw It, Describe It: Guidelines 264 -- Organizing Your Work 270 -- Adding Emphasis 271 -- Unfolding Your Story 271 -- Understanding What's Fundamental 272 -- Putting It All Together 273 -- Preserving Stories 274 -- Chapter 8 Reliable Collaborations 277 -- Understanding the Consequences of Failure 278 -- Increasing Your System's Reliability 280 -- Determining Where Collaborations Can Be Trusted 280 -- Trusted Versus Untrusted Collaborations 281 -- Implications of Trust 284 -- Identifying Collaborations to Be Made Reliable 285 -- What Use Cases Tell Us 286 -- Distinguish Between Exceptions and Errors 287 -- Object Exceptions Versus Use Case Exceptions 288 -- Object Exception Basics 288 -- Exception- and Error-Handling Strategies 294 -- Determining Who Should Take Action 296 -- Designing a Solution 299 -- Brainstorm Exception Conditions 299 -- Limit Your Scope 300 -- Record Exception-Handling Policies 302 -- Documenting Your Exception-Handling Designs 303 -- Specifying Formal Contracts 307 -- Reviewing Your Design 311 -- Chapter 9 Flexibility 315 -- What Does It Mean to Be Flexible? 316 -- Degrees of Flexibility 317 -- The Consequences of a Flexible Solution 319 -- Nailing Down Flexibility Requirements 320 -- Recording Variations 324 -- Variations and Realizations 327 -- Identifying the Impact of a Variation 328 -- Exploring Strategies for Realizing Flexibility 329 -- Using Templates and Hooks to Support Variations 330 -- The Role of Patterns in Flexible Designs 338 -- Varying an Object's Behavior with the Strategy Pattern 338 -- Hiding Interacting Objects with Mediator 339 -- Making a Predefined Object or System Fit Using Adapter 340 -- How Do Patterns Increase Flexibility? 340 -- How to Document a Flexible Design 342 -- Consider Your Audience 344 -- Describing How to Make a Variation 345 -- Changing a Working System's Design 350 -- Chapter 10 On Design 355 -- The Nature of Software Design 356 -- Tackling Core Design Problems 357 -- Frame the Problem 358 -- Dealing with Revealing Design Problems 361 -- A Story About Managing Shared Information 362 -- A Story About Connection Problem Complexity 363 -- A Story About a Design Problem That Never Got Easier 364 -- Can Revealing Problems Be Wicked, Too? 365 -- Strategies for Solving Revealing Problems 366 -- Redefining the Problem 368 -- Synthesizing a Solution 369 -- Working on the Rest 370 -- Designing Responsibly 371.
Access Use copy Restrictions unspecified star MiAaHDL
Reproduction Electronic reproduction. [Place of publication not identified]: HathiTrust Digital Library. 2023. MiAaHDL
System Details Master and use copy. Digital master created according to Benchmark for Faithful Digital Reproductions of Monographs and Serials, Version 1. Digital Library Federation, December 2002. http://purl.oclc.org/DLF/benchrepro0212 MiAaHDL
Processing Action digitized 2023. HathiTrust Digital Library committed to preserve pda MiAaHDL
Subject Object-oriented methods (Computer science)
Conception orientée objet (Informatique)
Object-oriented methods (Computer science)
Added Author McKean, Alan, author.
Other Form: Original (DLC) 2002112293 (OCoLC)422447833
Standard No. 9780201379433
0201379430
Patron reviews: add a review
Click for more information
EBOOK
No one has rated this material

You can...
Also...
- Find similar reads
- Add a review
- Sign-up for Newsletter
- Suggest a purchase
- Can't find what you want?
More Information