"The Unified Modeling Language (UML) is a language for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling and other non-software systems. The UML represents a collection of the best engineering practices that have proven successful in the modeling of large and complex systems." (From OMG Unified Modeling Language Specification, March 2003, Version 1.5, Object Management Group. http://www.omg.org/cgi-bin/doc?formal/03-03-01. Beware, this is a 736 page PDF document!)
More informally, UML is a diagrammatic notation which is useful in OO design for specificying class and object structure as well as sequences (calling and return sequences over time). The example below, from the Go4 book, Factory Method, Structure, pg. 108, is typical.
This is an extensive page with many examples of UML diagrams by Borland/Together.
This is a more detailed page focused on class diagrams specifically from the same Borland/Together site.
This is a very long "reference card" on UML. I found a few errors in it, but basically it's quite a good reference.
Go to our page on Java design patterns in Java and you'll find links to UML class and sequence diagrams. The first ones, for the Memento pattern was posted 7/13/2003..