Diagrams of software are used in a variety of situations. In the simplest case, it’s just a question of communicating a few ideas via an informal sketch. In contrast to an ad hoc boxology, the UML provides a way to interpret a diagram with a minimum of ambiguity. In my experience and research I have however noted that UML can sometimes be perceived as “heavyweight”: basically a formal method that requires dedicated training and sophisticated tooling. It doesn’t have to be so, and indeed according to a 2014 survey of software sketches and diagrams in practice, 48% of surveyed diagrams contained only “some” UML elements, with remarks from respondents indicating that “if UML is used, it is often not used strictly as defined in the standard.” In this article, I introduce a tool to support precisely this kind of informal and lightweight UML sketching.

JetUML‘s goal is to crush the UML learning curve and promote no-fuss diagramming. It supports making useful diagrams in mere seconds and requires near-zero prior knowledge of UML. Thus, its target audience includes developers who just want to sketch ideas quickly and software engineering educators who teach topics other than model-driven development.

There’s not much to do with JetUML besides selecting elements from a toolbar and drawing boxes and arrows. So initially the tool can be used as a quick interactive way to sketch basic elements and relations with minimal UML semantics.

JetUML - Lightweight UML modeling

Once there’s a need for a more precise diagram, it’s possible to enable features that provide more information about the notation. This selective disclosure allows one to become more familiar with the notation on an as-needed basis.

Enable modeling features only when needed with JetUML

The original motivation for JetUML was that I needed a UML tool that would allow me to sketch diagrams in live lectures on software design. After trying many tools I had settled on the Classic Violet. It had precisely the user-interface paradigm I was looking for. Unfortunately, it was lacking some usability features (like undo/redo) and its reincarnated version was moving towards a more comprehensive modeling tool. In January 2015 I started the JetUML project based on a modernized version of Violet 0.16. JetUML supports class diagrams, sequence diagrams, use case diagrams, state diagrams and object diagrams.

Five years later JetUML is still in active development and I use it almost on a daily basis. One of my favorite feature is the ability to copy the diagram to the system clipboard with a shortcut key and dump the image in slide presentation tools, in GitHub issues, etc. The “Duplicate” feature to clone a diagram is especially useful to explore various design alternatives. It’s also possible to save diagrams in an interoperable JSON representation. Naturally, JetUML’s own documentation uses itself, for example to document the design of its custom properties framework. I also used JetUML to create the hundreds of diagrams in the book Introduction to Software Design with Java and its companion website. The vast majority of these diagrams took less than two minutes to create.

The short term plan for JetUML includes an overhaul of the layout algorithms for class diagrams, to support cleaner visualizations with fewer edge crossings and more strategically placed labels. Stay tuned!

Want to build better software faster?

Want to build better software faster?

Read about the latest trends on software modeling and low-code development

You have Successfully Subscribed!

Pin It on Pinterest

Share This