I am a huge fan of software design principles such as SOLID and DRY. What other principles exist for OO software design?
Note. I’m not looking for answers like "comment your code" but instead looking for OO design principles like the ones discussed by Uncle Bob.
A fairly comprehensive list from Wikipedia:
http://en.wikipedia.org/wiki/List_of_software_development_philosophies