When you get to show the results to others - just use whatever you are presenting the rest of the message with - almost all "office" type products have sufficient capacity to manage that part. The clever bit is the bit you do by yourself.
http://lucidchart.com has been my favorite service as it is free for simpler projects and can be upgraded if you need more complexity. I've watched the project grow from an idea, to recruiting developers in my CS classes, to a full blown project which has exceeded my expectations. It's exciting to watch!
Aside from the standard free account, there are also free Pro accounts for students who use an educational email address: https://www.lucidchart.com/pages/education/students
Sometimes I'll break out a new paper and do the initial drawings to test my knowledge of the system and see if I have complicated the design. This system works well for me.
I've also used kivio on occasion, and graphviz, and ploticus. Again, all depending on what I'm after.
Steep learning curve, but there are plenty of examples around the Internet, and it's certainly worth the investment.
Then zap it with my DSLR. Or if it needs to be published, use Dia and export SVG/png into target document.
I occasionally write out graphviz stuff from my code using a very light weight library I wrote (C struct to stdout) if I'm trying to visualise what is in memory at a point in time. This has been invaluable whilst knocking up a simple mark-sweep GC for a project I was working on.
Sequence diagram: http://sdedit.sourceforge.net/
Also for the corporate world where only Microsoft tools are an option, I tend to just use MS Word, you can make diagrams that are good enough to get the message across, yet everybody has access to it without requiring a special license.
- Dia
- Microsoft Visio (when available, makes nicer diagrams than above, but sucks at anything software modeling related)
- Enterprise Architect is supposedly the standard for the enterprise corp I work for.
I'll add any new ones that are included in the comments here.
It's good for quick diagrams when you need to explain some of the more bizarre architectural choices in your system.
http://www.tentouchapps.com/grafio
It makes good looking diagrams very quickly without hampering creativity. It requires almost no effort on formatting and beautification.
I wish they had an app for the desktop. People have requested the same on their forums a few times.
But diagrams can be very helpful. The important thing to remember is that "a complete map" will be too noisy to be useful.
A diagram can describe a few parts of a complex system quickly and easily.
yUML for auto-generated diagrams or where I need something more pretty.
Sometimes a notepad + iPhone camera to capture meeting/whiteboard diagrams.
- you can resize vertically and horizontally independently which grafio can not
- you can move vertices of any polygon.
- You can draw bezier curve and modify it to any shape by changing the control points.
-Lekh recognizes different kinds of connections from your drawing.
Thanks!
I'm working on a tool to parse Objective-C into yUML at the moment- https://github.com/darkFunction/DFGrok