UML is a standard modeling language used to specify, visualize, and document software systems. It uses mainly graphical notations to model object-oriented systems. There are several types of UML diagrams used to model different aspects of a system, including structural diagrams like class diagrams, behavioral diagrams like sequence diagrams, and architectural diagrams. Common UML diagrams include use case diagrams, class diagrams, sequence diagrams, and state diagrams.