UML – унифицированный язык моделирования¶
Описание¶
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 : оплачивается
Что видно и чего не видно
Диаграмма деятельности показывает поток работ с исполнителями, диаграмма состояний – жизненный цикл заказа, диаграмма последовательности – обмен сообщениями между клиентом, сайтом и системами магазина, диаграмма классов – структуру программной системы. Бизнес-пользователю такие диаграммы читать сложнее, чем BPMN.
Ссылки на источники¶
Номера совпадают с общим списком источников.
- [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).