views:

530

answers:

5

I was just wondering how many experienced programers out there actually map out their process or algorithms in a program like MS Visio or Gnome Dia?

I am trying to code some complex PHP for my website and just seem to be missing something. Is a diagram program going to help or should I be looking in another area?

+1  A: 

Everytime I've tried to make a truly usage diagram in Visio, it always ends up being more work than it's worth. Never underestimate the power of pencil & paper, or better yet, a white board.

But yes, explaining or writing out your problems will more quickly lead to a solution than merely sitting there and thinking about it.

TravisO
+1  A: 

I use Visio only for quick graph that doesn't need to follow UML rules. Sometime useful for documentation that aren't about the detail of the code : if you need to show some high abstract view of your code, Visio do the job, Example, documentation that display how each big part communicate, or a simple activity diagram...

You can find a SO list of free UML editor if you require to do intensive UML design.

Daok
A: 

When I want to make a sketch with 3 boxes and a handful of arrows I use graphviz. I hate graphical stuff where you have to realign everything each time you change a name.

It's (nearly) as simple as writing :

Input -> Frobnicator -> Output

in a text file then run "dot -Tpng -O myfile"

give it a try ...

but be warned that graphical representation just work for very high level views (i.e. with few objects)

siukurnin
+1  A: 

OmniGraffle. Class diagrams. Sequence diagrams. Interaction diagrams. 'Nuff said.

joel.neely
A: 

I use magicdraw to chart out my use cases (so my team and I understand the features needed exactly) and then I do activity charts and class diagrams for the more complex features. You can also do database architecture in there and have it generate the sql for your (a god send if you're database is huge). Magicdraw isn't free however but if you anticipate doing a fair amount of complex projects it might be worth the investment. Outside of going the diagramming route you can look into using a PHP framework that might take care of some stuff for e.g. Zend Framework, or Code Ignitor

Akeem