This document provides an overview of the Unified Modeling Language (UML) including its motivations, types of diagrams, syntax, and tools. UML is a standardized modeling language used to communicate software design through visual models. It allows specification of user interactions, system responsibilities, data flow, and more. Common UML diagram types include use case diagrams, class diagrams, sequence diagrams, and state diagrams. Each diagram type has a specific notation and purpose in modeling different aspects of a software system.