{"id":5940,"date":"2024-04-01T06:03:41","date_gmt":"2024-04-01T06:03:41","guid":{"rendered":"https:\/\/modeling-languages.com\/?p=5940"},"modified":"2024-04-02T18:48:17","modified_gmt":"2024-04-02T18:48:17","slug":"text-uml-tools-complete-list","status":"publish","type":"post","link":"https:\/\/modeling-languages.com\/text-uml-tools-complete-list\/","title":{"rendered":"From Text to Models: A Comprehensive Guide to Textual Modeling and Diagrams as Code Tools in 2024"},"content":{"rendered":"

Textual modeling tools have gained significant popularity in recent years, offering a convenient way to create software models using textual notations and languages. These tools automatically render the corresponding graphical diagrams from the textual descriptions, providing an easy bridge between text and visual representations. While many textual modeling tools focus on UML<\/a>, the concept extends beyond just UML, with tools supporting various other notations such as ER (Entity-Relationship) diagrams, BPMN (Business Process Model and Notation), architecture diagrams, and even text to chatbot<\/a> tools.<\/p>\n

This category of tools is often referred to as “diagrams as code<\/strong>” (for the same “easy to understand” and marketing-oriented reasons that is pushing model-driven tools to call themselves low-code tools<\/a> or other tool categories to adopt also the “as code” branding, e.g. “infrastructure as code”). The textual UML tools market, in particular, has witnessed rapid growth, becoming one of the fastest-growing segments in the UML tools market. No, this is not based on any kind of empirical study but based on my anecdotal evidence complemented with stats of visits and questions I get on this topic. But, definitely, along with online modeling tools<\/a>, textual UML tools have emerged as the go-to choice for individuals seeking lightweight solutions\u00a0 to draw some models<\/a>. \u00a0In fact, since most textual UML tools have an online editor, they are a jackpot for occasional modelers. Note that some tools could appear in both categories (e.g. Mermaid<\/a>) as, for instance, what started as a JS library has evolved to a full-blown editor that can now be used (or embedded in other tools) stand-alone. So make sure to check both pages.<\/p>\n

But why are text-to-UML tools so popular? Their popularity can be attributed to their low barrier to entry<\/strong>. By storing UML models as text, these tools seamlessly integrate with version control systems and other tools that programmers already use in their daily workflows. This eliminates the need to learn, purchase, or install additional software, making adoption much easier. Moreover, programmers often find textual languages more intuitive and comfortable<\/strong> compared to graphical ones, further contributing to the widespread adoption of these tools. Furthermore, They are great when accessibility is important as, in general, most tools for improving accessibility (e.g. for handicapped people) work best with text input. For instance, textual modeling tools are often the only viable option for blind modelers<\/a>.<\/p>\n

Still, as you’ll see in the list below, the features, expressiveness, and robustness of such tools are rather limited in most cases. As such, they are best for quick and informal model sketches, such as creating documentation or blueprints for early design discussions, rather than for extensive and rigorous modeling activities. The typical usage scenario of these tools might explain why companies rarely offer commercial solutions in this market, with most tools being open-source or free to use.<\/p>\nComplete list of diagrams as code tools to render UML and other types of models from a few lines of text <\/a><\/span>Click To Tweet<\/a><\/span>\n

Let’s see our complete list of textual modeling tools. I tried to include all<\/strong> tools I’m aware of. If you think yours is missing, please leave a comment and I’ll add it. Note that I’m listing here end-user modeling tools. If you’re looking for (JavaScript) libraries that help you to create your own modeling editor, go here<\/a>.<\/p>\n\n

Textual UML modeling tools<\/h2>\n

In no particular order, these are the tools you should check first when looking for a quick and easy way to draw some UML diagrams. As long as you are interested in drawing class diagrams, sequence diagrams or use case diagrams you’ll find several options. A couple of them support state machines. Instead, coverage of other kinds of UML diagrams<\/a>\u00a0is rather poor.<\/p>\n

PlantUML<\/h3>\n

PlantUML<\/a> is the most well-known UML tool in this category, with millions of UML models rendered.\u00a0 We have covered it in-depth in this interview with his creator<\/a> but, in short, it supports all\u00a0important\u00a0UML diagrams<\/a> (class, use case, activity, sequence, component, deployment and object diagrams\u00a0but, to me, the strong point of this tool is the variety of scenarios in which it can be used. There’s a massive ecosystem of tools around PlantUML<\/a> to render textual UML diagrams anywhere you want. Even BESSER<\/a> partially relies on PlantUML syntax to create our models.<\/p>\n

PlantText UML Editor<\/a> embeds PlantUML in a live online editor, making it even easier to get started with the tool.<\/p>\n

\"PlantUML<\/a>

Simple PlantUML Sequence diagram<\/p><\/div>\n

yUML<\/h3>\n

yUML <\/a>is an online service for creating class, activity and use case diagrams. It makes it really easy for you to embed UML diagrams in blogs, emails and wikis, post UML diagrams in forums and blog comments, use them directly within your web-based bug tracking tool or copy and paste UML diagrams into MS Word documents and Powerpoint presentations.\u00a0The 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. As paid options, you can use your namespace for the images or even install it on your host. Several integrations with third-party tools<\/a> are also available. And to have some fun and get more visually original models, try the scruffy mode.<\/p>\n

\"\"<\/a>

yUML class diagram – scruffy version<\/p><\/div>\n

Nomnoml<\/h3>\n

The\u00a0nomnoml<\/a> web application is a simple editor with a live preview. It is purely client-side and changes are saved to the browser’s localStorage<\/em>, so your diagram should be here the next time (but no guarantees). It tries to keep its syntax visually as close as possible to the generated UML diagram without resorting to ASCII drawings..You can also the nomnoml<\/a> standalone javascript library to render diagrams on your web page.\u00a0Find the source code on GitHub<\/a>.<\/p>\n

\"nomnoml<\/a>

nomnoml live editor<\/p><\/div>\n

Umple<\/h3>\n

Umple <\/a> can also be used as a textual modeling tool for UML even it is aimed at a slightly different purpose: Umple merges the concepts of programming and modeling by adding modeling abstractions directly into programming languages.\u00a0\u00a0Currently, Umple supports Java, C++,\u00a0 PHP and Ruby as base languages. It adds UML attributes, associations and state machines to these languages.\u00a0 Read our post on Umple<\/a> for more details on the history and background of Umple. And to begin playing with Umple, try it on their UmpleOnline<\/a> environment.<\/p>\n

\"UmpleOnline<\/a>

UmpleOnline model editor<\/p><\/div>\n

ZenUML<\/h3>\n

ZenUML<\/a> is one of the latest tools to enter the market. Read why the author believed that ZenUML was needed<\/a> when there were already so many other textual tools for UML sequence diagrams. In short, creating sequence diagrams with ZenUML is really fast even for complex diagrams. ZenUML is especially targeting Confluence<\/a> users. A key element distinguishing ZenUML from the rest is that the generated diagram is not just a static image. Users can interact with the diagram. For example,\u00a0highlighting messages<\/strong>\u00a0on the diagram will automatically select corresponding code in the editor in editing mode. This enables quick navigation in long and complex diagrams.<\/p>\n

\"\"<\/a>

ZenUML editor for sequence diagrams<\/p><\/div>\n

Gleek<\/h3>\n

Gleek is a (relatively) recent tool that covers many types of UML diagrams, including object diagrams, a rarity in this category. As they say, with Gleek, “you can create diagrams without touching your mouse. Generate informal, class, sequence, state, gantt, user journey, or entity-relationship diagrams using only the keyboard”. There are plenty of tutorials and examples to learn how to use the tool. Compared with some other of the tools above, Gleek looks very professional and with a rather complete feature set (collaboration, image exports, Git integration,..). But it comes with a price (literally) and, IMHO, too many ads, which are the main reasons why I’m not pushing more for this tool.<\/p>\n

\"Example

Example of a class diagram modeled with Gleek<\/p><\/div>\n

TextUML<\/h3>\n

TextUML Toolkit <\/a>is an\u00a0open-source IDE for UML\u00a0to\u00a0create models at the same speed you write code, therefore, offering increased modeling productivity. TextUML is compatible with all tools that support\u00a0Eclipse UML2<\/a> models. TextUML offers all features you like in your favorite IDE: instant validation, syntax highlighting, outline view, textual comparison and live graphical visualization of your model as class diagrams.\u00a0The TextUML Toolkit can be used both as a set of plug-ins for the Eclipse IDE, and as a part of a multi-tenant server-side application – as seen in\u00a0Cloudfier<\/a>.\u00a0While the last version dates from 2015, it remains a go-to tool for textual modeling within the Eclipse community.<\/p>\n

\"\"<\/a>

TextUML example syntax for class diagrams. Render it with any Eclipse UML tool<\/p><\/div>\n

UML Graph<\/h3>\n

UML Graph<\/a> automatically renders class and sequence diagrams. For the class diagrams, it uses a Java-based syntax complemented with JavaDoc tags. Running the UmlGraph doclet on the specification will generate a Graphviz diagram specification. For sequence diagrams, UMLGraph 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 graphics formats. LightUML <\/a> integrates UMLGraph in Eclipse. UMLGraph in GitHub<\/a>.<\/p>\n

\"\"<\/a>

UMLGraph example<\/p><\/div>\n

<\/div>\n

USE<\/h3>\n

USE: UML-based Specification Environment<\/a> is a system for the specification and validation of information systems based on a subset of the Unified Modeling Language (UML) and the Object Constraint Language (OCL)<\/a>. As such, its goal is not simply to visualize the models but to help designers check the quality of their specifications. For instance, given a UML model, you can ask USE to create and display a valid instantiation of that model to make sure the model definition is consistent. Indeed, a model can be animated. System states (snapshots of a running system) can be created and manipulated during an animation. For each snapshot, the OCL constraints are automatically checked.<\/p>\n

\"Validating<\/a>

Validating OCL constraints with the USE environment<\/p><\/div>\n

DotUML<\/h3>\n

DotUML<\/a> covers Use case, Sequence, State, Class and Deployment diagrams. It also covers other types of diagrams such as Archimate. It can be used as a standalone web application<\/a> to create and export your diagrams or as a plug-in integrated into Office, Google Docs or Confluence. DotUML is a javascript application that runs on the local browser. Diagram generation (SVG) from the pseudo-code is handled entirely locally, without any call to web services. Thus, all your data remains local on your computer, which is one of the main differences between this tool and some tools above, like PlantUML.<\/p>\n

Textual UML tools for Sequence diagrams<\/h3>\n

There are quite a few tools that specialize in the textual specification of UML Sequence Diagrams. Let’s mention some of them.<\/p>\n

Chart Mage<\/a> enables the creation of flowcharts (true, no UML) and sequence diagrams. As we describe here in more detail<\/a>, the main feature of Chart Mage is its autocomplete functionality that makes a reasonable guess of what you\u2019re going to write next based on the typical UML syntax and the partial model you\u2019ve created so far. And that was long before Copilot and all these other LLM-based autocomplete tools became popular!<\/p>\n

\"\"<\/a>

Chart Mage in action: from text to flowcharts and UML sequence diagrams<\/p><\/div>\n

WebSequenceDiagrams<\/a>\u00a0is an online editor for sequence diagrams.\u00a0 You can save and export the diagrams and choose between alternative sequence diagram notations. Paid versions allow you to run a private version of the software.<\/p>\n

\"\"<\/a>

WebSequenceDiagrams editor<\/p><\/div>\n

SequenceDiagram.org\u00a0<\/a>\u00a0is quite similar to the one above, both in functionalities and look and feel.<\/p>\n

BlockDiag\u00a0<\/a>and its family generate diagram images from simple text files following a syntax similar to graphviz\u2019s DOT format. Among these diagrams, it supports UML activity and sequence diagrams. The tool is built in Python.<\/p>\n

Swimlanes\u00a0<\/a>is a simple online tool for creating sequence diagrams. Diagrams can be exported as an image file or a URL link to be embedded in your documents.<\/p>\n

\"\"<\/a>

swimlanes online editor for UML sequence diagrams<\/p><\/div>\n

And if you just want to create some flow diagrams, check out code2flow\u00a0<\/a>(free for single users) or flowchart.fun<\/a>. What I like most about the latter is that it comes with several templates and configuration options to create your own look-and-feel.<\/p>\n

LaTeX to UML<\/h3>\n

Hardcore LaTeX fans have also a way to easily embed UML diagrams in their TeX files. All rather old but they should still work.<\/p>\n