UMLSpeed
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.
Why?
- 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?
- A declarative approach is closer to the mental model used by developers
when designing systems.
- Why should we lay out diagram components when the computer could do
it for us?
- Graphical UML tools are bloated, huge, memory and disk-hogging
monsters.
- Graphical UML tools use either a binary data format or XML,
which is not particularly friendly to source code control systems.
Advantages of UMLSpeed
- Written in GCJ-portable java and compiled natively. It's extremely
fast even when dealing with thousands of entities and diagrams.
- Has no dependencies on external libraries and is very lightweight.
- Purely command-line driven, or operable as an Eclipse plugin and takes
miniscule resources.
- 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.
- C-style syntax means that the source language integrates well with
source code control and diff tools.
- Standards compliant - produces interoperable SVG and XMI, as well
as clean source code.
- Can integrate with automated build tools for regular diagram/xmi
compilation.
- Consistent language for all diagram types.
- 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.
Status
This is still alpha software. Don't hold me responsible if it kills your
pets and blows your house up.
Implemented so far:
- Compiler/parser
- Namespaces, Class diagrams and related entities
- Use case diagrams and related entities
- Sequence diagrams
- Deployment diagrams and related entities
- Diagram packages
- Auto-link pathfinding
- XMI 1.3 output
- VIM syntax highlighting
- Code generation (Java and Python)
- Eclipse plugin
- Maven plugin
- Documentation output
Still to do:
- Code generation (Ruby, PHP, Perl, C++, C#)
- Diagram notes
- Alternative diagram layout managers
- Activity diagrams
Sample Output
Class Diagram:
Satellite Class Diagram:
Class Diagram (with packages):
Use Case Diagram:
Sequence Diagram:
Deployment Diagram:
Requirements
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