CLOSE

UML (Unified Modeling Language) provides 14 standard diagram types divided into two main categories: Structural Diagrams (static structure) and Behavioral Diagrams (dynamic behavior).

1 Structural UML Diagrams (Static View)

These diagrams show the static structure (architecture) of the system – classes, objects, components, and how they relate to one another.

Structural DiagramDescription
1.1 Class DiagramRepresents classes, interfaces, and relationships (associations, inheritance, etc.). Most common in OOP.
1.2 Object DiagramSnapshot of objects (instances) and their relationships at a point in time.
1.3 Component DiagramDescribes high-level components (e.g., services, modules) and their dependencies.
1.4 Composite Structure DiagramShows internal structure of a class and how its parts interact.
1.5 Package DiagramGroups classes into packages and shows dependencies between them.
1.6 Deployment DiagramShows hardware nodes and software components deployed on them. Used for system architecture.
1.7 Profile DiagramExtends UML by defining custom stereotypes, tagged values, and constraints. Useful in domain-specific modeling.

2 Behavioral UML Diagrams (Dynamic View)

These focus on the dynamic behavior of the system – interactions, workflows, and activities.

Behavioral DiagramDescription
2.1 Use Case DiagramShows actors (users or systems) and their interactions with system use cases. Great for requirements gathering.
2.2 Sequence DiagramModels the order of message exchanges between objects. Good for detailing method calls and object interactions.
2.3 Activity DiagramRepresents workflows of step-by-step activities and decisions. Similar to flowcharts.
2.4 State Machine DiagramDepicts state changes in response to events. Useful for reactive systems.
2.5 Communication DiagramSimilar to sequence diagram, but focuses on object links and messages exchanged.
2.6 Interaction Overview DiagramHigh-level view combining sequence and activity diagrams. Shows control flow between interactions.
2.7 Timing DiagramEmphasizes timing constraints and duration of messages. Often used in real-time systems.