What is UML?
Unified Modeling language (UML) is a family of graphical notations, backed by a single meta-model, that help in describing and designing software systems, particularly software systems built using the object-orientated (OO) style. That's a somewhat simplified definition. In fact UML is a few different things to different people.
Ways of using UML
As a Sketch
UML is used under this description dynamically. A common media could be a whiteboard, where people, collaboratively, throw up ideas about some part of the system. When used as a Sketching tool, UML could be used to reverse engineer part of a system. At this stage the users would not be too concerned with the actual code, and getting every object diagrammed, rather this stage would give a broader outline of the system.
UML as Blueprint
UML as a blueprint is about completeness, at this stage designers are forward engineering the product. Tools used at this stage could be CASE (Computer Aided Software Engineering) tools. Forward engineering tools support diagramming, and back this up with a repository to hold the information. Reverse engineering tools can read any source code and interpret this into diagrams. Tools that are able to do both are called round-trip tools.
Some tools use the source code itself as the repository and use diagrams as a graphic view port on the code; could be referred to as tripless tools.
The line between sketches and blueprints is blurry. In a nutshell sketches are explorative, while blueprints are definitive.