Object-Oriented Design Heuristics
Home > Computing and Information Technology > Computer programming / software engineering > Object-oriented programming (OOP) > Object-Oriented Design Heuristics
Object-Oriented Design Heuristics

Object-Oriented Design Heuristics

|
     0     
5
4
3
2
1




Out of Stock


Notify me when this book is in stock
About the Book

Upon completion of an object-oriented design, you are faced with a troubling question: "Is it good, bad, or somewhere in between?" Seasoned experts often answer this question by subjecting the design to a subconscious list of guidelines based on their years of experience. Experienced developer Arthur J. Riel has captured this elusive, subconscious list, and in doing so, has provided a set of metrics that help determine the quality of object-oriented models. Object-Oriented Design Heuristics offers insight into object-oriented design improvement. The more than sixty guidelines presented in this book are language-independent and allow you to rate the integrity of a software design. The heuristics are not written as hard and fast rules; they are meant to serve as warning mechanisms which allow the flexibility of ignoring the heuristic as necessary. This tutorial-based approach, born out of the author's extensive experience developing software, teaching thousands of students, and critiquing designs in a variety of domains, allows you to apply the guidelines in a personalized manner.The heuristics cover important topics ranging from classes and objects (with emphasis on their relationships including association, uses, containment, and both single and multiple inheritance) to physical object-oriented design. You will gain an understanding of the synergy that exists between design heuristics and the popular concept of design patterns; heuristics can highlight a problem in one facet of a design while patterns can provide the solution. Programmers of all levels will find value in this book. The newcomer will discover a fast track to understanding the concepts of object-oriented programming. At the same time, experienced programmers seeking to strengthen their object-oriented development efforts will appreciate the insightful analysis. In short, with Object-Oriented Design Heuristics as your guide, you have the tools to become a better software developer. 020163385XB04062001

Table of Contents:
Preface. Acknowledgments. 1. The Motivation for Object-Oriented Programming. Revolutionists, Evolutionists, and the Object-Oriented Paradigm. Accidental Versus Essential Complexity à la Frederick Brooks. The Waterfall Model. The Iterative Model. Same- Versus Different-Language Prototyping. Software Reusability. Corporate Hierarchies of Good Designers. 2. Classes and Objects: The Building Blocks of the Object-Oriented Paradigm. Introduction to Classes and Object. Messages and Methods. Class Coupling and Cohesion. Dynamic Semantics. Abstract Classes. Roles Versus Classes. 3. Topologies of Action-Oriented Versus Object-Oriented Applications. Differences in Application Topologies. When the Action-Oriented Paradigm Goes Right. The God Class Problem (Behavioral Form). Another Example of Poor System Intelligence Distribution. The God Class Problem (Data Form). The Proliferation of Classes Problem. The Role of Agent Classes. Examining the Use of Separate Entity and Controller Classes. 4. The Relationships Between Classes and Objects. Introduction to Class and Object Relationships. The Uses Relationship. Six Different Ways to Implement the Uses Relationship. Heuristics for the Uses Relationship. Refining the Amount of Collaboration Between Two Classes. The Containment Relationship. Semantic Constraints Between Classes. Attributes Versus Contained Classes. More Containment Heuristics. A Relationship Between Uses and Containment? Containment by Value Versus Containment by Reference. 5. The Inheritance Relationship. Introduction to the Inheritance Relationship. Overriding Base Class Methods in Derived Classes. The Use of the Protected Section of a Base Class. The Width and Depth of Inheritance Hierarchies. Private, Protected, and Public Inheritance à la C++. A Real-World Example of Specialization. Heuristics That Trade Off Design Complexity and Flexibility. A Real-World Example of Generalization. The Mechanism of Polymorphism. A Problem with the Use of Inheritance as a Reusability Mechanism. An Inheritance Solution to an Interrupt-Driven Architecture. Inheritance Hierarchies Versus Attributes. The Confusion of the Need for Inheritance Versus an Object's Dynamic Semantics. Using Inheritance to Hide the Representation of a Class. Mistaking Objects for Derived Classes. Mistaking Object Generalization for the Need to Build Classes at Runtime. The Attempt to NOP a Base Class Method in Its DerivedClass(es). The Implementation of Optional Parts of Objects. A Problem with No Optimal Solution. Reusing Components Versus Reusing Frameworks. 6. Multiple Inheritance. Introduction to Multiple Inheritance. The Common Misuse of Multiple Inheritance. A Valid Use of Multiple Inheritance. Accidental Complexity In Languages That Do Not Support Multiple Inheritance. Frameworks That Incorporate Multiple Inheritance. The Use of Multiple Inheritance in the Design of Mixins. DAG Multiple Inheritance. Accidental DAG Multiple Inheritance via Poor Implementation of Optional Containment. 7. The Association Relationship. Introduction to Associations. Associations Implemented Through a Referential Attribute. Associations Implemented Through a Third-Party Class. Deciding Between a Containment and an Association Relationship. 8. Class-Specific Data and Behavior. Introduction to Class-Specific Versus Object-Specific Data and Behavior. Using Metaclasses to Capture Class-Specific Data and Behavior. Using Language-Level Keywords to Implement Class- Versus Object-Specific Data and Behavior. Metaclasses à la C++. A Useful Abstract Class That Is Not a Base Class? 9. Physical Object-Oriented Design. The Role of Logical and Physical Object-Oriented Design. The Construction of Object-Oriented Wrappers. Persistence in an Object-Oriented System. Memory Management Issues in an Object-Oriented Application. Minimal Public Interfaces for Reusable Components. Implementing Safe Shallow Copies. Concurrent Object-Oriented Programming. Implementing Object-Oriented Designs in Nonobject-Oriented Languages. 10. The Relationship Between Heuristics and Patterns. Heuristics Versus Patterns. Transitivity Among Design Transformation Patterns. The Reflexive Property of Design Transformation Patterns. Other Design Transformation Patterns. Future Research. 11. The Use of Heuristics in Object-Oriented Design. The ATM Problem. Choosing a Methodology. A First Attempt at Producing an Object Model for the ATM. Adding Behavior to Our Object Model. Explicit Case Analysis Due to Accidental Complexity. Messaging Objects in Different Address Spaces. The Processing of the Transaction. Returning to the Domain of the ATM. Other Miscellaneous Issues. Conclusion. A. Heuristics Summary. B. Memory Leakage in C++. C. Selected C++ Examples. Bibliography. Index. 020163385XT04062001


Best Sellers


Product Details
  • ISBN-13: 9780201633856
  • Publisher: Pearson Education (US)
  • Publisher Imprint: Addison Wesley
  • Height: 189 mm
  • No of Pages: 400
  • Weight: 988 gr
  • ISBN-10: 020163385X
  • Publisher Date: 13 Jun 1996
  • Binding: Hardback
  • Language: English
  • Spine Width: 34 mm
  • Width: 242 mm


Similar Products

Add Photo
Add Photo

Customer Reviews

REVIEWS      0     
Click Here To Be The First to Review this Product
Object-Oriented Design Heuristics
Pearson Education (US) -
Object-Oriented Design Heuristics
Writing guidlines
We want to publish your review, so please:
  • keep your review on the product. Review's that defame author's character will be rejected.
  • Keep your review focused on the product.
  • Avoid writing about customer service. contact us instead if you have issue requiring immediate attention.
  • Refrain from mentioning competitors or the specific price you paid for the product.
  • Do not include any personally identifiable information, such as full names.

Object-Oriented Design Heuristics

Required fields are marked with *

Review Title*
Review
    Add Photo Add up to 6 photos
    Would you recommend this product to a friend?
    Tag this Book Read more
    Does your review contain spoilers?
    What type of reader best describes you?
    I agree to the terms & conditions
    You may receive emails regarding this submission. Any emails will include the ability to opt-out of future communications.

    CUSTOMER RATINGS AND REVIEWS AND QUESTIONS AND ANSWERS TERMS OF USE

    These Terms of Use govern your conduct associated with the Customer Ratings and Reviews and/or Questions and Answers service offered by Bookswagon (the "CRR Service").


    By submitting any content to Bookswagon, you guarantee that:
    • You are the sole author and owner of the intellectual property rights in the content;
    • All "moral rights" that you may have in such content have been voluntarily waived by you;
    • All content that you post is accurate;
    • You are at least 13 years old;
    • Use of the content you supply does not violate these Terms of Use and will not cause injury to any person or entity.
    You further agree that you may not submit any content:
    • That is known by you to be false, inaccurate or misleading;
    • That infringes any third party's copyright, patent, trademark, trade secret or other proprietary rights or rights of publicity or privacy;
    • That violates any law, statute, ordinance or regulation (including, but not limited to, those governing, consumer protection, unfair competition, anti-discrimination or false advertising);
    • That is, or may reasonably be considered to be, defamatory, libelous, hateful, racially or religiously biased or offensive, unlawfully threatening or unlawfully harassing to any individual, partnership or corporation;
    • For which you were compensated or granted any consideration by any unapproved third party;
    • That includes any information that references other websites, addresses, email addresses, contact information or phone numbers;
    • That contains any computer viruses, worms or other potentially damaging computer programs or files.
    You agree to indemnify and hold Bookswagon (and its officers, directors, agents, subsidiaries, joint ventures, employees and third-party service providers, including but not limited to Bazaarvoice, Inc.), harmless from all claims, demands, and damages (actual and consequential) of every kind and nature, known and unknown including reasonable attorneys' fees, arising out of a breach of your representations and warranties set forth above, or your violation of any law or the rights of a third party.


    For any content that you submit, you grant Bookswagon a perpetual, irrevocable, royalty-free, transferable right and license to use, copy, modify, delete in its entirety, adapt, publish, translate, create derivative works from and/or sell, transfer, and/or distribute such content and/or incorporate such content into any form, medium or technology throughout the world without compensation to you. Additionally,  Bookswagon may transfer or share any personal information that you submit with its third-party service providers, including but not limited to Bazaarvoice, Inc. in accordance with  Privacy Policy


    All content that you submit may be used at Bookswagon's sole discretion. Bookswagon reserves the right to change, condense, withhold publication, remove or delete any content on Bookswagon's website that Bookswagon deems, in its sole discretion, to violate the content guidelines or any other provision of these Terms of Use.  Bookswagon does not guarantee that you will have any recourse through Bookswagon to edit or delete any content you have submitted. Ratings and written comments are generally posted within two to four business days. However, Bookswagon reserves the right to remove or to refuse to post any submission to the extent authorized by law. You acknowledge that you, not Bookswagon, are responsible for the contents of your submission. None of the content that you submit shall be subject to any obligation of confidence on the part of Bookswagon, its agents, subsidiaries, affiliates, partners or third party service providers (including but not limited to Bazaarvoice, Inc.)and their respective directors, officers and employees.

    Accept

    New Arrivals

    Inspired by your browsing history


    Your review has been submitted!

    You've already reviewed this product!