Umple is a textual language for writing models and generating code using abstractions such as associations, state machines and composite structure. Developers can embed models in languages such as Java, PhP and C++. Use this tag for questions referring to the Umple language or Umple tools such as the compiler and Eclipse plugin.
Umple is an open-source technology for creating and analysing models of software systems as well as generating code from the models. Models are are written textually and can embed code in multiple languages (Java, PhP and C++ have the greatest support).
It can be used in a variety of ways:
You can simply use it as a tool to edit UML class diagrams, state diagrams or composite structure diagrams. Umple will help you find errors in these diagrams. You describe the diagrams in a simple textual syntax; for class diagrams, you can edit the diagrams, with the text being automatically updated as you edit the diagram.
You can use Umple to quickly produce code for a small part of a larger system (e.g. a state machine or a data model).
You can use Umple as a preprocessor, adding modeling features to your existing code base.
You can use Umple to build entire large systems following model-driven development. In fact the Umple compiler is written entirely in Umple.
Although Umple models are based on UML concepts, it has many feaures that relate to its textual form: It enables modeling (and programming) using traits and mixins; it allows models to be versioned as is standard-practice in programming langauges, and Umple comes with its own built-in sophisticated template language for generating textual output. This can be used to replace the Jet language (and there is a tool for converting Jet to Umple) Umple comes with a parsing library that can be used to produce domain-specific languages that work with Umple.
Umple can be used in many kinds of applications from data-centric to real-time. For the latter it has a variety of concurrency capabilities, including concurrently-executing state machine do-activities, queued state machines, ports and active objects.
More information about Umple is here, and its online environment is here It has an Eclipse plugin and can be used on the command line too.