13

Given it is mandatory to have UML diagrams in your project, how do you like to draw them? - By using scripting - By using drag and drop - Any other convenient and faster method

I got lot of responses. Based on our project requirement, I have decided to go with plant uml as we find it very easy to draw UML diagrams. We are not much interested in reverese engineering.

Rakesh Goyal
  • 3,117
  • 8
  • 39
  • 69
  • 10
    I like to jot them down on paper then scan them in with my flatbed scanner. However, that's a bugger to maintain and update :-) – paxdiablo Aug 05 '10 at 05:17

12 Answers12

13

PlantUML is my favorite way. I just find all these diagrams to be way easier to build using simple scripting. PlantUML is a bit like markdown for diagrams.

The Eclipse plugin is pretty neat, it updates in real-time, and auto-generates diagrams from your java code.

There's also PlantUML editor: https://code.google.com/p/plantumleditor/ and PlantUML QEditor: http://sourceforge.net/projects/plantumlqeditor/

That are pretty neat as standalone.

You can obviously also simply use PlantUML from the command line, it parses a text file and generates the diagram out of it using graphviz.

Didier A.
  • 4,609
  • 2
  • 43
  • 45
6

If you won't want to make a full-fledged UML diagram that can be read and understood by all kinds of tooling, but just a picture that looks like UML, I can hearily recommend yEd.

yEd is a free (beer, not speech) application that allows you to draw any graph-like diagram. It's an order of magnitude faster and simpler in use than any other diagramming tool I know, because you can only make graphs with it. But when you think about it, nearly all diagrams (e.g. in the UML) are graphs.

For example, yEd has a "UML class" node type which is simply a rectangle with a name and two multiline text fields (one for attributes, one for fields). This is horrible if you want to generate code from your class diagram, or if you want the same UML model to be presented in multiple views, but for plain pictures, it's just perfect.

A fake UML diagram made with yEd

This approach also allows you to relax some UML syntax a bit here and there. For example, I like to write my fields and methods on UML classes like int MyField instead of the official UML-styled MyField: Integer since after all, that's how I'd write it in the target programming language. UML purists would scream in terror, but I want to communicate a design to my peers, not win a syntax contest.

(Note: making non-graph-ish diagrams with yEd is possible, but painful. Notably, UML sequence diagrams are not a good fit. But those can be created excellently from text again with tools like PlantUML and MSCgen, which in turn suck a graph layouting)

(Note 2: I get nothing for promoting this tool like this. I'm just a fanboy)

skrebbel
  • 9,841
  • 6
  • 35
  • 34
5

Any other convenient and faster method

Personally I had used a plugin for NetBeans IDE. The other answers already suggested a good list of "standalone" UML editors. If your IDE has a UML plugin that does the job for you I think you should favor it, for that anything that can integrate with your code (even if not perfect/complete) while you are modifying it will come in handy.

UML Plugins for IDEs

Your IDE should have plugins that you can use to automatically generate the UML diagrams, then you can add, remove and correct what does not look right to you. This mode is often referred to by the plugins as "Reverse Engineering", i.e, takes the code base and generate the diagrams.

Some tools can also synchronize what you are modifying in the UML diagrams into the code base.

I can't give specifics as the question is IDE/Platform-agnostic.

yUML (Web Based)

See this online tool http://yuml.me/diagram/scruffy/class/samples

Note: Won't scale for complex diagrams, nonetheless handy to document your StackOverflow answers, or a quick blog post for example :)

bakkal
  • 54,350
  • 12
  • 131
  • 107
  • 1
    yUML is a pain :( It works perfectly for some given examples but when you try to do something more complex is will mostly sure fail – Victor Hurdugaci Aug 05 '10 at 06:02
  • @Victor, yes because of how you need to type the whole thing into a URL. I think even with a WYSIWYG tool it wouldn't scale for complex diagrams given how long the URLs would become. Nonetheless handy to document your StackOverflow answers, or a quick blog post for example. – bakkal Aug 05 '10 at 06:34
  • +1, yUML works great! Particularly love the DokuWiki plugin: https://www.dokuwiki.org/plugin:yuml – user456584 Mar 05 '13 at 22:41
  • found yUML good for simple diagrams. Text editing class diagrams is a pain nevertheless. +1 for the link. Thank you @bakkal – Santanu Dey Jan 16 '14 at 17:48
4

For sequential diagrams I use WebSequenceDiagrams - analogue of yUML.

GooRoo
  • 661
  • 3
  • 9
3

Enterprise Architect

waffleman
  • 4,159
  • 10
  • 39
  • 63
3

I use dia. It works fine in Windows and Linux and is GNU. enter image description here

User1
  • 39,458
  • 69
  • 187
  • 265
2

On board and take a picture, if many developers are involved.

If it's only me, I start on paper, and then use StarUML. It lacks a lot of features, but still good.

Roman Hwang
  • 405
  • 5
  • 10
2

I draw on paper and complete them argouml http://argouml.tigris.org/

rmartinez
  • 81
  • 1
  • 6
2

I think it depends a bit on how extensive the modelling should be. If it should serve as an illustration to explain some key elements à drawing program should do fine. I personally use omnigraffle for that.

If it should be a detailed model you're probably better off with generating ( if it is à class diagram). I like Visual Paradigm, but also heard good things about enterprise architect ( Windows only). These tools are also very good for flow diagrams.

I never bother with sequence diagrams (I think à flow is more clear) so I wouldn't know what tool is best for that. I think both VP and EA can handle those.

The key is usage. If it is for clarificatiopn à drawing tool is perfect, you decide how much clutter to include. If you need all the details just generate the diagrams.

extraneon
  • 23,575
  • 2
  • 47
  • 51
1

http://www.smartdraw.com/specials/umldesign.asp

is very nice tool for UML

Sachin R
  • 11,606
  • 10
  • 35
  • 40
1

I tend to use yUML - super easy to use and easily accessible (diagrams are created and can be referenced online)

Scott
  • 1,208
  • 9
  • 28
  • 1
    If using Visual Studio Code, you can use the yUML extension for it: https://marketplace.visualstudio.com/items?itemName=JaimeOlivares.yuml – Jaime Feb 04 '18 at 23:08
1

I use Visual Studio 2010 for my sequence diagrams.

this. __curious_geek
  • 42,787
  • 22
  • 113
  • 137