Just as the saying stands: "Reduce everything to its essence so that form harmonizes with function", graphical diagramming notations have considerably helped for better communication and understanding in Software Development.
A diagram can help us better express our ideas about Software Design without putting textual explanations. It's already confirmed that human brain better processes images than texts. That's why graphical representation through diagrams is quite effective to communicate and express our ideas either for a Software System or a Business Process.
In the past there were quite some modelling languages out there, and each of them had it's set of diagrams to express Software Systems or Business Processes. But, there was a need for a standardized modelling language to avoid polarization within the Software Design sphere, hence where we get UML which stands for Unified Modelling Language, which is one of standard modelling languages for Software Development. In addition, UML is composed of 9 diagrams:
They are divided into two main groups: Structure Diagrams and Behavior Diagrams. Just as the name implies the Structure Diagrams are used for defining the actual structure of the system and is composed of: Class, Object, Package, Component, Composite Structure, Deployment, and Profile Diagrams. While, the behaviour diagrams tries to capture the relationship between various parts of the system plus the relationship with the actors/ end users and in this category of diagrams fall the: Use Case, Activity, State Machine, and Interaction Diagrams.
UML diagrams can be drawn with free-hand or there are available software tools that can help you to model the System. There are paid software tools as well as free software tools. From Free Software Tools the one which caught my eye was UMLet which is Java based (in order to run it you need to install Java). UMLet was created by professors from Vienna University of Technology.
Their aim was to create a free, open source UML tool which has a simple user interface, to draw the diagrams fast and as well as producing diagrams from plain text, to export them to various file extensions like pdf,jpg,svg. There is also a UMLet plugin for Eclipse IDE which works in a seamless fashion.
As far as user interface is concerned i am a big fan of UMLet. It has a clean, easy and very effective user interface which allows you to create diagrams straight away and fast. Well, things doesn't stop there. UMLet allows you create custom elements that you think they can help you in expressing your ideas. On the other hand it has a support for the following diagrams: class diagrams, use case diagrams, sequence diagrams, state diagrams, deployment diagrams, activity diagrams.
Finally, UMLet is not intended for professional use rather it helps students learn about Unified Modelling Language (UML). But, i really enjoy working with it hence why i often use it when i have to draw diagrams for a Software System. In one of my previous topics here i have drawn a Digital Library System using UMLet.
Enter at the official website of UMLet
and give it a try either as a Eclipse plugin or as a standalone package. Enjoy it!