UML – унифицированный язык моделирования¶
Описание¶
UML (Unified Modeling Language) – графический язык для визуализации, спецификации и документирования программных систем. Создан в 1990-х годах объединением методов Г. Буча, Дж. Рамбо и А. Джекобсона, с 1997 года развивается консорциумом OMG; актуальная версия – UML 2.5.1 (2017) [15], соответствует стандарту ISO/IEC 19505.
UML 2.5 определяет 14 видов диаграмм, разделённых на структурные (классов, компонентов, развёртывания, объектов, пакетов, композитной структуры, профилей) и поведенческие (деятельности, прецедентов, состояний, а также диаграммы взаимодействия – последовательности, коммуникации, обзора взаимодействия, временная) [2].
Для бизнес-процессов чаще всего используются диаграмма деятельности (поток действий с разделами-исполнителями), диаграмма последовательности (обмен сообщениями во времени) и диаграмма состояний (жизненный цикл объекта, например заказа).
Когда применять: переход от описания процесса к проектированию программной системы, общение аналитиков и разработчиков.
Ограничения: избыточен для бизнес-пользователей; бизнес-семантика (события, документы, таймеры) выражается менее явно, чем в BPMN.
Элементы нотации (диаграмма деятельности)¶
| Элемент | Обозначение | Назначение |
|---|---|---|
| Начальный узел | закрашенный круг | начало потока |
| Конечный узел деятельности | круг с точкой внутри | завершение всей деятельности |
| Действие | скруглённый прямоугольник | выполняемый шаг |
| Узел решения / слияния | ромб | ветвление по условию в квадратных скобках и слияние ветвей |
| Разветвитель / соединитель | толстая черта | начало и синхронизация параллельных потоков |
| Раздел (swimlane) | полоса | исполнитель действий |
| Объектный узел | прямоугольник | объект или документ, передаваемый между действиями |
Правила составления¶
- Одна диаграмма описывает одну деятельность и имеет начальный узел [17].
- Условия на выходах узла решения записываются в квадратных скобках и взаимно исключают друг друга.
- Параллельные ветви, открытые разветвителем, закрываются соединителем.
- Разделы используются, если важно, кто выполняет действие.
- Выбирается тот вид диаграммы, который отвечает на вопрос: поток действий – деятельность, обмен сообщениями – последовательность, жизненный цикл объекта – состояния.
Примеры¶
Все элементы из таблицы: разделы «Клиент – Менеджер – Склад», объектный узел «Заявка», решения с условиями, слияние, параллельная работа склада и два конечных узла.
sequenceDiagram
actor К as Клиент
participant Б as Telegram-бот
participant З as Сервис «Заказы»
actor М as Менеджер
К->>Б: Новая заявка (город, груз, вес, дата)
Б->>З: Рассчитать стоимость и срок
З-->>Б: Стоимость, ETA
Б-->>К: Предварительный расчёт
К->>Б: Отправить заявку
Б->>З: Создать заказ (status = new)
З-->>М: Уведомление о новой заявке
alt заявка корректна
М->>З: Подтвердить
З-->>К: Договор-счёт
else данных недостаточно
М->>З: Вернуть на уточнение
З-->>К: Запрос уточнения
end
stateDiagram-v2
state "Новый" as New
state "На уточнении" as Clarify
state "Ожидает оплаты" as Confirmed
state "Отменён" as Cancelled
state "В пути" as Transit
state "Задержан" as Delayed
state "Доставлен" as Delivered
state "Принят" as Accepted
state "Претензия" as Claim
state "Закрыт" as Closed
[*] --> New
New --> Clarify: данных недостаточно
Clarify --> New: клиент исправил
New --> Confirmed: заявка корректна
Confirmed --> Cancelled: нет оплаты 3 дня
Confirmed --> Transit: оплачен, груз отгружен
Transit --> Delayed: отклонение от графика
Delayed --> Delivered
Transit --> Delivered
Delivered --> Accepted: без замечаний
Delivered --> Claim: есть замечания
Accepted --> Closed
Claim --> Closed: урегулирована
Cancelled --> [*]
Closed --> [*]
classDiagram
class Order {
+int id
+str status
+date eta
+float price
+set_status(status)
}
class Quote {
+str destination
+str transport
+float price
+date eta
}
class Storage {
+create_order(client_id, quote) Order
+set_status(order_id, status) Order
+history(order_id)
}
Storage "1" --> "*" Order : хранит
Order ..> Quote : создаётся по
Что видно и чего не видно
Диаграмма деятельности показывает поток работ с исполнителями, диаграмма состояний – жизненный цикл заказа, который реализован в Telegram-боте «ЛогиХаба», а диаграмма последовательности – обмен сообщениями между клиентом, ботом и сервисом. Бизнес-пользователю такие диаграммы читать сложнее, чем BPMN.
Ссылки¶
- OMG Unified Modeling Language (OMG UML). Version 2.5.1 / Object Management Group. – Needham, 2017. – 796 p. – URL: https://www.omg.org/spec/UML/2.5.1/ (дата обращения: 07.10.2026).
- Фаулер, М. UML. Основы. Краткое руководство по стандартному языку объектного моделирования / М. Фаулер ; пер. с англ. А. Петухова. – 3-е изд. – Санкт-Петербург : Символ-Плюс, 2004. – 192 с.
- UML activity diagrams // UML Diagrams : сайт. – URL: https://www.uml-diagrams.org/activity-diagrams.html (дата обращения: 07.10.2026).
- Mermaid : diagramming and charting tool : сайт. – URL: https://mermaid.js.org (дата обращения: 07.10.2026).