HACKER Q&A
📣 faizshah

A modern-looking UML diagram tool?


Hi HN,

I've been going back to UML to try to tame some of my design/notes for my projects. Is there something that generates some more modern looking UML diagrams out there?


  👤 gpantazes Accepted Answer ✓
I use PlantUML[1] for my UML diagrams.

  - It uses a human readable text-based file format renderable via the PlantUML jar. Friendly to CLI and git.
  - The diagrams are stylable, should you wish to style them. 
  - There's a PlantUML Integration IntelliJ plugin that's easy to use for preview/rendering[2]
  - Overall simple to use, but I imagine it can as robust as you want it to be. For example, the IntelliJ plugin Sketch.it automatically generates PlantUML diagrams from Java source code[3], and the source code for how it works is available on BitBucket if you want to know how it works[4]
I've seen other people suggest Mermaid.JS[5] before, but I haven't used it so I can't say how it is.

  [1]: http://plantuml.com
  [2]: https://plugins.jetbrains.com/plugin/7017-plantuml-integration/
  [3]: https://plugins.jetbrains.com/plugin/10387-sketch-it-
  [4]: https://bitbucket.org/pmesmeur/sketch.it/src/develop/
  [5]: https://mermaidjs.github.io

👤 cwojno
I also use Draw.io and recommend it highly. It's web-based, so it's also cross platform.

However, Lucidcharts has a better UI in that I can build diagrams after in LC than Draw.io. https://www.lucidchart.com/pages/

LC is paid if you need more than 1 chart (who doesn't?). But Draw.io is free. LC is also web-based and is cross-platform.

I've heard OmniGraffle is also excellent (never used it myself) but it only works on OSX/iOS: https://www.omnigroup.com/omnigraffle/


👤 guhcampos
I enjoy using Mermaid: https://mermaidjs.github.io

It does not support all the diagrams yet, but it's completely themable and you can code away your diagrams like you would with dot/graphviz.

It integrates well into any Markdown tool, Gitlab integrated it about a year ago so it's natively available in Gitlab flavored Markdow.


👤 kevlar1818
Honestly just change the default styling in PlantUML[1]. The default styling turns a lot of people off, which is a shame because it's a fantastic tool. Even the monochromatic skin is much easier on the eye. The real benefit to PlantUML is the ability to commit the source code for your diagrams alongside your actual source code.

[1]: http://plantuml.com/skinparam


👤 yboris
For all sorts of diagrams, this software is awesome: yEd

https://www.yworks.com/products/yed

Favorite feature: automatically reorganize the chart according to your preferences/constraints (e.g. fewer line intersections, hub-spoke, hierarchical, etc)


👤 jph
For prettiness, Visio or OmniGraffle.

For shareable web editing, LucidChart or Draw.io.

For quick easy text markup, PlantUML or Mermaid.

I have not found any UML tool that's pretty, shareable, round-trippable, and has easy text markup.

Demo of PlantUML: https://github.com/joelparkerhenderson/demo_plantuml.


👤 contingencies
You should really ask yourself why you're drawing UML diagrams at all.

You know, there are lots of people selling snake-oil, drawing boxes and arrows that make you feel good, but ultimately have no real meaning. If something is really meaningful you should be able to express it in mathematics. - Leslie Lamport

... via https://github.com/globalcitizen/taoup

If you need to visualize, take more precise states as a basis and take a look at graphviz[0]. If you need to model multi-agent systems, use mscgen[1] to draw Message Sequence Charts.

[0] https://graphviz.org/

[1] http://www.mcternan.me.uk/mscgen/


👤 jshprentz
I have used UMLet since 2005. The diagrams won't win a beauty contest, but they are quick to edit and depict the necessary information. https://www.umlet.com/

From the UMLet web page:

> UMLet is a free, open-source UML tool with a simple user interface: draw UML diagrams fast, build sequence and activity diagrams from plain text, export diagrams to eps, pdf, jpg, svg, and clipboard, share diagrams using Eclipse, and create new, custom UML elements. UMLet runs stand-alone or as Eclipse plug-in on Windows, OS X and Linux.

UMLetino runs UMLet in a web browser. Refer to the UMLet FAQ and sample diagrams for help. http://www.umletino.com/umletino.html


👤 ringo7
I used successfully https://www.draw.io/ for my graduation paper's UML schemes and other additional explanatory graphics. Give it a try.

👤 Rabidgremlin
Depending on what you be are diagramming you might want to use the C4 Model ( https://c4model.com/) which often results in easier to understand diagrams. There is a PlantUML add on for it too: https://github.com/RicardoNiepel/C4-PlantUML

Also draw.io templates and a set of Visio templates ( https://github.com/pihalve/c4model-visio-stencil ) that can be imported into Lucidcharts as well. There is also some web based tools (see bottom of C4 website).


👤 _jordan
https://monodraw.helftone.com/ for MacOSX is great

👤 swalsh
There's quite a few. Obviously Visio is popular, on Linux I've used a tool called "Dia" (http://dia-installer.de/) there are several others, but these are my 2 go to tools for UML.

👤 cher14
You might also like www.breakdown-notes.com. It is not as focused on diagrams as draw.io (and others), but is rather nice if you want to make something inbetween notes and diagrams. (so I say as the owner of breakdown-notes).

👤 Myrmornis
It would help this discussion if people made a distinction between software that creates diagrams from version-controlled code (e.g. PlantUML, MermaidJS), and software that just creates diagrams.

👤 rymohr
Have you seen Kumu? https://kumu.io

It doesn't support standard UML diagrams but between sketch mode [1] [2] and icons [3] you may be pleasantly surprised. I personally use it to map out Kumu's own internal application structure and flows.

Full disclosure: I am the lead developer and cofounder of Kumu.

[1]: https://www.youtube.com/watch?v=wX3kbCyOamQ (Gene Bellinger's intro to Kumu's sketch mode)

[2]: https://www.youtube.com/watch?v=AFOz67co0yA (Benjamin Mosior sketching wardley maps in Kumu)

[3]: https://docs.kumu.io/guides/icons.html (Kumu docs on Font Awesome support)


👤 javierluraschi
nomnoml: A tool for drawing sassy UML diagrams based on syntax. Provides instant feedback and has a customizable styling.

web: http://www.nomnoml.com/

js: https://github.com/skanaar/nomnoml

r: https://github.com/javierluraschi/nomnoml


👤 yboris
Specifically for sequence diagrams:

https://sequencediagram.org/


👤 rytill
Whimsical might be helpful, though you can’t do the special UML arrows on there.

https://whimsical.com/


👤 ilfs123
Here is a link to a few UML diagramming tool, check them out, might find the one you are looking for.

UML Diagramming Software for Windows: https://www.ilovefreesoftware.com/29/featured/free-uml-desig...

Online UML Digaramming Tools: https://www.ilovefreesoftware.com/22/webware/free-websites-t...


👤 auienrst
Well, http://plantuml.com/en/ is, imo, the most efficient and maintenable way to produce UML diagram

👤 scaryclam
I use lucidchart for most diagramming. There's a free clone, draw.io, which is also pretty good if you need more objects but don't want to pay out for an account on lucidchart.

👤 ako
PowerPoint , I often use animations to explain complex diagrams.

👤 nyxcharon
The best free tool I've used is Draw.io[1], can create diagrams online or offline and has nice integrations with things like OwnCloud.

If you don't mind paying for something and want something that looks great visually, I would recommend Lucid Chart [2]

[1]: https://draw.io

[2]: https://www.lucidchart.com


👤 arminiusreturns
Check out blockdiag tools, http://blockdiag.com/en/

👤 rsecora
For windows 10 you have the WhiteStarUML[1], but is not updated since March/2018. You can get and idea of the interface and check if the UML fits your definition of "modern looking".

[1] https://sourceforge.net/projects/whitestaruml/


👤 mothsonasloth
StarUML is good although its built on Electron

👤 nreece
I came across a recent blog post[1], that mentioned some text-to-diagram tools, out of which I liked Gleek.io and nomnoml in particular.

[1] https://avdi.codes/tools-for-turning-descriptions-into-diagr...


👤 simonsarris
You could use GoJS to make one: https://gojs.net/latest/index.html

(I make GoJS, a diagramming library, but it presumes nothing about "looks", which can be modified arbitrarily)


👤 fanick
I used visual paradigm few years back. It was really good. https://en.m.wikipedia.org/wiki/Visual_Paradigm

👤 j0nathan
Sometimes PlantUML for rather simple diagrams.

For more advanced diagrams I use Enterprise Architect (https://www.sparxsystems.eu/).


👤 9dl
What language do you use?

And what for do you need UML (and what type diagrams)?

For example, IDEA products for Java has some tools for class diagrams

MS visio is nice too as tool for just painting UML

But main problem with UML - synchronization with code base


👤 edpichler
I really wish to find some tool to replace Enterprise Architect that runs, unfortunately, only in Windows. For me is really important traceability, starting from the requirements.

👤 FeloniousHam
Monodraw[0] is great for diagrams and general note taking.

[0] https://monodraw.helftone.com/


👤 snalty
i just use inkscape

👤 villgax
Draw.io got completely open sourced a few days back, so now there's no stopping you for adding any features you want either.

👤 user1713952

👤 anjanb
hi there,

  draw.io is a free tool both available online at https://www.draw.io/ or you can download a desktop version from https://github.com/jgraph/drawio-desktop/releases. Quite fast and good.

👤 bitfhacker

👤 slipwalker
i've being using https://online.visual-paradigm.com/ for a while now, and am quite happy with it.

👤 mister_hn
Check out Visual Paradigm, they come now with a Web UI too

👤 ivanceras
You can create diagram from plain text https://ivanceras.github.io/svgbob-editor/

👤 sidcool
I use Google drawings extensively

👤 andredeen
Software Ideas Modeler works nice

👤 type0
graphviz can be modern looking, you just have to select some styling on your diagram

👤 Scarbutt
Figma

👤 KennyFromIT
yEd with custom palettes, anyone?