UML is a standard language used to specify, visualize, and document software systems. It was created by the Object Management Group in 1997. UML uses diagrams and notations to model different aspects of a software system, including its structure, behavior, and architecture. It helps with object-oriented analysis and design by allowing developers to model systems in a visual way before and during implementation. The document provides an overview of UML, its goals, basic concepts, modeling types, building blocks like classes and relationships, and common notations.