UML (Unified Modeling Language) is a standardized modeling language used to visualize, specify, construct, and document artifacts of a software system. It provides a common language for describing systems across different stakeholders. UML includes graphical notations for various modeling elements like classes, interfaces, use cases, etc. and relationships between them. It also defines rules and mechanisms like stereotypes and tagged values to extend the language for domain-specific needs. UML models can represent different views of a system like use case, design, process, implementation and deployment views.