A graphical language for the specification, documentation, and visualization of the designs of object-oriented (OO) software systems (see object-oriented language). Because of its close ties with object-oriented methods such as OMT, UML has often been confused with a method itself; but this is not the case. UML provides only notations and diagrams for modelling aspects of a system, each of which has a specified semantics. No single diagram represents the whole UML model (i.e. the model obtained after applying the UML language).
It is common to divide the diagrams provided by UML into two classes: structural diagrams and behavioural diagrams. Structural diagrams are concerned with the static architecture of a model (or system), i.e. the elements that constitute the model (classes, objects, methods) and their relationships. The followings are structural diagrams:
Behavioural diagrams, on the other hand, are concerned with the dynamic behaviour of the system, i.e. its possible execution states over time. Behavioural diagrams include:
The last four are commonly classified as interaction diagrams. UML was originally standardized by the OMG and was later adopted as an ISO standard. The diagrams cited above can all be found in the latest version of UML (UML 2.4.x); they are not necessarily present in earlier versions of UML.