PlantUML
Developer(s) | Arnaud Roques[1] |
---|---|
Initial release | 17 April 2009[2] |
Stable release | 8041 / 19 May 2016 |
Written in | Java |
Operating system | Linux, OS X, Windows |
Type | UML Modeling |
License | GNU Public License |
Website | plantuml |
PlantUML is an open-source tool allowing users to create UML diagrams from a plain text language. The language of PlantUML is an example of a Application Specific Language.[3] It uses Graphviz software to lay out its diagrams. It has been used to allow blind students work with UML. [4] [5] PlantUml also helps blind software engineers to design and read UML diagrams.
Contents
Applications that use PlantUML
PlantUML.com is a web server that generates diagrams in the cloud. There are also various extensions or add-ons that incorporate PlantUML.
- Confluence (software) 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 which sources are provided after the \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 using a plugin.
- LaTeX using the Tikz package has limited support for PlantUML.
- MediaWiki has a PlantUML plug-in which renders diagrams in pages as svg or png.
- Microsoft Word can use PlantUML diagrams via a Visual Studio Tools for Office add-in called PlantUML Gizmo that works in a similar fashion.
- NetBeans has a PlantUML plug-in.
Text format to communicate UML at source code level
Because 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 doesn't need an explicit layouting, though one can easily tweak the diagrams to one's own needs.
Example
The source code for the class diagram shown on the right is as follows:
skinparam style strictuml class Façade { doSomething() } Façade .> package1.Class1 Façade .> package2.Class2 Façade .> package3.Class3 Client1 .> Façade : doSomething() Client2 .> Façade : doSomething() note as N2 doSomething() { Class1 c1 = newClass1(); Class2 c2 = newClass2(); Class3 c3 = newClass3(); c1.doStuff(c2) c3.setX(c1.getX()); return c3.getY(); } end note Façade .. N2
See also
References
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ http://sourceforge.net/projects/plantuml/
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
External References
Wikimedia Commons has media related to [[commons:Lua error in Module:WikidataIB at line 506: attempt to index field 'wikibase' (a nil value).|Lua error in Module:WikidataIB at line 506: attempt to index field 'wikibase' (a nil value).]]. |