David West wrote Object Thinking where the main stressed point is that objects must be designed in terms of behaviour and not data.
This excerpt resumes it nicely:
Consider a tabby and a tiger. What differentiates a tiger from a tabby? Why do we have separate names for them? Because one is likely to do us harm if given the chance, and the other provides companionship (albeit somewhat fickle). Each has at least one expected behavior that differentiates it from the other. It is this behavior that causes us to make the distinction. Some (people who still believe in data, for example) would argue that tab- bies and tigers are differentiated because they have different attributes. But this is not really the case. Both have eye color, number of feet, tail length, body mark- ings, and so on. The values of those attributes are quite different—especially length of claw and body weight—but the attribute set remains relatively constant. Behavior is the key to finding the natural joints in the real world. This means, fortunately, that most of our work has already been done for us. Soft- ware developers simply must listen to domain experts. If the domain expert has at hand a name (noun) for something, there is a good chance that that some- thing is a viable, naturally carved, object.