BOUML is a free software UML diagram designer. Programmed in C++ and Qt, it is released under GPL. It is multilingual, supports code generation and code reverse engineering.
BOUML allows you to draw diagrams following the UML 2.0 standard. It is compatible with languages: C++, Java, Php, Python and IDL and performs diagram reverse and forward engineering for multiple languages. BOUML is cross-platform, running under Linux/Unix/Solaris, Mac OS X and Windows thanks to Qt. It is very fast compared to other UML modelers and supports XMI.