Бюро нотаций

Лист 06 из 07 · UML

UML – унифицированный язык моделирования

«Как устроена и ведёт себя программная система?»

Появился1997, OMG; версия 2.5.1 – 2017
СтандартISO/IEC 19505
Отвечает на вопросКак устроена и ведёт себя программная система?
Сложностьвысокая
Лист подготовил(а)Красношлыков Пётр

Описание

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) Раздел (swimlane) полоса исполнитель действий
Объектный узел Объектный узел прямоугольник объект или документ, передаваемый между действиями

Правила составления

  1. Одна диаграмма описывает одну деятельность и имеет начальный узел [17].
  2. Условия на выходах узла решения записываются в квадратных скобках и взаимно исключают друг друга.
  3. Параллельные ветви, открытые разветвителем, закрываются соединителем.
  4. Разделы используются, если важно, кто выполняет действие.
  5. Выбирается тот вид диаграммы, который отвечает на вопрос: поток действий – деятельность, обмен сообщениями – последовательность, жизненный цикл объекта – состояния.

Примеры

Диаграмма деятельности – векторный рисунок по правилам нотации, диаграммы последовательности, состояний и классов описаны кодом в Mermaid [14].

Диаграмма деятельности

Все элементы из таблицы: разделы «Клиент – Менеджер – Склад», объектный узел «Заказ», решения с условиями, слияние, параллельная работа склада и два конечных узла.

UML – диаграмма деятельности «Обработка заказа» с разделами Клиент Менеджер Склад Оформить заказ Заказ Проверить наличие Согласовать замену [товара нет] Выставить счёт [товар есть] Оплатить счёт [нет оплатыза 3 дня] заказотменён [оплата поступила] Собратьтовар Подготовитьдокументы Передать в доставку
Рисунок 1 – UML – диаграмма деятельности «Обработка заказа» UML · Красношлыков Пётр

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

sequenceDiagram
    actor К as Клиент
    participant С as Сайт магазина
    participant З as Система заказов
    participant П as Платёжный сервис
    actor М as Менеджер
    К->>С: Оформить заказ
    С->>З: Создать заказ
    З->>З: Проверить наличие
    alt товар в наличии
        З-->>С: Счёт на оплату
        С-->>К: Ссылка на оплату
        К->>П: Оплатить
        П-->>З: Оплата подтверждена
        З-->>М: Заказ к сборке
    else товара нет
        З-->>С: Сообщение об отсутствии
        С-->>К: Предложить замену
    end
Рисунок 2 – Диаграмма последовательности UML · Красношлыков Пётр

Диаграмма состояний заказа

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 --> [*]
Рисунок 3 – Диаграмма состояний заказа UML · Красношлыков Пётр

Диаграмма классов

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 : оплачивается
Рисунок 4 – Диаграмма классов UML · Красношлыков Пётр

Ссылки на источники

Номера совпадают с общим списком источников.

  • [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).