Object-oriented design heuristics / Arthur J. Riel.
By: Riel, Arthur J.
Material type:
BookPublisher: London ; Reading, Mass. : Addison-Wesley Pub. Co, c1996Description: xix, 379p ill. ; 25 cm.ISBN: 020163385X; 9780201633856.Subject(s): Object-oriented programming (Computer science)| Item type | Current library | Call number | Copy number | Status | Barcode | |
|---|---|---|---|---|---|---|
| General lending | MTU Kerry North Campus Library Ground Floor Main | 005.1 RIE (Browse shelf(Opens below)) | 1 | Available | 38888000510341 |
Enhanced descriptions from Syndetics:
Provides a set of metrics that helps determine the quality of object-oriented models. This book 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.
Includes bibliographical references (p. 369-371) and index.
Table of contents provided by Syndetics
- 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
- Introdu
Excerpt provided by Syndetics
Author notes provided by Syndetics
Arthur J. Riel has more than twelve years of experience programming in C and C++ and currently teaches more than forty courses per year in both corporate and academic environments. He has participated in the development of many large systems, working with AT&T Bell Laboratories, Draper Laboratories, IBM, and Northeastern University. He has written numerous articles for publications including the Journal of Object-Oriented Programming , the C++ Insider , and the C/C++ Gazette . He is also a frequent lecturer at leading conferences including OOPSLA, Object Expo, SCOOP, and C++ World.
020163385XAB04062001