There are two main categories of UML diagrams: structural diagrams and behavioral diagrams. Structural diagrams depict the static aspects of a system and include class, object, deployment, and component diagrams. Class diagrams show classes, attributes, methods, and relationships, while object diagrams emphasize object attributes and relationships. Deployment diagrams focus on component topology and component diagrams on component relationships. Behavioral diagrams illustrate dynamic aspects and change with conditions. They include use case diagrams for actors, use cases, and relationships; sequence diagrams for event sequences; collaboration diagrams for communication (similar to sequence diagrams); statechart diagrams for system responses to factors; and activity diagrams for system workflow.