Support This Project Logo


UMLSpeed is no longer being maintained. It was an interesting experiment and I hope the code may be useful to others.

UMLSpeed is a compiler for a simple, C-style language that allows declaration of UML entities and diagrams. Diagrams can be compiled into SVG and the entities to XMI for use with other tools.


  1. Graphical UML tools in general suck - why should we, as programmers have to drag and drop stupid graphical things and use a mouse when we could express what we want 10 times faster with a text editor and a simple notation?
  2. A declarative approach is closer to the mental model used by developers when designing systems.
  3. Why should we lay out diagram components when the computer could do it for us?
  4. Graphical UML tools are bloated, huge, memory and disk-hogging monsters.
  5. Graphical UML tools use either a binary data format or XML, which is not particularly friendly to source code control systems.

Advantages of UMLSpeed

  1. Written in GCJ-portable java and compiled natively. It's extremely fast even when dealing with thousands of entities and diagrams.
  2. Has no dependencies on external libraries and is very lightweight.
  3. Purely command-line driven, or operable as an Eclipse plugin and takes miniscule resources.
  4. Flexible enough with file imports that large UML projects can be broken up into separate files and only individual bits built at a time as required.
  5. C-style syntax means that the source language integrates well with source code control and diff tools.
  6. Standards compliant - produces interoperable SVG and XMI, as well as clean source code.
  7. Can integrate with automated build tools for regular diagram/xmi compilation.
  8. Consistent language for all diagram types.
  9. Strikes a balance between automatic laying out of components and giving you control through the use of layout managers - no having to input co-ordinates.


This is still alpha software. Don't hold me responsible if it kills your pets and blows your house up.

Implemented so far:

Still to do:

Sample Output

Class Diagram:

Satellite Class Diagram:

Class Diagram (with packages):

Use Case Diagram:

Sequence Diagram:

Deployment Diagram:


Linux/BSD:Requires GNU make + gcj (run make).

Windows:Requires Java 1.4 and ant (run ant)

Eclipse Plugin: Eclipse 3.2 or greater is required (any platform). Unpack the eclipse plugin zip file into your Eclipse installation directory to install. Right-clicking on .ums files adds a "UMLSpeed" context menu, allowing you to choose output options.

Maven Plugin: Maven 2 is required (any platform). Unzip the zip file and follow the directions in the readme file.

Download at SourceForge

Copyright(c)2007, R. Rawson-Tetley