Dia is free software/open source general-purpose diagramming software, developed as part of the GNOME project's office suite and was originally created by Alexander Larsson. Dia uses a controlled single document interface (CSDI) similar to GIMP and Sodipodi.
Dia has a modular design with several shape packages available for different needs: flowchart, network diagrams, circuit diagrams, etc. It does not restrict symbols and connectors from various categories from being placed together.
Dia can be used to draw many different kinds of diagrams. It currently has special objects to help draw entity-relationship models (tedia2sql can be used to create the SQL DDL), UML diagrams, flowcharts, network diagrams, and simple electrical circuits. It is also possible to add support for new shapes by writing simple XML files, using a subset of SVG (Scalable Vector Graphics) to draw the shape.
Dia loads and saves diagrams to a custom XML format (gzipped by default, to save space) and can print diagrams including very large diagrams that span multiple pages. It can also be scripted using the Python programming language.