HOME
Most Popular
New Books

Object Design: Roles, Responsibilities, and Collaborations

Object Design: Roles, Responsibilities, and CollaborationsISBN:0201379430
Pages:416
Date:2002-11-08
Publisher:Addison-Wesley Professional
Rating:4.5

Read Object Design: Roles, Responsibilities, and Collaborations Online

   

From the Back Cover

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/p>

    Reviews From AMAZON.COM


    Developer, Programmer, and System Modeler


    I have read so many OOAD books, none of which give me a clear idea how and why software design should be designed that way,
    at which situration, according to which external facts should the correct design decision be selected and considered.
    In core OO design stream, we will distributed/assigned each object with their desirable responsibilities, we must select a flexible control and coordation style to allow software for change. it is a system view of our software.

    This book given me a best introduction to think a solution all above questions and design views(system behavours).
    When I read and studies this book, it let me consolid and remenber many knowledge above control theory, layer architecture of big software system such as CAD system.

    Each project have particular siturations and design constraints,
    how we can design a useful software to solve user requirements is the first thing to consider.

    Many formal formalism will not be work for flexiblity, such as RUP CMMI... etc, those processes like a doing documentation not a useful design and devlivery working software that fit our users requests. I think experience programmer, developer should more thinking in system point of view.

    Total Disappointment for Programmers

    I am a developer/programmer for a technical software company and my review contains my perception of this book from that perspective. I must also disclose that I am sceptical of any object-oriented design methodology that involves a lot of writing. We are "programmers", not story writers (read use cases).

    When I ordered this book a week ago, I couldn't wait to get my hands on this book because it sounded so promising. My enthusiasm turned into total disappointment so quickly I couldn't believe myself; I had to give another shot in reading this book to make sure. But I am convinced; the authors managed the impossible task of filling its 390 pages without saying anything substantial about object-oriented design for a professional software developer.

    The book might be useful for a novice programmer or a manager in terms of defining the object design jargon and process. But other than this, it provides no valuable advice for a professional. These are some of the points that I find ridiculously simplistic and almost idiotic:

    - In my opinion use cases and CRC cards all boil down to writing on a piece of paper what classes one should use and what these classes should do. This is not methodology, it is common sense. Any sensible developer would write down his/her ideas about the classes involved in an application before starting to program.

    - Although it is valuable advice to think about class responsibilities, the book states nothing more than the obvious in terms of finding what responsibilities should be assigned to which classes. Statements like "Responsibilities come from statements or implications of system behavior found in use cases" are tautologies. Where else would they come from!

    - Or the chapter on Flexibility says things like "Find out what you don't know". I can't even begin to elaborate on philosophical implications of such advice!

    Although the book looks appealing to the eye, it has no clear content. It states ideas about classes, responsibilities, etc without a clear structure; and after a while, everything said seems to be a repetition of some earlier statements.

    If you are serious about object-oriented design as a "programmer" I recommend these three books:

    1. Gamma E., et al., Design Patterns.
    2. James R Rumbaugh, et al., Object-Oriented Modeling and Design. A bit dated, but you will get all you need to know about object oriented design from this book.
    3. Bjarne Stroustrup, The C++ Programming Language (Special 3rd Edition). Never mind it is a C++ book. Chapters on OOD (I think chapters 21-25) will tell you exactly what you need to understand to start programming using OO approach.

    Do yourself a favor and invest in these books; and ignore all the fab about such trendy books such as the one reviewed above.

    NEW!!!

    TOOOO Many results in general search?!! Try this customized search engine for searching online books