Principles of object-oriented software development
Choice Reviews Online · 1995
Part I: Designing Object-Oriented Systems 1. Introduction What is Object Orientation The Object-Oriented Software LifeCycle Paradigms of Programming An Overview of This Book Further Literature on O-OP 2. Object-Oriented Programming Computing Devices the Object Model Encapsulation and Inheritance in C++ Generic Types Canonical Classes DD> Benefits and Pitfalls Extensions to the Object Model 3. Object-Oriented Design The Process of Design Identifying Objects Contracts Design Guidelines 4. Software Engineering Perspectives Validating Software A Framework for Testing Object-Oriented Programs Metrics for Object-Oriented Design An Objective Sense of Style Towards a Formal Approach Part II: Object-Oriented Languages And Systems 5. Object-Oriented Programming Languages The Object Paradigm Comparing Smalltalk, Eiffel and C++ Design Dimensions of Object-Oriented Languages Prototypes-Delegation Versus Inheritance Meta-Level Architectures 6. Distribution And Concurrency A Modeling Perspective Objects and Processes Concurrent Extensions of C++ Inheritance on Process Requirements for Distribution 7. Composition Mechanisms Composition by Inheritance Interaction Through Delegation Indirect Cooperation Event Driven Control Part III: Foundations Of Object-Oriented Modeling 8. Abstract Data Types Abstraction and Types Algebraic Specification Decomposition-Modules Versus Objects Type Versus Classes 9. Polymorphism Abstract Inheritance The Subtype Relation Flavors of Polymorphism Type Abstraction Existential Types: Hiding Self-Reference 10. Behavioral Refinement Types as Behavior Verifying Behavioral Properties On the Notion of Behavioral Types Objects as Behavioral Types Specifying Behavioral Compositions Part IV: Object Oriented Application Frameworks 11. Libraries And Environments Application Development Library Design Methods and Tools Libraries for C++ 12. Hypermedia Frameworks The Concepts of Hypermedia A Hypermedia Model Multi-Paradigm Programming Heterogeneous Systems