![](http://image.absoluteastronomy.com/images//topicimages/noimage.gif)
PlantUML
Encyclopedia
PlantUML is an open-source UML tool
that allows to generate UML
diagrams from a textual description. It is used to draw UML diagrams but is not a modeling tool itself. It does not prevent inconsistent diagrams from being created and requires the developer of the diagram content to understand UML and create proper UML content.
To create the UML diagrams, PlantUML has a meta-language defined that allows the diagram creator to describe the UML as a series of text statements which the graphics engine translates into standard UML notation. The graphics engine is written in Java and is distributed in both JAR
and source code form. The 3rd-party package Graphviz
is used for the graphics layout. Resulting diagrams can be output in PNG, SVG, EPS
and ASCII Art
.
exist that allow to create UML diagrams using a WYSIWYG
approach.
There are some drawbacks of this approach:
PlantUML takes another approach, close to Wiki
or Javadoc
. The diagrams are included inside the documentation and
the images are generated by the tool.
Since diagrams are just plain text, it's very easy:
The disadvantage of this approach is the fact that every diagram is independent from others and that one needs to organize them in Documents to make up a whole Model.
It also can be used in standalone mode by executing the JAR file directly.
Each diagram type has specific notation used to capture the aspects of that diagram type. The proper notation is captured in a PDF-based Language Reference Guide which defines all of the syntax required per diagram type.
Another use of the PlantUML Language is in describing UML diagrams for blind people. Using PlantUML the describers can check that their textual Descriptions of the UML diagram contains all relevant information.
UML tool
A UML tool or UML modeling tool is a software application that supports some or all of the notation and semantics associated with the Unified Modeling Language , which is the industry standard general purpose modeling language for software engineering.UML tool is used broadly here to include...
that allows to generate UML
Unified Modeling Language
Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...
diagrams from a textual description. It is used to draw UML diagrams but is not a modeling tool itself. It does not prevent inconsistent diagrams from being created and requires the developer of the diagram content to understand UML and create proper UML content.
To create the UML diagrams, PlantUML has a meta-language defined that allows the diagram creator to describe the UML as a series of text statements which the graphics engine translates into standard UML notation. The graphics engine is written in Java and is distributed in both JAR
JAR (file format)
In software, JAR is an archive file format typically used to aggregate many Java class files and associated metadata and resources into one file to distribute application software or libraries on the Java platform.JAR files are built on the ZIP file format and have the .jar file extension...
and source code form. The 3rd-party package Graphviz
Graphviz
Graphviz is a package of open-source tools initiated by AT&T Labs Research for drawing graphs specified in DOT language scripts. It also provides libraries for software applications to use the tools...
is used for the graphics layout. Resulting diagrams can be output in PNG, SVG, EPS
Encapsulated PostScript
Encapsulated PostScript, or EPS, is a DSC-conforming PostScript document with additional restrictions which is intended to be usable as a graphics file format...
and ASCII Art
ASCII art
ASCII art is a graphic design technique that uses computers for presentation and consists of pictures pieced together from the 95 printable characters defined by the ASCII Standard from 1963 and ASCII compliant character sets with proprietary extended characters...
.
Context
UML diagrams are very useful in documentation. Many toolsexist that allow to create UML diagrams using a WYSIWYG
WYSIWYG
WYSIWYG is an acronym for What You See Is What You Get. The term is used in computing to describe a system in which content displayed onscreen during editing appears in a form closely corresponding to its appearance when printed or displayed as a finished product...
approach.
There are some drawbacks of this approach:
- Diagram modifications can be difficult.
- People can tend to focus on the layout (so that the diagrams looks good).
- Updating documentation may be difficult. (Due to copy/paste images between tools).
PlantUML takes another approach, close to Wiki
Wiki
A wiki is a website that allows the creation and editing of any number of interlinked web pages via a web browser using a simplified markup language or a WYSIWYG text editor. Wikis are typically powered by wiki software and are often used collaboratively by multiple users. Examples include...
or Javadoc
Javadoc
Javadoc is a documentation generator from Sun Microsystems for generating API documentation in HTML format from Java source code.The "doc comments" format used by Javadoc is the de facto industry standard for documenting Java classes. Some IDEs, such as Netbeans and Eclipse automatically generate...
. The diagrams are included inside the documentation and
the images are generated by the tool.
Since diagrams are just plain text, it's very easy:
- To integrate them in Revision controlRevision controlRevision control, also known as version control and source control , is the management of changes to documents, programs, and other information stored as computer files. It is most commonly used in software development, where a team of people may change the same files...
, - To edit them,
- To process them through scripting.
The disadvantage of this approach is the fact that every diagram is independent from others and that one needs to organize them in Documents to make up a whole Model.
Usage
PlantUML is mainly used as plugin in several other software applications, including:- Wikis
- MediawikiMediaWikiMediaWiki is a popular free web-based wiki software application. Developed by the Wikimedia Foundation, it is used to run all of its projects, including Wikipedia, Wiktionary and Wikinews. Numerous other wikis around the world also use it to power their websites...
- DokuWikiDokuWikiDokuWiki is a wiki application aimed at small companies’ documentation needs. DokuWiki is licensed under GPL 2 and written in the programming language PHP. It works on plain text files and thus needs no database. Its syntax is similar to the one used by MediaWiki.-History:DokuWiki was created by...
- XWikiXWikiXWiki is a free wiki software platform written in Java with a design emphasis on extensibility. XWiki Enterprise, the enterprise wiki edition, includes WYSIWYG editing, OpenOffice based document import/export, semantic annotations and tagging, and advanced permissions management.As an application...
- Atlassian Confluence
- Mediawiki
- EclipseEclipse (software)Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...
- Microsoft WordMicrosoft WordMicrosoft Word is a word processor designed by Microsoft. It was first released in 1983 under the name Multi-Tool Word for Xenix systems. Subsequent versions were later written for several other platforms including IBM PCs running DOS , the Apple Macintosh , the AT&T Unix PC , Atari ST , SCO UNIX,...
- LibreOfficeLibreOfficeLibreOffice is a free and open source office suite developed by The Document Foundation as a fork of OpenOffice.org. It is largely compatible with other major office suites, including Microsoft Office, and available on a variety of platforms...
- Apache MavenApache MavenMaven is a build automation and software comprehension tool. While primarily used for Java programming, it can also be used to build and manage projects written in C#, Ruby, Scala, and other languages. Maven serves a similar purpose to the Apache Ant tool, but it is based on different concepts and...
- Apache AntApache AntApache Ant is a software tool for automating software build processes. It is similar to Make but is implemented using the Java language, requires the Java platform, and is best suited to building Java projects....
It also can be used in standalone mode by executing the JAR file directly.
Features
The current version (version 6627 as of 6-May-2011), can generate the following 7 UML diagram types:- class diagramClass diagramIn software engineering, a class diagram in the Unified Modeling Language is a type of static structure diagram that describes the structure of a system by showing the system's classes, their attributes, operations , and the relationships among the classes.- Overview :The class diagram is the main...
s - sequence diagramSequence diagramA sequence diagram in Unified Modeling Language is a kind of interaction diagram that shows how processes operate with one another and in what order. It is a construct of a Message Sequence Chart....
s - use case diagramUse case diagramA use case diagram in the Unified Modeling Language is a type of behavioral diagram defined by and created from a Use-case analysis. Its purpose is to present a graphical overview of the functionality provided by a system in terms of actors, their goals , and any dependencies between those use...
s - activity diagramActivity diagramActivity diagrams are graphical representations of workflows of stepwise activities and actions with support for choice, iteration and concurrency. In the Unified Modeling Language, activity diagrams can be used to describe the business and operational step-by-step workflows of components in a system...
s - state diagramsUML state machineUML state machine is a significantly enhanced realization of the mathematical concept of a finite automaton in Computer Science applications as expressed in the Unified Modeling Language notation....
- object diagramObject diagramAn object diagram in the Unified Modeling Language , is a diagram that shows a complete or partial view of the structure of a modeled system at a specific time....
s - component diagramComponent diagramIn the Unified Modeling Language, a component diagram depicts how components are wired together to form larger components and or software systems.They are used to illustrate the structure of arbitrarily complex systems.- Overview :...
s.
Each diagram type has specific notation used to capture the aspects of that diagram type. The proper notation is captured in a PDF-based Language Reference Guide which defines all of the syntax required per diagram type.
Why use PlantUML
In small to medium sized Software projects PlantUML can- make UML design more efficient because of the easy-to-learn language and direct use in e.g. Word
- enable programmers to enrich their code documentation by writing PlantUML code in their code and including it in the source code documentation
Another use of the PlantUML Language is in describing UML diagrams for blind people. Using PlantUML the describers can check that their textual Descriptions of the UML diagram contains all relevant information.
Review
Some sites have noted the software:- http://www.fiberdownload.com/Download/25239/PlantUml
- http://www.softsea.com/review/PlantUml.html
- http://download.famouswhy.com/plantuml/