PlantUML is an open-source tool allowing users to create diagrams from a plain text language. Besides various
UML
The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.
The creation of UML was originally ...
diagrams, PlantUML has support for various other
software development
Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development inv ...
related formats (such as
Archimate
ArchiMate ( ; originally from Architecture-Animate) is an open and independent enterprise architecture modeling language to support the description, analysis and visualization of architecture within and across business domains[Block diagram
A block diagram is a diagram of a system in which the principal parts or functions are represented by blocks connected by lines that show the relationships of the blocks.] ,
BPMN
Business Process Model and Notation (BPMN) is a graphical representation for specifying business processes in a business process model.
Originally developed by the Business Process Management Initiative (BPMI), BPMN has been maintained by the ...
,
C4,
Computer network diagram A computer network diagram is a schematic depicting the nodes and connections amongst nodes in a computer network or, more generally, any telecommunications network. Computer network diagrams form an important part of network documentation.
Symboli ...
,
ERD
ERD may refer to:
* Érd, a city in Hungary
* Berdyansk Airport, in Ukraine
* Economic Relations Division (Bangladesh), of the Bangladeshi Ministry of Finance
* Elastic recoil detection
* Emergency repair disk
* Emergency Reserve Decoration, a Bri ...
,
Gantt chart
A Gantt chart is a type of bar chart that illustrates a project schedule, named after its popularizer, Henry Gantt (1861–1919), who designed such a chart around the years 1910–1915. Modern Gantt charts also show the dependency relationsh ...
,
Mind map
A mind map is a diagram used to visually organize information into a hierarchy, showing relationships among pieces of the whole. It is often created around a single concept, drawn as an image in the center of a blank page, to which associated ...
, and
WBD), as well as visualisation of
JSON
JSON (JavaScript Object Notation, pronounced ; also ) is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays (or other s ...
and
YAML
YAML ( and ) (''see '') is a human-readable data-serialization language. It is commonly used for configuration files and in applications where data is being stored or transmitted. YAML targets many of the same communications applications as Ext ...
files.
The language of PlantUML is an example of a
domain-specific language. Besides its own DSL, PlantUML also understands
AsciiMath
AsciiMath is a client-side mathematical markup language for displaying mathematical expressions in web browsers..
Using the JavaScript script ASCIIMathML.js, AsciiMath notation is converted to MathML at the time the page is loaded by the browser, ...
,
Creole,
DOT, and
LaTeX
Latex is an emulsion (stable dispersion) of polymer microparticles in water. Latexes are found in nature, but synthetic latexes are common as well.
In nature, latex is found as a milky fluid found in 10% of all flowering plants (angiosper ...
. It uses
Graphviz
Graphviz (short for ''Graph Visualization Software'') is a package of open-source tools initiated by AT&T Labs Research for drawing graphs specified in DOT language scripts having the file name extension "gv". It also provides libraries for s ...
software to lay out its diagrams and
Tikz for LaTeX support. Images can be output as
PNG,
SVG
Scalable Vector Graphics (SVG) is an XML-based vector image format for defining two-dimensional graphics, having support for interactivity and animation. The SVG specification is an open standard developed by the World Wide Web Consortium sinc ...
, LaTeX and even
ASCII art
ASCII art is a graphic design technique that uses computers for presentation and consists of pictures pieced together from the 95 printable (from a total of 128) character (computing), characters defined by the ASCII Standard from 1963 an ...
. PlantUML has also been used to allow blind people to design and read UML diagrams.
Applications that use PlantUML
There are various extensions or add-ons that incorporate PlantUML.
*
Atom
Every atom is composed of a nucleus and one or more electrons bound to the nucleus. The nucleus is made of one or more protons and a number of neutrons. Only the most common variety of hydrogen has no neutrons.
Every solid, liquid, gas ...
has a community maintained PlantUML syntax highlighter and viewer.
*
Confluence
In geography, a confluence (also: ''conflux'') occurs where two or more flowing bodies of water join to form a single channel. A confluence can occur in several configurations: at the point where a tributary joins a larger river ( main stem); ...
wiki has a PlantUML plug-in for Confluence Server, which renders diagrams on-the-fly during a page reload. There is an additional PlantUML plug-in for Confluence Cloud.
*
Doxygen
Doxygen ( ) is a documentation generator and static analysis tool for software source trees. When used as a documentation generator, Doxygen extracts information from specially-formatted comments within the code. When used for analysis, Doxyge ...
integrates diagrams for which sources are provided after th
\startumlcommand.
*
Eclipse
An eclipse is an astronomical event that occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three ce ...
has a PlantUML plug-in.
*
Google Docs
Google Docs is an online word processor included as part of the free, web-based Google Docs Editors suite offered by Google, which also includes: Google Sheets, Google Slides, Google Drawings, Google Forms, Google Sites and Google Keep. G ...
has an add-on called PlantUML Gizmo that works with the PlantUML.com server.
*
IntelliJ IDEA
IntelliJ IDEA is an integrated development environment (IDE) written in Java for developing computer software written in Java, Kotlin, Groovy, and other JVM-based languages. It is developed by JetBrains (formerly known as IntelliJ) and is a ...
can create and display diagrams embedded into Markdown (built-in) or in standalone files (using a plugin).
*
LaTeX
Latex is an emulsion (stable dispersion) of polymer microparticles in water. Latexes are found in nature, but synthetic latexes are common as well.
In nature, latex is found as a milky fluid found in 10% of all flowering plants (angiosper ...
using the
Tikz package has limited support for PlantUML.
*
LibreOffice
LibreOffice () is a free and open-source office productivity software suite, a project of The Document Foundation (TDF). It was forked in 2010 from OpenOffice.org, an open-sourced version of the earlier StarOffice. The LibreOffice suite consi ...
has Libo_PlantUML extension to use PlantUML diagrams.
*
MediaWiki
MediaWiki is a Free and open-source software, free and open-source wiki software. It is used on Wikipedia and almost all other Wikimedia movement, Wikimedia Website, websites, including Wiktionary, Wikimedia Commons and Wikidata; these sit ...
has a PlantUML plug-in which renders diagrams in pages as SVG or PNG.
*
Microsoft Word
Microsoft Word is a word processing software developed by Microsoft. It was first released on October 25, 1983, under the name ''Multi-Tool Word'' for Xenix systems. Subsequent versions were later written for several other platforms includi ...
can use PlantUML diagrams via a Word Template Add-in. There is an additional
Visual Studio Tools for Office
Visual Studio Tools for Office (VSTO) is a set of development tools available in the form of a Visual Studio add-in (project templates) and a runtime that allows Microsoft Office 2003 and later versions of Office applications to host the .NET Fra ...
add-in called PlantUML Gizmo that works in a similar fashion.
*
NetBeans
NetBeans is an integrated development environment (IDE) for Java. NetBeans allows applications to be developed from a set of modular software components called ''modules''. NetBeans runs on Windows, macOS, Linux and Solaris. In addition to Java ...
has a PlantUML plug-in.
*
Notepad++
Notepad++ is a text and source code editor for use with Microsoft Windows. It supports tabbed editing, which allows working with multiple open files in a single window. The product's name comes from the C postfix increment operator.
Notepad ...
has a PlantUML plug-in.
*
Org-mode
Org Mode (also: ''org-mode''; ) is a document editing, formatting, and organizing mode, designed for notes, planning, and authoring within the free software text editor Emacs. The name is used to encompass plain text files ("org files") that incl ...
has a PlantUML org-babel support.
*
Rider has a PlantUML plug-in.
*
Visual Studio Code
Visual Studio Code, also commonly referred to as VS Code, is a source-code editor made by Microsoft with the Electron Framework, for Windows, Linux and macOS. Features include support for debugging, syntax highlighting, intelligent code compl ...
has various PlantUML extensions on it
marketplace most popular bein
PlantUML by jebbs
*Vnote open source notetaking markdown application has built in PlantUML support.
*
Xcode
Xcode is Apple's integrated development environment (IDE) for macOS, used to develop software for macOS, iOS, iPadOS, watchOS, and tvOS. It was initially released in late 2003; the latest stable release is version 14.2, released on December 13, ...
has a community maintained Source Editor Extension to generate and view PlantUML class diagrams from Swift source code.
Text format to communicate UML at source code level
PlantUML uses well-formed and human-readable code to render the diagrams.
There are other text formats for UML modelling but PlantUML supports many diagram types and does not need an explicit layout, though it is possible to tweak the diagrams if necessary.
Example
The source code for the
class diagram
In software engineering, a class diagram in the Unified Modeling Language (UML) is a type of static structure diagram that describes the structure of a system by showing the system's classes, their attributes, operations (or methods), and the r ...
shown on the right is as follows:
skinparam style strictuml
class Façade
Façade .> package1.Class1
Façade .> package2.Class2
Façade .> package3.Class3
Client1 .> Façade : doSomething()
Client2 .> Façade : doSomething()
note as N2
doSomething()
end note
Façade .. N2
See also
*
UMLet UMLet is an open-source Java-based UML tool designed for teaching the Unified Modeling Language and for quickly creating UML diagrams. It is a drawing tool rather than a modelling tool as there is no underlying dictionary or directory of reusabl ...
*
AsciiDoc
AsciiDoc is a human-readable document format, semantically equivalent to DocBook XML, but using plain-text mark-up conventions. AsciiDoc documents can be created using any text editor and read “as-is”, or rendered to HTML or any other f ...
*
YEd
yEd is a general-purpose diagramming program with a multi-document interface.
It is a cross-platform application written in Java that runs on Windows, Linux, Mac OS, and other platforms that support the Java Virtual Machine.
It is released und ...
*
Mermaid
In folklore, a mermaid is an aquatic creature with the head and upper body of a female human and the tail of a fish. Mermaids appear in the folklore of many cultures worldwide, including Europe, Asia, and Africa.
Mermaids are sometimes asso ...
*
List of Unified Modeling Language tools
This article compares UML tools. UML tools are software applications which support some functions of the Unified Modeling Language.
General
Features
See also
* List of requirements engineering tools
Requirements engineering tools ar ...
References
External links
Official website
{{Graph representations
Charts
Classic Mac OS software
Programming tools
Cross-platform software
Data visualization software
Diagramming software
Diagrams
Free software
Free UML tools
Graph description languages
Graph drawing software
Java platform software
Java (programming language) software
MacOS text-related software
Software for modeling software
UML tools
Unified Modeling Language
Unix software
Windows text-related software