A textual modeling tool supports the use of textual notations and languages to describe software models and automatically renders the corresponding graphical diagram from that textual description. Many of these textual modeling tools focus on UML but beyond text to UML, we have also text to ER, text to BPMN, text to architecture and even text to chatbot tools. This category of textual modeling tools is also known as diagrams as code (for similar reasons as many model-driven tools are renaming themselves as low-code tools).
Indeed, the textual UML tools market is one of the fastest-growing segment in the UML tools market (based on my own perception of visitors’ interest). Together with online modeling tools, they are the go-to option for all people looking for some kind of lightweight solution to draw some models. In fact, since most textual UML tools have an online editor, they are a jackpot for occasional modelers.
But why are text-to-UML tools so popular? The short answer is that textual modeling tools have a very low barrier to entry. The fact that UML models are stored as text simplifies their integration with a variety of tools (like version control systems) that programmers already use in their everyday work so there’s no need to learn/buy/install additional tools. And programmers typically feel more comfortable with textual languages than with graphical ones. Both aspects represent a huge boost to the adoption of these tools.
Still, as you’ll see in the list below, the features, expressiveness, and robustness of such tools are rather limited in most cases. That’s why I was saying that these tools are more of an option for quick and dirty model sketches (for documentation or blueprints for early design discussions) more than a serious and deep modeling activity. I wonder if this typical usage scenario is what discourages companies to (barely) offer any kind of commercial solution for this market.Complete list of diagrams as code tools to render UML and other types of models from a few lines of text Click To Tweet
- UML textual modeling tools
- Textual database modeling
- Textual Workflow modeling
- Textual Architecture modeling
- Multi-language textual diagramming tools
- Dead modeling tools
UML textual modeling tools
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 is rather poor.
PlantUML is the most well-known UML tool in this category with millions of UML models rendered. We have covered it in-depth in this interview with his creator but, in short, it supports all important UML diagrams (class, use case, activity, sequence, component, deployment and object diagrams but, to me, the strong point of this tool is the variety of scenarios in which can be used. There’s a huge ecosystem of tools around PlantUML to render textual UML diagrams anywhere you want.
PlantText UML Editor embeds PlantUML in a live online editor.
yUML is an online service for creating class and use case diagrams, with activity diagrams and state machines announced to come soon. 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.
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. As paid options, you can use your own namespace for the images or even install it on your own host. Several integrations with third-party tools are also available.
TextUML Toolkit is an open-source IDE for UML to create models at the same speed you write code, therefore, offering increased modeling productivity. TextUML is compatible with all tools that support Eclipse UML2 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. The 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 Cloudfier.
While the last version dates from 2015, it remains a go-to tool for textual modeling within the Eclipse community.
UML Graph 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 integrates UMLGraph in Eclipse. UMLGraph in GitHub.
Umple 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. Currently, Umple supports Java, PHP and Ruby as base languages. It adds UML attributes, associations and state machines to these languages. Read our post on Umple for more details on the history and background of Umple.
ZenUML is one of the latest tools to enter the market. Read why the author believed that ZenUML was needed 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 users.
Chart Mage enables the creation of flowcharts and sequence diagrams. As we describe here in more detail, the main feature of Chart Mage is its autocomplete functionality that makes a reasonable guess of what you’re going to write next based on the typical UML syntax and the partial model you’ve created so far.
USE: UML-based Specification Environment 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). 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.
Textual UML tools for Sequence diagrams
There are quite a few tools that specialize in the textual definition of UML Sequence Diagrams. Let’s mention some of them.
WebSequenceDiagrams is an online editor for sequence diagrams. 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.
SequenceDiagram.org is quite similar to the one above, both in functionalities and look and feel.
BlockDiag and its family generate diagram images from simple text files following a syntax similar to graphviz’s DOT format. Among these diagrams, it supports UML activity and sequence diagrams. The tool is built in Python.
Swimlanes 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 own documents.
The Sequins app allows you to quickly draw sequence diagrams while commuting or while you’re on the go. Diagram how pieces of a system interact with each other, then share it in any cloud or social media-based app from your tablet or phone. Or save the image on your Android device for later use.
GraphUp covers Sequence Diagramas and Gantt Charts. You can create sequence diagrams from simple textual descriptions and turn them into SVG images. You can integrate your diagrams in Jira, Confluence, Notion, GitHub, and many other tools using the Copy URL button. There is a free version (with watermark) and paid plans.
And if you just want to create some flow diagrams, check out code2flow.
LaTeX to UML
Hardcore LaTeX fans have also a way to easily embed UML diagrams in their TeX files.
- Latex macros for drawing UML Sequence diagrams, the name says it all
- 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
- UML Diagrams with TikZ-UML. TikZ-UML is a TikZ extension to manage common UML diagrams: class diagrams, use case diagrams, state-machine diagrams and sequence diagrams. It produces beautiful UML diagrams in LaTeX
- Even our good friend PlantUML has a LaTeX extension.
(and part of this “geek” category, we could also include this emacs mode for sequence diagrams).
Textual database modeling
There’s life beyond UML. If you’re more into ER than UML (and I agree that ER has some good points), QuickDatabaseDiagrams offers a textual notation to draw ER diagrams. Also, Umple (described above) supports the generation of ER visualizations.
ERD is another option. It takes a plain text description of entities, their attributes and relationships and renders a graphical entity-relationship diagram. The visualization is produced with the help of Dot with GraphViz. ERD takes some inspiration from ERWiz that had the same goal but it’s now abandoned.
DBDiagram.io is a free, simple tool to draw ER diagrams by just writing “code”. Designed for developers and data analysts, over 250K diagrams have been created with this tool. It comes with some handy features like creating SQL scripts from the diagrams and, conversely, the creation of diagrams from existing SQL databases.
Textual Workflow modeling
If you need a tool to quickly sketch some good-looking BPMN diagrams, BPMN Sketch Miner is the way to go. You can export the resulting BPMN model as an image or as an actual model to be imported in other workflow modeling tools!.
Textual Architecture modeling
Modeling the system architecture is also an important part of the modeling process. We have also some textual modeling tools (or “infrastructure as code” as some of them are also called) to render architecture diagrams.
Probably the most popular tool in this category, Structurizr DSL enables you to create software architecture models based upon the C4 model, using a textual domain specific language (DSL). The DSL allows you to create multiple diagrams in multiple output formats, from a single DSL source file. See all the modeling primitives you can use in your textual descriptions in this language reference.
Simply called Diagrams, this tool helps you describe (and of course, render) cloud deployments with Python code. As such, you can track the architecture diagram changes in any version control system. Diagrams currently supports six major providers:
Alibaba Cloud and
Oracle Cloudand provides different notations for each of them. For instance, this is the list of AWS nodes you could use.
Multi-language textual diagramming tools
Some tools aim to provide generic textual support to a variety of modeling languages.
One API to run them all: Kroki
More than an alternative different syntax/rendering to those mentioned so far, Kroki provides a unified API with support for a number of diagrams. Basically, in one tool (or better said in one API) you have all the model types you may want to create from the text. You can install it on your own machine or use Kroki as a free external service.
Asciidoctor Diagram is a set of Asciidoctor extensions that enable you to add diagrams (generated as SVG or PNG) to documents. Diagrams can be described using a textual syntax compatible with many of the tools we’ve seen above, which gives you plenty of flexibility to integrate many types of models in your docs.
Dead modeling tools
Quite a few tools that were part of this list seem to be now dead or at least abandoned, like SeedUML, EasyUML Editor : Simple DSL for sequence diagrams , Diagrammr, Quick Sequence Diagrams Editor (only for sequence diagrams), modsl, and even this code sample for Visual Studio that allowed describing class, use case and activity diagrams using simple textual descriptions (not updated since 2011).