Free UML 2 modeler
BOUML is a Unified Modeling Language editor for Qt. You can use it to create nearly all of UML diagrams. BOUML can generate code from those diagrams in C++, Java and IDL, and can also reverse existing code.
The program supports class diagrams, sequence diagrams, collaboration diagrams, object diagrams, use case diagrams, component diagrams, state diagrams, activity diagrams, component diagrams and deployment diagrams.