BOUML is a recent free UML toolbox (GPL license) for Windows, Linux and MacOS X, written in C++ on Qt.
BOUML is very fast and doesn't need a large memory size (see benchmark), a Java reverse of all the JDK sources is not a problem for it !
BOUML is composed of the modeller itself, and a list of external programs (called plug-out) being able to be written in C++ or Java (not in Visual Basic !). Any user can write a plug-out to extend the modeler features, the API provided carrying out the needed exchanges with the modeller. A plug-out is made using BOUML like any other program.
The main plug-outs contained in BOUML are currently :
C++, Java and IDL generators
C++ and Java reverse
Roundtrip body, to update bodies in the model from their definition in source file, when you ask for write them out of Bouml
Project control and Project synchro, for multi-user modeling management
Plug-out upgrade, to upgrade a plug-out with the new API features
Java catalog, to easily add to the model classes coming from the JDK or another library, may be personal
HTML documentation generator, this one is given as example of a project simultaneously producing a definition in C++ and Java
Rose project import, except diagram in the current version
state machine generator
XMI 1.2 and 2.1 generators
XMI 2.1 import
File control, to manage project files through Clearcase, CVS, subversion or other file controler
pro file generator, these files are used by qmake to produce Makefile