Software I've found that I think is particularly useful or interesting.

Use any software mentioned here at your own risk.

CFS Home



Have you got a favorite freeware title that I haven't reviewed? Send me feedback and let me know about it.

5/16/2004: Dia [>> Go]

    Dia is a handy little program for creating diagrams and flowcharts. It's easier to use (and less expensive) than commercial products like AllClear or Microsoft Visio, but it also lacks a lot of the features and polish of software you'd pay for. The fact that Dia still hasn't reached a version the developers are willing to call "1.0" is an indication of the software's current state of development, but I think that it still gives you a reasonable amount of functionality for the price.

    Flowcharting software is used to draw charts to help organize some collection of information - steps in a process/activity, rules for making decisions, objects in a collection (such as software components or classes/objects), organization charts, or just about anything else that has things that are related to other things. Flowcharting software lets you identify the basic objects (steps, people, etc.) and visually establish the relationships between them. It also helps if the software allows you to visually distinguish the basic objects as well, using differently shaped or colored icons to represent different types of objects. Fortunately, Dia lets you do all of this, which makes it a capable flowcharting/diagramming program.

    The link up above is to the actual Dia software site; but if you run Windows, you should start at the Dia Win32 Installer site to get a pre-compiled version of Dia and its related DLLs. Installation is pretty straightforward, though on my Windows 98 computer it won't create any icons in my Start menu (installation on Windows 2000 works fine).

    The first thing you notice when you run Dia for the first time is that it doesn't follow the same user interface rules as most Windows software. Dia's Unix/Linux heritage is pretty obvious in the way that the screens are laid out, how you access properties and menus, and even the look and behavior of things like drop-down lists and checkboxes. Rather than having menus (like "File" and "Edit") that run across the top of the document, you right-click in the document to pull up the menu that lets you save, print, change the properties of the selected object, and etc. There's also the funky File Open dialog box, which I find much harder to use than the standard Windows screen to do the same thing. I am by no means faulting the Unix-style user interface (The GIMP is another program I've reviewed that uses this interface), but it makes Dia a little more difficult to use for people used to working in Windows.

    The "canvas" area, shown in the picture above, is where you lay out your diagram by selecting shapes from the main menu and dropping them into the document area. Then you can select lines (straight, curved, arced) to connect the shapes. Shapes have evenly-spaced connection points around their perimeter, and if you connect one end of a line to it, you can move the shape and the line will stay connected to it. You can vary the style (solid, dashed, etc.) and color of the lines, as well as the symbol at the beginning or end (triangle, arrow, crows-foot, circle, etc.); for shapes, you can change their size, color, font, and border style, as well as their text (note that not all shapes have an inherent text area; for those, you have to add the object, then add a Text object on top, then group them together so that they can be moved around as one object). Dia has 4 general shapes (square, circle, polygon, rounded polygon) and a dozen groups of related shapes (UML diagramming, network topology, general flowchart, jigsaw puzzle shapes, circuit diagram shapes, etc.) that you can select and drop onto your diagram. There is no good documentation about creating your own shapes, but there are hints that it can be done (you can start here). Dia also supports multiple layers within a single diagram/canvas, which can help you better organize your information (though shapes on different layers can't be grouped or connected by lines; you can draw a line from one object to another, but they won't be physically linked). Diagrams can be saved in native Dia format (for future editing), or exported to formats like JPG, EPS, SVG, and others.

    Things I don't like about Dia include the user interface, which as I said may be difficult for Windows users to get used to, and I've experienced problems getting Dia to print dashed lines (which you often need to use to differentiate lines when printing to a laser printer; color printing works fine, though). It also runs fairly slowly on my 500 mHz Pentium 3 computer (with Windows 98). But since Dia is being actively developed, fixes to these problems could happen at any time.

    The Dia Website has a decent amount of documentation (in addition to a help file in Dia itself and a PDF version that is installed into the Dia/Doc/En folder). There is also a Dia e-mail list (list archives are here) where users of Dia can communicate with each other.

    I think that Dia is a handy little program for what it does. It doesn't have the depth or breadth of options and abilities that commercial diagramming software might have, but most of us don't need that level of complexity anyway. I've used Dia for diagramming information flow in a software application and database table relationships, but it's certainly not a program I use every day. But it beats trying to draw out a similar diagram in Word or Photoshop, and hopefully Dia will only continue to get better as time goes on.

©2019 Tyler Chambers