Experience shows that graphical diagrams are valuable for understanding software. On the other hand, writing software in text is usually far more efficient than drawing diagrams in a modeling IDE. The txtUML project aims at combining the advantages of these two approaches: creating models textually and still have possibility to visualize it on graphical diagrams.
txtUML models can be written using two different syntaxes:
In both cases, these textual models can be edited, searched, version controlled, refactored as any other program.
UML is mostly used to informally specify the architecture of software, but it is capable to do much more. Executable models specify all aspects of software from components and classes to state machines and activities. They can be executed, debugged and tested independently of the target platform where the software will finally work.
The XtxtUML syntax is on the fly translated to the JtxtUML syntax in Eclipse, therefore all txtUML programs are, basically, Java programs. This makes it possible to run, debug and test them using the standard Java runtime environments, debuggers and test frameworks. In addition, modeling-specific debugging features, such as animated state machines, are also available.
Model compilers translate the abstract models to programs in an implementation language (like C, C++, Java etc.), targeting a specific run-time environment (hardware, operating system, specific libraries). Our project includes a generic C++ model compiler that can be used as is, or as a basis to create a new compilers for different languages and special platforms.