Robert Martin has hammered out a nice set of 11 or so design principles. THIS BLOG has links to nice introductions. The book referenced in there is highly recommended. Scroll on down to the OO, UML etc. forum for much more conversation about this kind of stuff.
My mindset at this moment is to view most of these as managing dependencies so that change in one part of a system doesn't have negative impact in other parts. There is a lot more to it, but that seems to be what's important to me right now.
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi