What the Unified Modeling Language (UML) Is and Isn't

We can summarize those two points by saying that UML is concerned with description, and not with process.

A Brief History of UML and the "Three Amigos"

Various Views of a System

Some of the Major UML Diagrams (in alphabetical order)

More on UML Class Diagrams in Particular and How They Represent Class Relationships

If if you are not working in a "software production environment" and making day-to-day use of UML, it may still be very helpful to employ one or more of the above diagrams to assist your own understanding of the software you are developing and enable you to better discuss the development and any problems that arise with others. Of particular use by almost anyone working with object-oriented (or just object-based) code is the Class Diagram, so here are some further details about those:

The different possible multiplicities (the number of things involved in a relationship) and their symbols, are summarized in the following table:

Symbol Meaning
1 Exactly 1
4, 7, 9 Exactly 4, exactly 7, or exactly 9
0..1 Zero or one
3..7 A value in the range from 3 to 7, inclusive
* Zero or more (an unlimited number)
0..* Same as above
1..* One or more

Microsoft Visio

Microsoft Visio is one of many tools that can be used to draw UML diagrams. Any of the diagrams mentioned above can be drawn using this tool, along with lines, arrows, multiplicities, and other features to help us understand the relationships between the entities in these diagrams. There is also a free MS Visio viewer that can be downloaded and installed from Microsoft's site. It cannot produce Visio diagrams but it can view diagrams that have been produced with the full program.