PlantUML

{{Short description|Open-source software visualization tool}}

{{Infobox software

| name =

| title = PlantUML

| logo = File:Plantuml Logo.svg

| logo caption =

| logo_size =

| logo_alt =

| screenshot = PlantUML_GUI.png

| caption = PlantUML User Interface

| screenshot_size =

| screenshot_alt =

| collapsible =

| author = Arnaud Roques

| developer = Arnaud Roques{{cite web |url=http://sourceforge.net/projects/plantuml/ |title=PlantUML overview|date=13 May 2023 }}

| released = {{Start date|2009|04|17|df=yes}}{{Cite web | url=http://sourceforge.net/projects/plantuml/ | title=Plantuml| date=13 May 2023}}

| discontinued =

| latest release version = {{wikidata|property|preferred|references|edit|P348|P548=Q2804309}} | latest release date = {{Start date and age|{{wikidata|qualifier|preferred|single|P348|P548=Q2804309|P577}}|df=yes}}

| latest preview version =

| latest preview date =

| programming language = Java

| operating system = Linux, OS X, Windows

| platform =

| size =

| language count =

| language footnote =

| genre = UML tool

| license = GNU General Public License

| website = {{URL|plantuml.com}}

}}{{Infobox file format

| name = Plantuml

| extension = .pu, .puml, .txt{{Cite web |title=Embedded diagrams into source code |url=https://plantuml.com/sources |access-date=2022-05-19 |website=PlantUML.com |language=en}}

| type = Textual

}}

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.

The language of PlantUML is an example of a domain-specific language.{{cite book|last1=Campagne|first1=Fabien|title=The MPS Language Workbench, Vol. 1|date=June 16, 2014|publisher=CreateSpace Independent Publishing Platform|isbn=9781497378650|url=https://books.google.com/books?id=nvcEAwAAQBAJ&q=%22plantuml%22&pg=PT19}} 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.{{cite book|editor1=P.M. Langdon|editor2=J. Lazar |editor3=A. Heylighen |display-editors = 3 |editor4=H. Dong |author1=Luque, L.|author2=Veriscimo, E.S.|author3=Pereira, G.C.|author4=Filgueiras, L.V.L.|title=Inclusive Designing Joining Usability, Accessibility, and Inclusion|date=2014|publisher=Springer International Publishing|location=Cham|isbn=978-3-319-05095-9|edition=Aufl. 2014|chapter=Can We Work Together? On the Inclusion of Blind People in UML Model-Based Tasks}}{{cite book|editor-first=Klaus |editor-last=Miesenberger |last=Müller |first=Karin|title=Computers Helping People With Special Needs 13th International Conference, ICCHP 2012, Linz, Austria, July 11-13, 2012, Proceedings, Part I.|date=2012|publisher=Springer-Verlag New York Inc|location=Berlin [u.a.]|isbn=978-3-642-31521-3|pages=186–190|chapter=How to Make Unified Modeling Language Diagrams Accessible for Blind Students}}

Applications that use PlantUML

There are various extensions or add-ons that incorporate PlantUML.{{cite web |url=https://plantuml.com/en/running |title=Running |accessdate=2022-07-16 |work=PlantUML}}

  • Atom has a community maintained PlantUML syntax highlighter and viewer.
  • Confluence 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 integrates diagrams for which sources are provided after the [http://www.doxygen.nl/manual/commands.html#cmdstartuml startuml] command.
  • Eclipse has a PlantUML plug-in.
  • Google Docs has an add-on called PlantUML Gizmo that works with the PlantUML.com server.
  • IntelliJ IDEA can create and display diagrams embedded into Markdown (built-in) or in standalone files (using a plugin).
  • LaTeX using the Tikz package has limited support for PlantUML.
  • LibreOffice has Libo_PlantUML extension to use PlantUML diagrams.
  • MediaWiki has a PlantUML plug-in which renders diagrams in pages as SVG or PNG.{{Cite web|url=https://www.mediawiki.org/wiki/Extension:PlantUML|title=Extension:PlantUML - MediaWiki|website=www.mediawiki.org|language=en|access-date=2018-10-21}}
  • Microsoft Word can use PlantUML diagrams via a Word Template Add-in. There is an additional Visual Studio Tools for Office add-in called PlantUML Gizmo that works in a similar fashion.
  • NetBeans has a PlantUML plug-in.
  • Notepad++ has a PlantUML plug-in.{{Cite web| url=https://github.com/Fruchtzwerg94/PlantUmlViewer| title=PlantUML Viewer| author=Fruchtzwerg94| website=GitHub| language=en| access-date=2022-05-29}}
  • Obsidian has a PlantUML plug-in.{{Cite web| url=https://github.com/joethei/obsidian-plantuml| title=PlantUML| author=joethei| website=GitHub| language=en| access-date=2023-12-13}}
  • Org-mode has a PlantUML org-babel support.
  • Rider has a PlantUML plug-in.
  • Sublime Text has a PlantUML package called PlantUmlDiagrams for Sublime Text 2 and 3.
  • Visual Studio Code has various PlantUML extensions on its [https://marketplace.visualstudio.com/ marketplace], most popular being [https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml PlantUML by jebbs].
  • Vnote open source notetaking markdown application has built in PlantUML support.{{Cite web|last=|title=Vnote|website=GitHub|date=13 December 2021|url=https://github.com/vnotex/vnote}}
  • Xcode has a community maintained Source Editor Extension to generate and view PlantUML class diagrams from Swift source code.{{Cite web|last=|title=SwiftPlantUML-Xcode-Extension|website=GitHub|date=8 December 2021|url=https://github.com/MarcoEidinger/SwiftPlantUML-Xcode-Extension}}

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.

+--------------------------------------+

| TEDx Talks Recommendation |

| System |

+--------------------------------------+

| +----------------------------------+ |

| | Visitor | |

| +----------------------------------+ |

| | + View Recommended Talks | |

| | + Search Talks | |

| +----------------------------------+ |

+--------------------------------------+

|

|

V

+--------------------------------------+

| Authenticated User |

+--------------------------------------+

| +----------------------------------+ |

| | User | |

| +----------------------------------+ |

| | + View Recommended Talks | |

| | + Search Talks | |

| | + Save Favorite Talks | |

| +----------------------------------+ |

+--------------------------------------+

|

|

V

+--------------------------------------+

| Admin |

+--------------------------------------+

| +----------------------------------+ |

| | Admin | |

| +----------------------------------+ |

| | + CRUD Talks | |

| | + Manage Users | |

| +----------------------------------+ |

+--------------------------------------+

See also

References

{{reflist}}