UML (Unified Modeling Language) is a standard modeling language used to visualize, specify, construct, and document software systems. It includes standard graphical notations for modeling classes, objects, interactions, use cases, and other aspects of software design. The UML metamodel defines the building blocks of UML through a library of classes that describe all UML elements. UML is commonly used for documentation, specifications, and agile processes like SCRUM. Popular tools for working with UML include Enterprise Architect, BoUML, LucidChart, and online tools like Genmymodel.org. Certification is available at fundamental, intermediate, and advanced levels.