Now that the various aspects of object technology are firmly established in the mainstream of computing, the principles and practices of object-orientation have become increasingly important to students on university and college computing courses. Object-oriented languages such as C++ and Java have found wide popularity in the workplace, and new methodologies such as the Unified Modeling Language (UML) have been developed to encompass object-oriented design and analysis. As higher education courses adapt to the changing technology, more and more students are finding the need for a simple introductory text covering object-oriented concepts, programming, analysis and design. This book satisfies that need. It is assumed that the reader has a practical knowledge of the basic principles of computer programming, though not necessarily in any particular language. The book demystifies the rather forbidding terminology used in object-oriention, and presents each aspect in a simple form, using C++ as the example language. The guiding principle is that concepts can only be learned through practical 'hands on' experience.