views:

801

answers:

9

I'm curious what tools people have found useful for building flowcharts. Obviously MS Visio and OmniGraffle come to mind but they both feel so bloated and also tend to emphasize the document formatting/printing side and less on helping to organize the actual logic. Is there anything else out there that fellow developers would recommend?

I'm hoping to find something fairly simple that would let me throw together flowcharts on the fly when I'm working through complex logic. I don't care about formatting or fonts or the like, just something that would help me keep my logic organized as I work through it. Even something that would arrange the chart itself and simply allow me to specify where to branch and what to check, etc.

Any OS would be fine, though I personally lean towards OS X apps as this has recently been my primary work environment.

+2  A: 

Though you list it as bloated I nonetheless use OmniGraffle.

For quick flowcharting a series of boxes with lines to magnets in the boxes is sufficient, but the rest of the formatting options are good to have later. I find that any flowchart I take the time to draw generally ends up in a document somewhere. Even when I'm just trying to understand some difficult code, I end up with a one page document which attempts to explain that code for the next poor schmuck who has to dig in.

DGentry
I have to admit I am a big fan of OmniGraffle. I'd love to find something though that would replace my random sketches on a notepad (something where I wouldn't have to worry about arranging/sizing items, etc.).
Wilco
+1  A: 

Open Office's Draw is pretty good too. I've used it to create everything from simple flow charts to complex genealogical trees.

Vivek Kodira
A: 

I dont do a lot of complex flowcharts but I when I am flowcharting or putting together a data flow I tend to use Powerpoint. It is simple enough and i know it well enough.

Dan Adams
+2  A: 

I use Dia on Linux. It's quite lightweight and is simple to use, but it doesn't automatically position elements, and I've found the interface to be a bit inhibitive at times.

There's an OS X port at dia.darwinports.com, although I've not used it.

Jim
+5  A: 

How about paper and pencil? Or a whiteboard?

Sometimes the ease and tactile feedback of physical objects is the most appropriate.

Andy Lester
Can't argue with that. It's what I currently use ;-)There are definitely some advantages to working with an app though.
Wilco
A: 

I use Microsoft Visio 2003, a tad bit of overkill with all its extra junk I don't need, but I like it's simple UI.

Jeremy Reagan
+6  A: 

take a look at graphviz.

Example:

digraph finite_state_machine {
    rankdir=LR;
    size="8,5"
    node [shape = doublecircle]; LR_0 LR_3 LR_4 LR_8;
    node [shape = circle];
    LR_0 -> LR_2 [ label = "SS(B)" ];
    LR_0 -> LR_1 [ label = "SS(S)" ];
    LR_1 -> LR_3 [ label = "S($end)" ];
    LR_2 -> LR_6 [ label = "SS(b)" ];
    LR_2 -> LR_5 [ label = "SS(a)" ];
    LR_2 -> LR_4 [ label = "S(A)" ];
    LR_5 -> LR_7 [ label = "S(b)" ];
    LR_5 -> LR_5 [ label = "S(a)" ];
    LR_6 -> LR_6 [ label = "S(b)" ];
    LR_6 -> LR_5 [ label = "S(a)" ];
    LR_7 -> LR_8 [ label = "S(b)" ];
    LR_7 -> LR_5 [ label = "S(a)" ];
    LR_8 -> LR_6 [ label = "S(b)" ];
    LR_8 -> LR_5 [ label = "S(a)" ];
}

produces:

http://www.graphviz.org/Gallery/directed/fsm.png

it is particularly well suited to be generated from programs.

A: 

I generally don't do flow charts, but do do state diagrams. I do a high level flow on a white board, then lower levels, on A3 paper.

Once it is all working correctly, I create it in Visio, which becomes part of the release documentation.

EvilTeach
A: 

For the OmniGraffle, is it good enough for its FREE version? i.e. after its 14 days trial, is it still a good choice?

I am attempting to use the yEd.

lionfly