umple
The Umple Model-Oriented Programming Technology
Umple is technology for Model-Oriented Programming. It adds abstractions such as UML associations, attributes, and state machines to object-oriented programming languages such as Java, C++, PHP and Ruby.
A developer can use Umple in one of several ways. They can start with a pure model, containing only classes, associations, attributes and state machines, and then gradually add methods in one of the base languages to the Umple code base. Alternatively a developer can start with a normal 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