Ask HN: A modern-looking UML diagram tool?

223 points by faizshah ↗ HN
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?

91 comments

[ 3.6 ms ] story [ 158 ms ] thread
I used successfully https://www.draw.io/ for my graduation paper's UML schemes and other additional explanatory graphics. Give it a try.
It's actually a good one, I'd recommend too
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.
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/

My vote for Lucid, got my company to switch from Draw.io. Nearly everything works how I expect it to which is just not true when it comes to the other online diagram tools
+1 for lucid charts. I used the free trial a few years ago for a senior design class and was incredibly happy with it, which is saying a lot as I was consistently sleep deprived and irritated by most things at the time.
Can confirm that OmniGraffle is excellent. Downside is that after my departure from MacOSX towards Linux my diagrams are lost in the silo I created them in.

Since then using draw.io, yed and Inkscape.

OmniGraffle is freaking amazing. If you're on a mac then RUN (don't walk) to grab a copy and try it out.

it's also SO much more than just UML. I have found SO many uses for it.

> OmniGraffle is freaking amazing.

On the whole I like OmniGraffle, but I _hate_ the curves that it draws. If I use it to make a diagram, I have to spend so much time making the curved lines between shapes not look like shit.

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

i just use inkscape
I do too, it’s quite easy to produce diagrams that look better than any modern diagram too. And things look exactly as you want.
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.

Can you elaborate "round-trippable"?
Not OP, but I'd say that it is in a text-ish format that can be fed into a generator that can turn the document into code. Some of these UML editors spit out a PNG, which is pretty but useless for code generation or automated use of the information.
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

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).
Software Ideas Modeler works nice
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.
I use Google drawings extensively
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
If you're going to monospace lists (why?) please format them to remove the horizontal scroll bar.

Edited to remove example that still produces scroll bar on non-maximized windows (and mobile).

Haha I'm on mobile, so you'd need to do 4 words per line
Yeah this still has the horizontal scrollbar on a 920px wide browser window on desktop. People really need to cut it out with this though. There's no guideline on not using monospaced lists, and you're not the grandmaster of hackernews, so bugger off and just don't read the comment if you don't like it.
I'm just trying to suggest ways to make it easier to read the comment. I suggest you read comments giving the poster the benefit of the doubt, you'll probably be much happier than telling people to bugger off.
Assume good faith. Without that, you can't get anything done with strangers.
Second PlantUML and Mermaid. Both work great in boostnote, which I also recommend.
plantuml is nice one. Works smoothly with VSCode extension. And wow, mermaid has gantt chart !
The PlantUML Website used to look like you were about to download a whole bunch of malware into your computer, but the software is really great. Diagrams are simple text files that are then rendered by the tool. This frees you from having to drag and drop circles and arrows into an editor, and allows you to easily version-control your diagrams.
Draw.io got completely open sourced a few days back, so now there's no stopping you for adding any features you want either.
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.

I've been using mermaid for almost 2 years now, great software and still improving. It's nice too that I can keep the code in a note and change in in meetings.
Any comparisons of Mermaid vs other tools? Why do you like Mermaid?

I use Plantuml myself and I find that I regularly have to fight with the layout engine to get diagrams to looks the way I want them too.

Mermaid is a bit nicer than PlantUML in that it isn't a Java blob that spits out PNGs. Easier to integrate into web things. Also the default style is much nicer.

But I think PlantUML is more capable.

(comment deleted)
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

https://monodraw.helftone.com/ for MacOSX is great
I mostly use it to draw small diagrams for code comments if it makes things clearer but it's one of these small little macOS app gems.

A very small niche and well done as a beautiful native Mac app.

And an absolute steal (for what is it) at the standard sale price.
I love monodraw, but i don't know if it counts as "modern looking" Yes, the rendered versions of the output look reasonably good, but there are still some rough edges, like trying to create a "diamond" shape to put text in (typical decision point in flow chart) ends up with a HUGE diamond.

also, i see it as primarily useful for generating ASCII diagrams for inserting into source code or docs. If you don't care about that tools like OmniGraffle do a much better job.

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)

If enough people are interested I'm happy to do a webinar specifically for the HN crowd and do a deep dive on the technicals. Built on top of CouchDB and pretty neat stack overall.