Перейти к содержанию

UML — язык визуального моделирования

UML (Unified Modeling Language) — это стандартный язык визуализации, моделирования и документирования программных систем. Он помогает аналитикам, архитекторам, разработчикам и тестировщикам наглядно представлять архитектуру, поведение и структуру системы.


Зачем нужен UML?

  • Упрощает коммуникацию между участниками проекта
  • Позволяет моделировать требования, поведение, архитектуру
  • Используется как документация к системе
  • Помогает анализировать и проектировать до начала кодирования

Типы UML-диаграмм

UML делится на два основных типа диаграмм:

Тип Назначение Примеры
Структурные Отражают статическую структуру Классы, компоненты, объекты
Поведенческие Показывают динамику и логику Последовательности, активности, состояния

Самые популярные диаграммы UML

1. Диаграмма прецедентов (Use Case Diagram)

Что показывает:
Как пользователи (акторы) взаимодействуют с системой через сценарии (прецеденты).

Используется для:
- Анализа требований
- Коммуникации с заказчиком
- Описания бизнес-процессов

Элементы:
- Акторы (человеки или системы)
- Прецеденты (овалы)
- Связи (включение, расширение)

Пример:
Пользователь → "Оформить заказ", "Оплатить заказ"


2. Диаграмма классов (Class Diagram)

Что показывает:
Статическую структуру системы — классы, их атрибуты, методы и связи между ними.

Используется для:
- Проектирования архитектуры
- Моделирования объектов и БД
- Работа с ООП

Элементы:
- Классы (прямоугольники с 3 секциями)
- Связи (наследование, агрегация, композиция, ассоциация)

Пример:
User наследует от Person, Order имеет ссылку на Product


3. Диаграмма последовательностей (Sequence Diagram)

Что показывает:
Порядок взаимодействия объектов во времени в рамках одного сценария.

Используется для:
- Описания логики бизнес-процессов
- Проектирования API и микросервисов
- Тестирования

Элементы:
- Объекты (вверху)
- Жизни линий (вертикальные линии)
- Сообщения (стрелки с вызовами/ответами)

Пример:
Пользователь → Сервис авторизации → Сервис базы данных → Результат


4. Диаграмма активности (Activity Diagram)

Что показывает:
Алгоритм работы, последовательность действий, ветвления и условия.

Используется для:
- Моделирования бизнес-процессов
- Разработки алгоритмов
- Тест-кейсов

Элементы:
- Действия (прямоугольники с закруглёнными углами)
- Потоки управления (стрелки)
- Условия (ромбы)

Пример:
"Заполнить форму" → [если email валиден] → "Отправить" → "Показать результат"


5. Диаграмма компонентов (Component Diagram)

Что показывает:
Как программные компоненты связаны друг с другом.

Используется для:
- Архитектуры микросервисов
- Интеграционных решений

Элементы:
- Компоненты (пакеты)
- Интерфейсы (порт или "розетка")
- Зависимости


Дополнительные диаграммы

Диаграмма Описание
Диаграмма объектов Конкретные экземпляры классов и их связи
Диаграмма состояний Жизненный цикл объекта, его переходы состояний
Диаграмма развертывания Инфраструктура: серверы, узлы, процессы
Диаграмма коммуникации Альтернатива sequence-diagram, но с фокусом на структуру

Рекомендации по использованию

  • Используйте Use Case на начальных этапах для общения с заказчиком
  • Применяйте Activity Diagram для описания логики бизнес-процессов
  • Используйте Class Diagram на этапе проектирования архитектуры
  • Sequence Diagram — отлична для разбора API, интеграций и логики
  • Не перегружайте диаграммы — делайте по одной цели на диаграмму

Инструменты для создания UML

Инструмент Особенности
draw.io Бесплатный, онлайн, шаблоны UML
StarUML Настольный, поддержка всех видов UML
PlantUML Генерация диаграмм через текст
Lucidchart Онлайн, удобный интерфейс
Visual Paradigm Профессиональный, поддержка BPMN и UML

Полезные ресурсы

Дополнительные материалы: