BOUML is a free UML 2 tool box allowing you to specify and generate code in C++, Java, IDL and PHP. BOUML is very fast and will not require much memory even f it manages several thousands of classes.
BOUML is extensible, and the external tools named plug-outs can be written in C++ or Java, using BOUML for their definition as any other program. The code generators and reverses are ones of the pre-defined plug-outs included in the BOUML distribution.
What's new in this version:
In version 4.23 it's now possible for an activity initial node to have several outgoing flows with (cf.).