Какие существуют типы диаграмм?
В UML 2.5 определено 14 типов диаграмм, которые делятся на две большие группы: структурные (описывают статическую архитектуру системы) и диаграммы поведения (описывают динамику — как система работает во времени).
Структурные диаграммы
Показывают «из чего состоит» система — классы, объекты, компоненты, пакеты и их связи.
| Диаграмма | Что описывает | Когда используется |
|---|---|---|
| Классов (Class) | Классы, атрибуты, методы и связи между ними | Проектирование доменной модели, описание API |
| Объектов (Object) | Снимок экземпляров классов в конкретный момент времени | Демонстрация конкретного состояния системы |
| Компонентов (Component) | Модули, библиотеки, сервисы и зависимости между ними | Архитектура микросервисов, модульная структура |
| Развёртывания (Deployment) | Узлы (серверы, контейнеры) и размещённые на них артефакты | Описание инфраструктуры, DevOps-документация |
| Пакетов (Package) | Группировка элементов по логическим пакетам | Организация крупных систем, границы модулей |
| Профилей (Profile) | Расширение стандартных элементов UML стереотипами | Адаптация UML под конкретную предметную область |
| Композитной структуры (Composite Structure) | Внутреннее устройство класса и взаимодействие его частей | Описание сложных классов с внутренними компонентами |
Отдельно выделяют диаграмму кооперации (Collaboration) — подвид композитной структуры, показывающий роли и взаимодействие классов в рамках кооперации.
Диаграммы поведения
Показывают «как работает» система — потоки управления, состояния, взаимодействия.
| Диаграмма | Что описывает | Когда используется |
|---|---|---|
| Деятельности (Activity) | Последовательные и параллельные потоки действий | Бизнес-процессы, алгоритмы, workflow |
| Состояний (State Machine) | Состояния объекта и переходы между ними по событиям | Жизненный цикл заказа, статусы задачи |
| Вариантов использования (Use Case) | Актёры и функции системы с их точки зрения | Сбор требований, обсуждение с заказчиком |
Диаграммы взаимодействия (подвид диаграмм поведения)
| Диаграмма | Что описывает | Когда используется |
|---|---|---|
| Последовательности (Sequence) | Обмен сообщениями между объектами во времени | Сценарии API-вызовов, отладка взаимодействий |
| Коммуникации (Communication) | Связи между объектами с нумерацией вызовов | Акцент на структуре связей, а не на времени |
| Обзора взаимодействия (Interaction Overview) | Комбинация Activity и Sequence диаграмм | Сложные сценарии с ветвлениями |
| Синхронизации (Timing) | Изменение состояний на временной шкале | Системы реального времени, протоколы |
Какие диаграммы используют чаще всего
На практике в Java-разработке наиболее востребованы: Class diagram (доменная модель, структура пакетов), Sequence diagram (сценарии взаимодействия сервисов), Activity diagram (бизнес-процессы) и Use Case diagram (функциональные требования). Остальные диаграммы применяются в специфических контекстах — например, State Machine для описания жизненного цикла сущностей со сложной логикой переходов.
На собеседовании: не нужно заучивать все 14 типов. Интервьюер ожидает, что вы уверенно назовёте деление на структурные и поведенческие, перечислите 4–5 основных диаграмм и расскажете, в каких ситуациях применяли их на практике. Бонус — упомянуть Sequence diagram как самую популярную для документирования API-взаимодействий.