PlantUML

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
PlantUML
Developer(s) Arnaud Roques[1]
Initial release 17 April 2009 (2009-04-17)[2]
Stable release 8041 / 19 May 2016; 7 years ago (2016-05-19)
Written in Java
Operating system Linux, OS X, Windows
Type UML Modeling
License GNU Public License
Website plantuml.com
UML Class diagram showing an example of the Facade design pattern.

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.

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.

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

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. http://sourceforge.net/projects/plantuml/
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.

External References