A practical, down-to-earth introduction to the art of designing object- oriented software.* offers basic design principles and a specific design process that can be applied to any software programming effort - even those not using object-oriented programming languages or environments. * covers the concepts of object-oriented technology, and present a process to apply those concepts, the tools to use throughout the process, and examples to put it all together. * outlines the process of determining the classes of objects that will make up the software. * considers how to design the flow of control and information in the software. * explains how inheritance can be used to maximize software reusability. * features an uninterrupted example of an object-oriented design to show how the process flows in actual use.