Preface to the Second Edition.- Preface to the First Edition.- Part I: Basic Object-Oriented Concepts.- Introduction.- Basics of Object-Oriented Programming.- Relationships Between Classes.- Language Features for Object-Oriented Implementation.- Part II: Introduction to Object-Oriented Analysis, Design, Implementation and Refactoring.- Elementary Design Patterns.- Analysing a System.- Design and Implementation.- How 'Object-Oriented' is Our Design?.- Part III: Advanced Concepts in Object-Oriented Design.- Exploring Inheritance.- Modelling with Finite State Machines.- Interactive Systems and the MVC Architecture.- Designing with Distributed Objects.- The Unified Modelling Language.- Appendix A.-Index