UML
http://plg.uwaterloo.ca/~might/uml.html
For Java, I see where using a tool like UMLet works great. At work I'm documenting a coldfusion MX project where all the documentation is currently in MS Word. To make the UML diagram useful, I need to be able to embed the diagram into the existing documentation. I've moved from UMLet to Visio so that I can OLE link diagrams directly in Word. The linking part is great, but doing UML in visio is quite painful. UMLet allows you to simply type your attributes and methods into an editor window and the diagram updates as you type, making data entry easy and fast. Visio makes the process much more painful...to edit a class, you first open its properties window, select either "attributes" or "operations", then select individual attributes to edit them. Even worse, visio forces you to select the permissions and datatypes from a dropdown, adding clicks to data entry. Gah! What a pain.
Perhaps after I'm finished with this set of documentation I'll take some time to look at more portable options like OpenOffice and see if they have better tools for the job.