UML tools – Textual notations to define UML models

Tweet about this on TwitterShare on FacebookBuffer this pageShare on RedditShare on LinkedInShare on Google+Email this to someone

See the portal’s page about UML tools for more information on this kind of tools

The recent launch of yUML has revived the interest (AT least IN twitter ) IN the use OF textual notations/languages to describe UML models.

Of course this is not new. The specification of UML diagrams as text has been previously discussed by M. Fowler and C. Bock . The idea of having a tool that automatically draws UML diagrams FROM a textual model description IS attractive AND surely useful in some particular scenarios. However, I think that if this kind of tools become popular we should blame the poor usability of “conventional” tools (too many clicks TO draw a model!) for that.

A quick search shows me that there ARE MORE tools of this kind than I expected. I though it would be useful to list them here (in no particular order):

  • yUML IS an online service FOR creating class AND use CASE diagrams. The service can be called from your blog or web page (with the textual description as part of the URL)to automatically display the image when accessing it.
  • UML Graph automatically draws class AND sequence diagrams. FOR the class diagrams, uses a Java-based syntax complemented by javadoc tags. Running the UmlGraph doclet ON the specification will generate a Graphviz diagram specification. FOR sequence diagrams uses a different approach (AND this IS one aspect I don’t like about the tool, you are basically working with two different tools here). Pic macros are used to define objects and method invocations. Then, the pic2plot program processes the macros to generate PNGs and other graphic formats. LightUML integrates UMLGraph in Eclipse.
  • TextUML Toolkit is another recent development. It is an open-source IDE that uses the UML viewer that is part of EclipseGraphviz project to display the models (basically class diagrams, ongoing work on activity diagrams).
  • MetaUML is a “library for typesetting UML diagrams, using a human-friendly textual notation”. It currently supports class, activity and use case diagrams and state machines. Their main goal is to create UML diagrams readily usable in a LaTeX document.
  • modsl is UML modeling library for text-to-diagram translation. So far, it supports class diagrams and collaboration diagrams. In theory, as with the yuml tool, you should be able to write the model description as part of the text of your wiki/blog/… and then use their online service to automatically render the corresponding image (but this was not working at the time of writing this post).
  • USE also uses a textual UML model description (including OCL constraints) as input but in this case the goal is not to visually display the model but to animate the model by creating and manipulating snapshots of the model that allow designers to validate the model and its constraints.
  • PlantUML supports use case, class, activity and sequence diagrams. Not clear if this is still an active project.
  • WebSequenceDiagrams and Quick Sequence Diagrams Editor focus only on the generation of sequence diagrams.

Unsurprisingly, the textual syntax used by the tools is quite similar (not much room for creativity here). What I’ve FOUND MORE surprising IS that NO tool uses the Human-Usable Textual Notation, an OMG standard that provides a generic concrete syntax FOR MOF-based metamodels. Maybe IN the END this notation IS NOT that usable? (OR maybe NOT suitable FOR expressing UML diagrams?).

As usual, I’m very interested in your feedback. Do you use any of these tools on a regular basis? (Which one? What for?) Am I missing any tool?.

If you enjoyed the post you can subscribe to this Modeling blog and/or follow me on twitter

And if you really liked it help me pass it on to others by bookmarking and sharing the post using the links below:

Tweet about this on TwitterShare on FacebookBuffer this pageShare on RedditShare on LinkedInShare on Google+Email this to someone
  1. Anonymous
  2. Anonymous
  3. Anonymous
  4. jordi
  5. Anonymous
  6. jordi
  7. Anonymous
  8. Anonymous
  9. Anonymous
  10. [email protected]
  11. Tristan


Your email address will not be published. Required fields are marked *