UML (Unified Modeling Language) is a standard language for modeling software systems using mainly graphical notations. There are two main categories of UML diagrams - structural diagrams that show static elements regardless of time, and behavioral diagrams that depict dynamic features over time. Some key UML diagram types are class diagrams, which show system classes and relationships; component diagrams, which depict component dependencies; and use case diagrams, which describe interactions from an external perspective.