UML is a standard language for visualizing, specifying, and documenting software systems. It was created by the Object Management Group in 1997. UML can be used to model both software and non-software systems through diagrams and allows for generating code from models. The document then discusses UML's relationship to object-oriented concepts, analysis and design processes, and its building blocks including things like classes, interfaces, use cases, and interactions.