Dia: Free Diagramming Software
This article was published by ComputorEdge, issue #2850, , as the cover article, in both their PDF edition (on pages 5-9) and their website.
There are countless reasons why you might need to create a diagram of some sort. For instance, you and your partner may be about to move into a new house, and you two want to plan the location of every large piece of furniture, so the movers can place all of the heavy items close to their final destination, so you can avoid having to shuffle them around later. In your workplace, your supervisor might task you with creating a workflow diagram, an organizational chart, or an office layout.
Regardless of the purpose of the diagram that you wish to make, there are a number of ways you could go about doing it. Dusting off your old pencil and ruler might initially seem a faster route to completion, compared to installing and learning some diagramming program on a computer. But similar to doing taxes by hand, the final result of freehand diagramming versus computer-based diagram software, is a final product that will probably not be as precise, can only be modified by erasing elements manually, can only be reproduced on a photocopier machine, and will never look as good as a diagram produced on a computer and output to a laser printer.
Diagramming applications come in all shapes and sizes (no pun intended), as well as prices. In the world of Microsoft Windows, probably the best-known diagramming application is Microsoft Visio. For many years now, Visio has been an integral part of the Microsoft Office suite of office productivity tools, including the latest edition, which includes Visio 2010. In addition to the conventional package designed to be installed and run on your local computer, there is an online version, which is part of Office Online. Even though a 60-day free trial period is offered, the Standard version costs almost $260 ($130 if upgrading from an earlier version) or, for the Professional version, almost $560 (or $350 if upgrading). If your employer is willing to spring for either one of these packages, then you may opt to use Visio or some other commercial alternative.
Diagramming for the Rest of Us
But perhaps the economic doldrums have put a squeeze on your company's budget for new software, or the given drawing project is for personal use, or is only a one-off effort, and you do not want to spend any money on new software. In this case, consider using a free program, such as Dia. (By the way, many websites that link to Dia have not updated to the new website address, and still link to Dia's old home page.)

The new home page mentions that Dia was partially inspired by Visio, "though more geared towards informal diagrams for casual use", in other words, lacking in some of the advanced features, but easier to use. For most people looking to create a typical diagram, the difficulty of using complicated software can quickly overwhelm the benefits of having advanced features available. (This is similar to the way that most people are able to meet most if not all of their document needs using a word processor as basic as Windows WordPad, and can use it to get the job finished faster than if they were required to learn and use a much more substantial word processor, such as Microsoft Word, which is loaded with features, most of which the typical user will never even need or attempt to figure out.) Unlike Visio, there is only one version of Dia, and it comes with all the basic features for generating diagrams.
The website also mentions that Dia can be utilized for building diagrams for a wide variety of purposes, including entity relationships (frequently used in software and database development), Unified Modeling Language (UML), flowcharting, and networking. Dia offers a rich palette of shapes, which can be supplemented by defining your own new shapes, using Extensible Markup Language (XML), which is similar to the HTML that lies at the heart of every Web page. Dia is a favorite among programmers for creating UML diagrams, partly because it makes it possible to add a UML component to a diagram — such as a class, a template, or an object — and then edit its properties.
The diagrams that you create using Dia are saved by default as XML files, which confers several advantages: First and foremost, XML is a completely open and well-understood markup language, quite unlike the proprietary file formats used by commercial products. Also, minor changes to a saved diagram can be made simply by editing the XML file, which is plain text. In fact, if you have any programming skills and interest, you can create scripts that read Dia files and produce code or generate Dia files from code — the sort of powerful functionality normally found in (expensive) applications dedicated to computer-aided software engineering (CASE). There is a growing user community of people who write such scripts, in order to generate C++ and database code (specifically, SQL) based upon UML diagrams in Dia files. Dia also supports the major digital image/graphics formats, including Portable Network Graphics (PNG) and Scalar Vector Graphics (SVG).
Try Before You "Buy"
To see if Dia would be suitable for your current and future drawing projects, you can try it out, in little time. To do so, click on the "Download" link on the Dia home page, and on the destination page look for the link that corresponds to your operating system. In this example, I will use "Dia for Windows". Save the installation file someplace on your computer where you can find it, and then open it up when the download is finished. The setup wizard presents to you a series of dialog screens, which should be easily intelligible. The default settings will work fine for most users, although you can disable the installation of the translations if you plan on only using English within the Dia user interface. Once the setup wizard has completed, you can begin running the program.

You may want to maximize the Dia window, in order to give yourself the largest canvas possible. At a bare minimum, you should increase the height of the window, so all of the symbols in the left-hand sidebar are displayed.
Before getting started creating any new diagrams, you may want to check the program settings, under File > Preferences.

Even though the initial settings could be adequate for most purposes, you should increase the "Recent documents list size" if you plan on creating more than five images and you want to be able to quickly reopen those images later, perhaps for modification. If you are in the United States, you probably will want to change the paper type from A4 to Legal, on the "Diagram Defaults" tab.
Underneath the menu bar, there is a horizontal row of over a dozen icons (only two of which have tooltips assigned, unfortunately). These icons duplicate actions available from the drop-down menus, and thus may see little use.
In the side panel, on the left, there is the Toolbox, which contains icons for basic objects and special objects, separated by a drop-down list. Diagrams can comprise shapes, text, digital images, and other objects. There are 16 basic objects, and you can hover your mouse pointer over each icon in order to read its tooltip, which summarizes its purpose and specifies the keyboard shortcut. The special objects displayed depend upon which sheet is currently specified in the drop-down list, which initially is set to "Flowchart". As of this writing, there are almost three dozen special sheets available, and each one can be chosen using the "Other sheets" menu item. Three of the most commonly used ones — Assorted, Flowchart, and UML — are displayed at the top of the drop-down list.
To create a new diagram, choose File > New. To add an object to the canvas, click on the object's icon in the Toolbox (or use its keyboard shortcut, if any), and then click on the desired location on the canvas, which causes the object to appear on the canvas where you clicked. To move an object, simply click and drag it. To change its size, click and drag one of its green or red handles, which look like tiny boxes connected to the object. To change an object's properties from the default values, simply double-click on it. You can even connect objects with lines, by placing a line object on the canvas, and dragging each end of the line to a desired object.
To illustrate what has been discussed so far, you can put all of this together and create a simple canvas, consisting of six object types.

To learn more about how to use Dia, first read through the online help manual (accessed using the Help menu), which is quite extensive and includes a quick-start guide, for those of us with more time demands than patience. Then, as needed, you can read the sections that go into the details of the canvas, objects, toolbox, customization, layers, and working with Dia on a command line.