Practical and down-to-earth in approach, this bestseller explores the art of designing object-oriented software. It offers basic design principles and a specific design process that can be applied to any software programming effort -- even those not using object-oriented...