UML is a graphic language with all of its elements represented by graphic items. Some of these items have text associated with them to amplify, clarify or modify their intent. But the basic element is the language, its symbols and symbol fragments such as shapes, lines, arrows and the like. These symbols by themselves have little meaning taken individually, but when placed in context with others, they become very clear to the user.


There are two basic units in UML: concepts and relationships. Concepts are typically depicted as solid rectangles or in other shapes and are labeled with a text name. These concepts may refer to parts of a business unit, or a list of requirements, of a set of users, or any number of things including system resources. These concepts are typically nouns and should correspond pretty closely with the nouns mentioned in a project scope document.


Relationships between concepts are shown (in UML) as lines connecting those concepts. These lines may also be labeled to clarify, describe, or amplify that relationship. These relationships describe verbs and usually correspond well to verbs in the project document. Relationships might include such things as notifying, looking-up, verifying, reporting and directing.

Correlation to Object Oriented Programming (OOP) Classes

In the real world and in models of the real world, the concepts just described in UML are represented by classes. And the relationships between those classes are knows as associations. Specific instances of those classes are known as objects and specific relationships are known as links.

There is a specific format for labeling classes and instances of classes that is prevalent throughout UML known as the type-instance dichotomy. We’ll show this formal notation immediately following the introduction of three more items.

Anything that describes an object or something that an object knows or possesses it called an attribute. Attributes may be defined and initiated in a UML class diagram. And anything that an object can do is called an operation or a specification. How an object performs those operations is through the class’s methods or implementation. A program designer will define functions within the class to perform the operations required of objects belonging to that class.

Communication between objects is necessary to transfer information or to initiate processing. The communication of a request is called an event. The message sender is called a client, and the receiver is called a server or supplier. Communication between objects is called a stimulus. Communications between classes is called a message. Remember that classes are a blueprint and objects are specific instances of their underlying classes.


This article provides a general overview of UML.

This resource provides insightful information on OMG and UML relationship.

This article provides practical introduction on UML to developers.