Описание
UML (Unified Modeling Language) – графический язык для визуализации, спецификации и документирования программных систем. Создан в 1990-х годах объединением методов Г. Буча, Дж. Рамбо и А. Джекобсона, с 1997 года развивается консорциумом OMG; актуальная версия – UML 2.5.1 (2017) [15]; версия 2.4.1 утверждена как международный стандарт ISO/IEC 19505.
UML 2.5 определяет 14 видов диаграмм, разделённых на структурные (классов, компонентов, развёртывания, объектов, пакетов, композитной структуры, профилей) и поведенческие (деятельности, прецедентов, состояний, а также диаграммы взаимодействия – последовательности, коммуникации, обзора взаимодействия, временная) [2].
Для бизнес-процессов чаще всего используются диаграмма деятельности (поток действий с разделами-исполнителями), диаграмма последовательности (обмен сообщениями во времени) и диаграмма состояний (жизненный цикл объекта, например заказа).
Когда применять: переход от описания процесса к проектированию программной системы, общение аналитиков и разработчиков.
Ограничения: избыточен для бизнес-пользователей; бизнес-семантика (события, документы, таймеры) выражается менее явно, чем в BPMN.
Элементы нотации (диаграмма деятельности)
| Элемент | Обозначение | Назначение |
|---|---|---|
| Начальный узел | начало потока | |
| Конечный узел деятельности | завершение всей деятельности | |
| Действие | выполняемый шаг | |
| Узел решения / слияния | ветвление по условию в квадратных скобках и слияние ветвей | |
| Разветвитель / соединитель | начало и синхронизация параллельных потоков | |
| Раздел (swimlane) | исполнитель действий | |
| Объектный узел | объект или документ, передаваемый между действиями |
Правила составления
- Одна диаграмма описывает одну деятельность и имеет начальный узел [17].
- Условия на выходах узла решения записываются в квадратных скобках и взаимно исключают друг друга.
- Параллельные ветви, открытые разветвителем, закрываются соединителем.
- Разделы используются, если важно, кто выполняет действие.
- Выбирается тот вид диаграммы, который отвечает на вопрос: поток действий – деятельность, обмен сообщениями – последовательность, жизненный цикл объекта – состояния.
Примеры
Диаграмма деятельности – векторный рисунок по правилам нотации, диаграммы последовательности, состояний и классов описаны кодом в Mermaid [14].
Диаграмма деятельности
Все элементы из таблицы: разделы «Клиент – Менеджер – Склад», объектный узел «Заказ», решения с условиями, слияние, параллельная работа склада и два конечных узла.
Диаграмма последовательности
sequenceDiagram
actor К as Клиент
participant С as Сайт магазина
participant З as Система заказов
participant П as Платёжный сервис
actor М as Менеджер
К->>С: Оформить заказ
С->>З: Создать заказ
З->>З: Проверить наличие
alt товар в наличии
З-->>С: Счёт на оплату
С-->>К: Ссылка на оплату
К->>П: Оплатить
П-->>З: Оплата подтверждена
З-->>М: Заказ к сборке
else товара нет
З-->>С: Сообщение об отсутствии
С-->>К: Предложить замену
endДиаграмма состояний заказа
stateDiagram-v2
state "Новый" as New
state "Ожидает оплаты" as AwaitPay
state "Отклонён" as Rejected
state "Отменён" as Cancelled
state "Оплачен" as Paid
state "Собирается" as Picking
state "В доставке" as Shipping
state "Доставлен" as Delivered
state "Возврат" as Returned
state "Выполнен" as Done
[*] --> New
New --> Rejected: товара нет
New --> AwaitPay: товар есть
AwaitPay --> Cancelled: нет оплаты 3 дня
AwaitPay --> Paid: оплата поступила
Paid --> Picking
Picking --> Shipping: передан в доставку
Shipping --> Delivered
Delivered --> Done: нет претензий
Delivered --> Returned: есть претензии
Returned --> Done: возврат оформлен
Rejected --> [*]
Cancelled --> [*]
Done --> [*]Диаграмма классов
classDiagram
class Customer {
+Integer id
+String name
+String phone
}
class Order {
+Integer id
+String status
+Decimal total
+addItem(product, qty)
+setStatus(status)
}
class OrderItem {
+Integer quantity
+Decimal price
}
class Product {
+Integer id
+String title
+Integer stock
}
class Payment {
+Decimal amount
+Date paid_at
}
Customer "1" --> "*" Order : оформляет
Order "1" *-- "1..*" OrderItem : содержит
OrderItem "*" --> "1" Product
Order "1" --> "0..1" Payment : оплачиваетсяСсылки на источники
Номера совпадают с общим списком источников.
- [2] Фаулер, М. UML. Основы. Краткое руководство по стандартному языку объектного моделирования / М. Фаулер ; пер. с англ. А. Петухова. – 3-е изд. – Санкт-Петербург : Символ-Плюс, 2004. – 192 с.
- [14] Mermaid : diagramming and charting tool : сайт. – URL: https://mermaid.js.org (дата обращения: 17.10.2026).
- [15] 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/ (дата обращения: 17.10.2026).
- [17] UML activity diagrams // UML Diagrams : сайт. – URL: https://www.uml-diagrams.org/activity-diagrams.html (дата обращения: 17.10.2026).