umple
The Umple Model-Oriented Programming Technology
... program in a language like Java, and add modeling constructs in very small increments, gradually moving their system from a code-centric system from a model-centric system. Either way, Umple provides top-quality code generation.
Umple is being used, for real systems. In fact the Umple compiler itself was written in Umple. Any Java, C++ or PHP project could use Umple.
The UmpleOnline web app provides a quick way to explore the Umple approach. It is at http://try.umple.org