What is the BEST book (I mean, MOST often agreed upon) for learning proper how to diagram code (that's using UML, right? Like when you document a database and it's relationships? I have a book on just relational database design - are these two different types of UML or would I benefit from re-studying that?)? Also, I'd like this book to cover class design and 'best practices'. It doesn't have to be about Java (although that would help). I REALLY want to learn OOP right the first time, and want to make sure that I'm designing even my simple programs correctly and to standard. And I'd like to be able to read and produce diagrams (again, I want to say UML?) of code. Thank you all!!
-nothing important to say, but learnin' plenty-
UML has nothing to do with relational database design, only for modeling relationships between objects (e.g. objects in Java). Try Googling around a bit and you'll find info on these two separate topics in a heartbeat. Try putting "tutorial" as one of the search words.
(I don't necessarily intend to endorse the following book.) Craig Larman's book titled Applying UML and Patterns, which also covers the Unified Process and iterative development in my experience has been read by many developers I've spoken to, and it seems to be used by quite a few Universities that attempt to teach the various topics of software design. I will say that I've read it and I undoubtedly learned a bit about OO, UML and Patterns while doing so.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus