Unified Modeling Language (UML)
Discussion
The Unified Modeling Language (UML) is a general-purpose modeling language developed and maintained by the Object Management Group (OMG). UML provides formally defined constructs and graphical notations for representing the structure and behavior of systems, particularly software-intensive systems.
UML supports the representation of concerns such as:
-
Classes and objects
-
Components
-
Interfaces
-
Activities
-
Interactions
-
State machines
-
Use cases
-
Deployments
-
Packages
-
Relationships among model elements
UML defines a modeling language rather than a software development method, an implementation platform, a programming language, or a tool. Development methods and modeling practices may use UML while imposing additional conventions, processes, and constraints.
UML also provides a foundation for profiles that specialize the language for particular domains or purposes. SysML v1 was defined as a UML profile with additional systems-engineering constructs and restrictions. SysML v2 no longer depends on UML in the same manner.
Definition
General-purpose modeling language for representing the structure and behavior of systems.
Source
-
Object Management Group, Unified Modeling Language version 2.5.1, https://www.omg.org/spec/UML/2.5.1/
-
ISO/IEC 19505, Information technology — Object Management Group Unified Modeling Language
Note
A diagram that uses boxes, lines, and arrows does not necessarily constitute a UML model. A UML model uses constructs whose syntax and meaning conform to the UML specification.
UML does not prescribe a specific development process, programming language, runtime platform, or implementation architecture.
Example
A software architect may use a UML component diagram to represent software components and their provided and required interfaces, and use an activity diagram to represent the flow of behavior among those components.
© 2026 Dido Solutions, Inc. and Jackrabbit Consulting, Inc.