tags:

views:

496

answers:

13

In all of the slides and doumentation for new APIs, design concepts, and models I see some nice graphics used to represent them.

EDIT: Here is a sample of the kind of diagram I would like to produce.

In the past I have used Visio, Word, PowerPoint, but I never seem to like working with them or be able to produce the same kind of beautiful output that I see others use.

What tools have you found or do you think that Word is sufficient? Do you have any tips that might help out?

EDIT: I'm more interested in the output and not being able to use this as a modeling tool to produce code. I want to use it to explain concepts of a design to non technical or semi technical people.

A: 

Take a look at Enterprise Architect 7.5 from Sparx Systems it covers a wide range of diagrams and is quite reasonably priced. I have used it for many years.

Werg38
+1  A: 

I prefer to keep things simple by using Visio. It might not be that pretty, but it is clean and usable.

Getting caught up in the visual aspect of things can distract you from concentrating on the purpose of what you are trying to achieve.

Techboy
+1  A: 

you could try:

  • graphviz a well supported and very nice tool. It can be used programatically using various languages; don't miss the example gallery
  • inkscape for more "artistic" works

both works well under windows/mac/linux and with SVG

my 0.02$

dfa
A: 

There are some nice tools to build mental maps that could help you. Try yEd for instance, it's free and pretty straightforward. I can run o any platform that supports java.

facildelembrar
A: 

Omnigraffle is awesome for such work. FAR nicer than Visio. But AFAIK only available on Macs. Imports/exports visio directly.

Brad Cox
A: 
JRL
A: 

Try StarUML it certailnly rocks!!!

backslash17
A: 

For drawing all kinds of graphs, I use Visual Paradigm. Usability is nice and it produces goodlooking results.

eteubert
A: 

Since you didn't specify the medium of use or delivery, I've always found white board diagrams to be the most effective at getting concepts across. They are quite cheap, with no licencing costs, and are highly flexible.

cdeszaq
A: 

I agree with your concern. The challenge is to maximize the amount of time you can spend thinking through and visualling your problem, and minimizing the amount of time you spend figuring out and micro- (or macro-) adjusting the tool. I always find myself spending far too much time thinking about the tool.

Visio is popular for the reason that there are a lot of preconstructed pieces, but it can get to be overwhelming pretty quickly, particularly if you try to use the semantic pieces (i.e. are more than just a connectible element); you end up needing to understand the implications and restrictions of the semantic model you are (perhaps unintentionally) building.

(In particular, I wouldn't use something with the name "UML" on it unless I intentionally wanted to develop UML diagrams, with all that implies.)

Same thing for database diagrams. If you understand ERD and the relational model and your goal is a picture of a coherent database design, then those tools are the right answer. But they quickly get beyond the point where non-database people have a clue.

I'd start with paper diagrams that you think are good representations of something you want to explain. Then take the candidate tools and see how quickly and easily you can duplicate what's on paper, accurately, completely, and pleasingly. (Doing it this way might also make some of your bad examples, including e.g. visio, more palatable.)

The other suggestion would be to take some of the examples you describe and compare your work to, and try to discover how they were created.

le dorfier
[i]The other suggestion would be to take some of the examples you describe and compare your work to, and try to discover how they were created.[/i] This is exactly what I am trying to find the answer to. Many of the microsoft marketing slides have very nice visuals. I assume Word or Powerpoint were used but I'm not sure.
Robert Kozak
A: 

With a little practice MSPaint can be pretty useful. It helps to get good at zooming to turn on and off individual pixels. In a pinch I can usually make whatever I want with it. Go ahead. Laugh.

Aaron Watters
A: 

I've always found that Visio does what I need it to do

Peter Mourfield
+2  A: 

I'm going to volunteer that the example diagram you've linked to was made in either Maya, 3DStudio or Photoshop. (For one thing it has the photoshop-style transparent background (the grey and white squares))

Thing is, there is no program that can produce visually pleasing graphics to display conceptual listings for code or system diagrams, etc., as to do this automatically is such a mammoth task that no one company can create something that would please every customer, and so it would not be a viable product.

If you want professional-looking diagrams to use in presentations to clients or stockholders, scribble the diagrams on a piece of paper with your favourite biro, then pay a good graphic designer to make them look nice.

If they're just for internal use, say to explain or emphasise a particular concept to a fellow coder, just use something quick and nasty like Word, Visio or Dia.

Ed Woodcock
I saw some great output from PowerPoint. I may just use that and cut and paste into Paint.
Robert Kozak