Skip to content

Unified Modeling Language (UML)

UML stands for Unified Modeling Language. It began when Grady Booch and James Rumbaugh merged their separate models into one unified model. The Object Management Group (OMG) then took ownership of it.

Versions. UML 2.0 was a major revision in 2005. It replaced version 1.5. Version 2.5 was formally released in 2015. Version 2.5.1 was adopted in December 2017.

The 2.5 rewrite. The UML 2.5 specification was rewritten to be easier to read. The authors removed redundancy and made the text clearer. The metamodel stayed largely unchanged. (The metamodel is the model that defines UML’s own elements.)

Diagram kinds. UML 2 defines 14 kinds of diagrams. They fall into two groups:

  • Structure diagrams show what a system consists of. See UML Structure Diagram.
  • Behavior diagrams show what a system does. See UML Behavioral Diagram.

The article UML 2.5 Diagram Taxonomy shows how the 14 kinds are arranged.

Not a method. UML is a language, not a method. It is designed for use with many object-oriented development methods. You need a method to decide what to model and how. See Modeling Method.

Executable subset. fUML is a subset of UML. It has precisely defined execution semantics. Semantics means the exact meaning of the elements.

A team builds an online shop. It draws one structure diagram showing the main parts: catalog, cart and payment. It draws one behavior diagram showing how an order moves through the system. Both diagrams use the same language, so any reader who knows UML can follow them.

People have criticized UML as ambiguous, inconsistent and large. It has also been treated, at times, as a design silver bullet, which leads to problems. Use it as one tool among others. See Barriers to UML Adoption and UML Modeling Anti-Pattern.

UML 2 splits its 14 diagram kinds into structure and behavior diagrams.

Diagram source
flowchart TD
UML[UML 2: 14 diagram kinds] --> S[Structure diagrams]
UML --> B[Behavior diagrams]
  • The document states which development method the UML diagrams are used with, because UML itself is not a method.
  • Each UML diagram is identifiable as a structure diagram or a behavior diagram.