views:

1994

answers:

21

For a long time I've been looking for a good diagramming/vector-based drawing program that meets my needs as a developer. I'd like to:

  1. Draw database diagrams
  2. Draw flow charts
  3. Draw object-modeling diagrams (UML being the standard)
  4. Draw other free-form diagrams (basically boxes & arrows with the occasional clipart)
  5. Draw mockups of user interfaces and web pages

EDIT: I want good-looking electronic-format diagrams that I can show to 3rd parties, not just something for my own internal use.

EDIT 2: I'm also looking for Windows software, although I'm toying with the idea of switching to Mac, so a really good Mac-only product might get me to switch.

Basically I need a good vector graphic program (with decent grouping, connecting lines, and ideally auto-routing). I'd prefer a diagramming tool that can also be used for drawing (for the UI mockups) rather than a drawing tool that can also be used for diagrams.

I've tried Visio on several occasions, and every time I've been disappointed. The interface always seems to get in my way at some point. It's pretty close to what I want, and the latest version (I got the trail from MS) seems to be better than previous ones in terms of usability, but I really don't want to plunk down that sort of cash for a mediocre product.

I've tried Dia and Inkscape, and while initially promising and with the right price tag, I found both of them to be lacking in several ways (including some recurring bugs).

I've toyed with getting Adobe Illustrator, but I've never used it before, and I have a feeling that it wouldn't handle the diagramming aspect very well, and I don't want to buy a copy just to find out it doesn't meet my needs.

So far, the product that I've had the most success with is, sadly, OpenOffice Draw. It's free of course (which lowers my expectations and thus improves my view of it) and its usability is pretty good, but in the end I'd like something more suited to diagramming.

I'm willing to spend real money (in the $500-$1K range) for a really good piece of software if it does everything I want it to. The front runner is of course Visio but I'm hoping for more. Does anybody have any recommendations?

CONCLUSION: @dlamblin had the most informative post, but the part I gained the most from was his/her (and others) mention of OmniGraffle, not Gliffy.

I gave Gliffy a try, and it seemed neet for occational use, but since it's a Flash app (note: not AJAX as dlamblin mentioned) it's still a bit of a pain to use (no keyboard shortcuts for copy/paste was pretty much a deal breaker for me).

I also tried SmartDraw, but it had 3-strikes-you're-out against it:

  1. The trial period was only 7 days long.
  2. It used some nonstandard (and visually jarring) GUI widget toolkit for its UI. At the very least it makes me suspicious (how do I know it will actually work & support the standard Windows features?)
  3. It crashed on me early into my trial.

OmniGraffle looks like exactly what I want... except that it's Mac-only (so I couldn't give it a try). However, it got good reviews from my Mac-owning coworker, and I hope to try it on a friend's Mac soon. If it's good enough then I might spring for a new MacBook.

+7  A: 

To be perfectly honest I call it pencil and paper. Easy to draw, piece of cake to erase. Need to add a bit between two items, just draw it there. :) Oh, and easy to show to others (probably harder to explain but that is your own problem)

Craig
A: 

Visio

cschol
A: 

I've never used it, but every time I google for this same thing SmartDraw comes up several times in reviews and posts

Now I'm on a Mac and have OmniGraffle, so I never really got to try SmartDraw.

Sergio Acosta
+2  A: 

For Mac users in the audience, I highly recommend OmniGraffle (it's very much like Visio, except way better ;). As a companion site, you cat get a metric buttload of free stencils from Graffletopia.

Pat Notz
+1  A: 

I concur on paper. You never mentioned any need to store, transmit, validate, version control or code-generate, so I assume you're just designing stuff prior to coding it up. Paper does really well on that front.

Josh
+1  A: 

Paper is definitely out of the question.

  1. I can't draw a straight line :-P
  2. I want to be able to email stuff around easily
  3. I want to be able to edit.

Sorry for not mentioning this before, but my goal is to show diagrams to clients & other interested parties. It has to look good. I'll edit the description to reflect this.

Craig Walker
A: 

For database diagrams, I like the Toad Data Modeler. If I recall, it used to be free but it doesn't appear to be so anymore.

Kevin Pang
+4  A: 
dlamblin
Finding out how much Gliffy cost is a real hell! After about 5 minutes searching for it, I found a link in the FAQ. (A 1 user subscription is $5 per month.)
svinto
+2  A: 

IMHO Visual Paradigm offers best tools for that. I tried Visio, SmartDraw and a lot of other tools. But Visual Paradigm for UML turned out to be a really easy to use and powerful tool.

aku
+3  A: 

I've tried Sparx Enterprise Architecht. It's good combination of price and quality. By the way, in wikipedia I find table of comparison of commercial and non commercial tools, that I recommend to review too.

bgee
+5  A: 

I've used yEd for my drawings. It's really simple to use and free.

http://www.yworks.com/en/products_yed_about.html

kulakli
Tried it. Loved it. Thanks for the advice.
Brian Clozel
+3  A: 

Enterprise Architec from Sparx Software. Cheap, comes in several editions so you can pick the one just suited for you. In my opinion (without trying to advertise it), it gives you the best value for your money.

petr k.
A: 

Dia - cross platform

Iulian Şerbănoiu
A: 

On Linux I use Kivio or Dia. Not sure if there are Windows ports.

A: 

I prefer Inkscape for one particular reason: I keeps my diagrams simple. This way I spend more time writing code.

fooledbyprimes
+3  A: 

Switching to the Mac would be worth it just to use OmniGraffle. It produces results many times better than Visio in a fraction of the time, and the Pro version can read and write Visio formats.

Do it! Make the jump! :)

Rich
I love OmniGraffle, but it's worth noting that the Visio read/write capability is NOT a reason to buy the software. It's flaky, at best.
mmc
A: 

I know you said paper is out of the question, but it does have some advantages. If you can't draw straight lines, I suggest engineering paper and a ruler and maybe a flowchart template. Whiteboards are also under-rated.

The key to sharing and actually using paper and/or whiteboard drawings is to scan them or photograph them, then put them in your project documentation repository. A scanner is cheap (under $50) and most cell-phone cameras can take clear enough pictures of whiteboards. If not, a cheap digital camera is a good investment. Online services like ScanR or Qipit can convert cellphone and digital camera pictures of whiteboards, napkin drawings, or sketches into PDFs and they even do a pretty good job of OCR so you can search through the resulting files (note that these services have free trials or limited user free accounts - they used to be free during their beta periods).

I use Visio a lot, but only if I need to make a drawing for a presentation or formal document. Even then, I often start with a pencil sketch and sometimes scan it in and draw on top of it.

The advantage to me is that I can whip up a drawing on paper with a pencil and ruler in a few minutes, show it to people, erase and make changes, then scan it in and get to work in much less time that it takes to create a formal drawing using Visio or similar programs. They certainly have their uses, but they aren't great brainstorming or conceptual review tools.

A good example is laying out web pages or application screens. By the time I do one of those in Visio, I might as well have done it in Visual Studio's designer. But I can sketch it on a piece of paper or print out a screen shot and pencil (or red pen) changes on top of it, scan it, and get it to the team for review much faster without committing it to code.

CMPalmer
+2  A: 

You should look into Graphviz. It's easy to use both by hand, and programmatically! You can output to images or PDFs, or a bunch of other formats.

Ryan Fox
+1  A: 

Take the time to absorb and apply Object Role Modeling. I've mentioned this before, but I've spent the time to get my sold Agile creds lined up this time. (The articles are worth reading on their own merits in the context of this thread.)

Scot Becker
Scott Ambler

Here's the wikipedia article.

Why?

Because it's the only true conceptual data modeling tool that lets you discuss requirements with users without ever saying "join", "foreign" (or other kind of) "key", "table", "column", "relates to", or any other word or phrase that will throw up the fogscreen. It's to database modeling what use cases are to uml and user stories are to agile oo.

And you can use Visiomodeler with a free download from Microsoft. Yes, it will also generate your ERD diagrams if you want. The download is standalone - you don't need Visio, VSEA, or any other MS products. (Is it compatible with Vista? Even Microsoft doesn't know.)

But aside from the software, you can use the technique effectively on paper or whiteboard.

le dorfier
A: 

In the past month I've gotten a Macbook and OmniGraffle. So far, I'm very pleased with it. It's not quite the last word in vector image editing; it doesn't draw new shapes terribly well. However, it handles the diagramming duties wonderfully. Paired with a decent vector editor (I'm using Inkscape for now) it's a very good solution.

Craig Walker
+2  A: 
Dave Jarvis