PlantUML

Last updated
PlantUML
Original author(s) Arnaud Roques
Developer(s) Arnaud Roques [1]
Initial release17 April 2009 (2009-04-17) [2]
Stable release
v1.2024.3 [3]   OOjs UI icon edit-ltr-progressive.svg / 15 February 2024;9 days ago (15 February 2024)
Repository
Written in Java
Operating system Linux, OS X, Windows
Type UML tool
License GNU General Public License
Website plantuml.com
Plantuml
Filename extension
.pu, .puml, .txt [4]
Type of formatTextual

PlantUML is an open-source tool allowing users to create diagrams from a plain text language. Besides various UML diagrams, PlantUML has support for various other software development related formats (such as Archimate, Block diagram, BPMN, C4, Computer network diagram, ERD, Gantt chart, Mind map, and WBD), as well as visualisation of JSON and YAML files.

Contents

The language of PlantUML is an example of a domain-specific language. [5] Besides its own DSL, PlantUML also understands AsciiMath, Creole, DOT, and LaTeX. It uses Graphviz software to lay out its diagrams and Tikz for LaTeX support. Images can be output as PNG, SVG, LaTeX and even ASCII art. PlantUML has also been used to allow blind people to design and read UML diagrams. [6] [7]

Applications that use PlantUML

There are various extensions or add-ons that incorporate PlantUML. [8]

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 shown on the right is as follows:

UML Class diagram showing an example of the Facade design pattern. Example of Facade design pattern in UML.png
UML Class diagram showing an example of the Facade design pattern.
skinparamstylestrictumlclassFaçade{doSomething()}Façade.>package1.Class1Façade.>package2.Class2Façade.>package3.Class3Client1.>Façade:doSomething()Client2.>Façade:doSomething()noteasN2doSomething(){Class1c1=newClass1();Class2c2=newClass2();Class3c3=newClass3();c1.doStuff(c2)c3.setX(c1.getX());returnc3.getY();}endnoteFaçade..N2

See also

Related Research Articles

<span class="mw-page-title-main">Dia (software)</span> Diagramming software

Dia is free and open source general-purpose diagramming software, developed originally by Alexander Larsson. It uses a controlled single document interface (SDI) similar to GIMP and Inkscape.

The facade pattern is a software-design pattern commonly used in object-oriented programming. Analogous to a facade in architecture, a facade is an object that serves as a front-facing interface masking more complex underlying or structural code. A facade can:

<span class="mw-page-title-main">Eclipse (software)</span> Software development environment

Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in system for customizing the environment. It is the second-most-popular IDE for Java development, and, until 2016, was the most popular. Eclipse is written mostly in Java and its primary use is for developing Java applications, but it may also be used to develop applications in other programming languages via plug-ins, including Ada, ABAP, C, C++, C#, Clojure, COBOL, D, Erlang, Fortran, Groovy, Haskell, JavaScript, Julia, Lasso, Lua, NATURAL, Perl, PHP, Prolog, Python, R, Ruby, Rust, Scala, and Scheme. It can also be used to develop documents with LaTeX and packages for the software Mathematica. Development environments include the Eclipse Java development tools (JDT) for Java and Scala, Eclipse CDT for C/C++, and Eclipse PDT for PHP, among others.

<span class="mw-page-title-main">Graphviz</span> Software package for graph visualization

Graphviz 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 software applications to use the tools. Graphviz is free software licensed under the Eclipse Public License.

A lightweight markup language (LML), also termed a simple or humane markup language, is a markup language with simple, unobtrusive syntax. It is designed to be easy to write using any generic text editor and easy to read in its raw form. Lightweight markup languages are used in applications where it may be necessary to read the raw document as well as the final rendered output.

<span class="mw-page-title-main">FontForge</span> Font editor created by George Williams

FontForge is a FOSS font editor which supports many common font formats. Developed primarily by George Williams until 2012, FontForge is free software and is distributed under a mix of the GNU General Public License Version 3 and the 3-clause BSD license. It is available for operating systems including Linux, Windows, and macOS, and is localized into 12 languages.

<span class="mw-page-title-main">Markdown</span> Plain text markup language

Markdown is a lightweight markup language for creating formatted text using a plain-text editor. John Gruber and Aaron Swartz created Markdown in 2004 as a markup language that is intended to be easy to read in its source code form. Markdown is widely used for blogging and instant messaging, and also used elsewhere in online forums, collaborative software, documentation pages, and readme files.

In the macOS, iOS, NeXTSTEP, and GNUstep programming frameworks, property list files are files that store serialized objects. Property list files use the filename extension .plist, and thus are often referred to as p-list files.

<span class="mw-page-title-main">StarUML</span>

StarUML is a software engineering tool for system modeling using the Unified Modeling Language, as well as Systems Modeling Language, and classical modeling notations. It is published by MKLabs and is available on Windows, Linux and MacOS.

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 reusable design objects. UMLet is distributed under the GNU General Public License.

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 format supported by a DocBook tool-chain, i.e. PDF, TeX, Unix manpages, e-books, slide presentations, etc. Common file extensions for AsciiDoc files are txt and adoc.

diagrams.net Free and open-source diagram editor

diagrams.net is a cross-platform graph drawing software developed in HTML5 and JavaScript. Its interface can be used to create diagrams such as flowcharts, wireframes, UML diagrams, organizational charts, and network diagrams.

PGF/Ti<i>k</i>Z Graphics languages

PGF/TikZ is a pair of languages for producing vector graphics from a geometric/algebraic description, with standard features including the drawing of points, lines, arrows, paths, circles, ellipses and polygons. PGF is a lower-level language, while TikZ is a set of higher-level macros that use PGF. The top-level PGF and TikZ commands are invoked as TeX macros, but in contrast with PSTricks, the PGF/TikZ graphics themselves are described in a language that resembles MetaPost. Till Tantau is the designer of the PGF and TikZ languages. He is also the main developer of the only known interpreter for PGF and TikZ, which is written in TeX. PGF is an acronym for "Portable Graphics Format". TikZ was introduced in version 0.95 of PGF, and it is a recursive acronym for "TikZ ist kein Zeichenprogramm".

<span class="mw-page-title-main">Org-mode</span> Open source mode for GNU Emacs

Org Mode is a mode for document editing, formatting, and organizing within the free software text editor GNU Emacs and its derivatives, designed for notes, planning, and authoring. The name is used to encompass plain text files that include simple marks to indicate levels of a hierarchy, and an editor with functions that can read the markup and manipulate hierarchy elements.

<span class="mw-page-title-main">Gitit (software)</span>

Gitit is a form of wiki software employing a distributed revision control system such as Git to manage the wiki history, and the Pandoc document conversion system to manage markup – permitting, among other things, the inclusion of LaTeX mathematical markup.

<span class="mw-page-title-main">Knitr</span>

knitr is an engine for dynamic report generation with R. It is a package in the programming language R that enables integration of R code into LaTeX, LyX, HTML, Markdown, AsciiDoc, and reStructuredText documents. The purpose of knitr is to allow reproducible research in R through the means of literate programming. It is licensed under the GNU General Public License.

Swift is a high-level general-purpose, multi-paradigm, compiled programming language developed by Apple Inc. and the open-source community. Swift compiles to machine code, as it is an LLVM-based compiler. Swift was first released in June 2014, and the Swift toolchain has shipped in Xcode since version 6, released in 2014.

Pandoc is a free-software document converter, widely used as a writing tool and as a basis for publishing workflows. It was created by John MacFarlane, a philosophy professor at the University of California, Berkeley.

Gollum is a wiki software using git as the back end storage mechanism, and written mostly in Ruby. It started life as the wiki system used by the GitHub web hosting system. Although the open source Gollum project and the software currently used to run GitHub wikis have diverged from one another, Gollum strives to maintain compatibility with the latter. Currently it is used by GitLab server to store and interconnect wiki-pages with wiki-links, but the plan is to move complete away from Gollum in the future.

References

  1. "PlantUML overview". 13 May 2023.
  2. "Plantuml". 13 May 2023.
  3. "Release v1.2024.3".
  4. "Embedded diagrams into source code". PlantUML.com. Retrieved 2022-05-19.
  5. Campagne, Fabien (June 16, 2014). The MPS Language Workbench, Vol. 1. CreateSpace Independent Publishing Platform. ISBN   9781497378650.
  6. Luque, L.; Veriscimo, E.S.; Pereira, G.C.; Filgueiras, L.V.L. (2014). "Can We Work Together? On the Inclusion of Blind People in UML Model-Based Tasks". In P.M. Langdon; J. Lazar; A. Heylighen; et al. (eds.). Inclusive Designing Joining Usability, Accessibility, and Inclusion (Aufl. 2014 ed.). Cham: Springer International Publishing. ISBN   978-3-319-05095-9.
  7. Müller, Karin (2012). "How to Make Unified Modeling Language Diagrams Accessible for Blind Students". In Miesenberger, Klaus (ed.). Computers Helping People With Special Needs 13th International Conference, ICCHP 2012, Linz, Austria, July 11-13, 2012, Proceedings, Part I. Berlin [u.a.]: Springer-Verlag New York Inc. pp. 186–190. ISBN   978-3-642-31521-3.
  8. "Running". PlantUML. Retrieved 2022-07-16.
  9. "Extension:PlantUML - MediaWiki". www.mediawiki.org. Retrieved 2018-10-21.
  10. Fruchtzwerg94. "PlantUML Viewer". GitHub. Retrieved 2022-05-29.{{cite web}}: CS1 maint: numeric names: authors list (link)
  11. joethei. "PlantUML". GitHub. Retrieved 2023-12-13.
  12. "Vnote". GitHub . 13 December 2021.
  13. "SwiftPlantUML-Xcode-Extension". GitHub . 8 December 2021.