Recently we have moved over to Confluence3 and a different diagram tool called Gliffy (which company makes an excellent plugin for adding Gliffy to Confluence)1.
After working with both PlantUML as well as Gliffy, I thought I'd write down some points in favour of both.
- UML Images are generated by interpreting a simple and intuitive language.
- a Web-based drawing tool for diagrams
|Layout is handled by the tool itself||Influence of user on layout is limited||makes it easy to create diagrams quickly|
|software with required libraries without UI|
|possible integration via commandline, for example batch jobs, software buildscripts to generate documentation automatically (javadoc for example)||difficult integration with Confluence|
|a simple and intuitive language makes it easy to create diagrams quickly||it is a markup language, and therefore more suited to software developers|
|strong focus on UML||limited number of diagram components, strong focus on UML|
|very easy to change existing diagrams, even very complex ones|
|Layout can be adapted in every little detail||You get stuck having to draw instead of simply create diagrams||makes it difficult to create or change diagrams quickly|
|Web tool - no obvious software needs to be installed (only on the server)||Responsiveness is not great in a web browser|
|excellent integration with Confluence by means of a plugin|
|even managers might be able to use it||which is a really really bad idea.|
|lots and lots of diagram components, including UML|
|very difficult to change existing diagrams, sometimes things need to be redrawn5|
ConclusionIf you wish to draw UML diagrams quickly, and integrate them into your build process, PlantUML is the way to go.
If you need all the flexibility you can get and you don't mind having to draw and layout things yourself, Gliffy is the way to go.
-  Gliffy
-  PlantUML
-  Confluence
-  TRAC - Integrated SCM and Project Management
-  impossible to change the type of a component in Gliffy
- work around is to delete the entire component, and create a new component of the correct type