← Назад к вопросам

Что такое UML и BPMN? Когда и как применяются эти нотации?

1.3 Junior🔥 151 комментариев
#Требования и их анализ

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI29 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

UML и BPMN — две ключевые нотации в системном анализе

UML (Unified Modeling Language) и BPMN (Business Process Model and Notation) — это две мощные нотации для моделирования и визуализации различных аспектов информационных систем. Хотя они часто используются вместе, они служат разным целям и применяются на разных этапах проекта.

UML (Unified Modeling Language)

Определение: UML — это стандартный язык визуализации объектно-ориентированных систем. Это не язык программирования, а нотация для описания структуры и поведения системы.

История:

  • Разработана в 1997 году тремя светилами: Grady Booch, Ivar Jacobson, James Rumbaugh
  • Стандартизирована OMG (Object Management Group)
  • Текущая версия: UML 2.5+

Основные диаграммы UML:

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

Назначение:

  • Описание взаимодействия внешних акторов с системой
  • Определение основных функций системы
  • Выделение границ системы

Элементы:

  • Актор (Actor) — роль пользователя
  • Use Case — функция или сценарий
  • Отношения: include (включение), extend (расширение)

Когда использовать:

  • На ранних этапах сбора требований
  • Для коммуникации с бизнесом
  • Для определения объема проекта

Пример для системы управления школой:

Акторы: Учитель, Ученик, Администратор
Use Cases: Просмотреть расписание, Выставить оценку, Управлять учащимися

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

Назначение:

  • Описание структуры системы на уровне классов и объектов
  • Показ атрибутов и методов
  • Отношения между классами

Отношения:

  • Association (ассоциация) — связь между классами
  • Inheritance (наследование) — иерархия классов
  • Aggregation (агрегация) — weak has-a relationship
  • Composition (композиция) — strong has-a relationship

Когда использовать:

  • При проектировании архитектуры
  • Для объектно-ориентированных систем
  • Для описания базы данных (ER диаграмма близка к UML классам)

Пример:

Класс: Account
  Атрибуты: accountId, balance, accountType
  Методы: deposit(), withdraw(), getBalance()
  
Класс: User
  Атрибуты: userId, name, email
  Методы: login(), logout(), updateProfile()
  
Отношение: User has Account (один пользователь может иметь несколько счетов)

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

Назначение:

  • Показ взаимодействия между объектами во времени
  • Порядок вызовов методов
  • Синхронные и асинхронные вызовы

Элементы:

  • Объекты на горизонтали
  • Время течет вниз
  • Стрелки между объектами показывают сообщения

Когда использовать:

  • Для описания сложных бизнес-процессов
  • Для документирования взаимодействия между компонентами
  • Для микросервисных архитектур
  • Для отладки логики

Пример: Процесс покупки онлайн

1. Customer → ShoppingCart: addItem()
2. ShoppingCart → Inventory: checkStock()
3. Inventory → ShoppingCart: stockAvailable
4. ShoppingCart → PaymentGateway: processPayment()
5. PaymentGateway → ShoppingCart: paymentSuccess
6. ShoppingCart → OrderSystem: createOrder()

4. Диаграмма деятельности (Activity Diagram)

Назначение:

  • Описание бизнес-процессов
  • Показ потока деятельности
  • Условные переходы и параллельные процессы

Когда использовать:

  • Для документирования рабочих процессов
  • Для описания алгоритмов
  • Когда BPMN слишком формален

5. Диаграмма состояния (State Machine Diagram)

Назначение:

  • Описание различных состояний объекта
  • Переходы между состояниями
  • События, вызывающие переходы

Пример: Статус заказа

Состояния: New → Pending → Processing → Shipped → Delivered → Closed
Событие payment_received → переход из New в Pending

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

Назначение:

  • Показ компонентов системы
  • Интерфейсы между компонентами
  • Зависимости

7. Диаграмма развертывания (Deployment Diagram)

Назначение:

  • Физическая архитектура системы
  • Ноды (компьютеры, серверы)
  • Размещение артефактов
  • Сетевые соединения

BPMN (Business Process Model and Notation)

Определение: BPMN — это стандартная нотация для моделирования бизнес-процессов. Разработана для того, чтобы быть понятной как бизнесу, так и IT специалистам.

История:

  • Разработана BPMI (Business Process Management Initiative) в 2004
  • Стандартизирована OMG
  • Текущая версия: BPMN 2.0

Основные элементы BPMN:

Объекты потока (Flow Objects)

1. События (Events)

  • Start Event — начало процесса
  • Intermediate Event — происходит во время процесса
  • End Event — завершение процесса

2. Деятельность (Activity)

  • Task — одна работа
  • Subprocess — сгруппированные задачи
  • Types: manual, service, user, business rule, script

3. Решения (Gateway)

  • Exclusive Gateway (XOR) — одна из нескольких ветвей
  • Inclusive Gateway (OR) — одна или несколько ветвей
  • Parallel Gateway (AND) — все ветви одновременно

Соединители (Connecting Objects)

Sequence Flow:

  • Показывает порядок выполнения
  • Условные потоки (с условиями)

Message Flow:

  • Коммуникация между бассейнами
  • Обмен сообщениями

Плавательные дорожки (Swimlanes)

Бассейн (Pool):

  • Отдельный участник процесса
  • Например: Компания, Клиент, Система

Дорожка (Lane):

  • Подраздел бассейна
  • Роль или отдел
  • Например: Отдел продаж, Отдел доставки

Сравнение UML и BPMN

UML:

  • Фокус: Структура и поведение системы
  • Аудитория: Разработчики, архитекторы
  • Абстракция: Объекты, классы, методы
  • Сложность: Может быть сложным для бизнеса
  • Применение: Проектирование ПО

BPMN:

  • Фокус: Бизнес-процессы
  • Аудитория: Бизнес и IT
  • Абстракция: Деятельность, решения, события
  • Простота: Более интуитивна для бизнеса
  • Применение: Управление процессами

Практическое применение

Фаза анализа и сбора требований

BPMN:

  • Документируем текущие (AS-IS) бизнес-процессы
  • Определяем проблемы и узкие места
  • Проектируем новые (TO-BE) процессы

UML Use Cases:

  • Определяем главные функции системы
  • Выясняем требования
  • Коммуникуем с бизнесом

Фаза проектирования

UML:

  • Диаграмма классов — структура
  • Диаграмма последовательности — сложное взаимодействие
  • Диаграмма компонентов — архитектура
  • Диаграмма развертывания — физическая архитектура

Фаза реализации и тестирования

UML:

  • Диаграммы последовательности помогают писать тесты
  • Диаграммы состояния помогают найти edge cases

BPMN:

  • Помогает проверить, что разработанная система соответствует процессу
  • Используется для RPA (Robotic Process Automation)

Пример: Система обработки заявок

BPMN (AS-IS процесс)

Начало → Клиент подает заявку → Администратор проверяет → 
Если валидна → Инженер выполняет работу → Клиент принимает → Конец
Если невалидна → Отправить клиенту отказ → Конец

UML Use Cases

Акторы: Клиент, Администратор, Инженер
UC1: Подать заявку (Клиент инициирует)
UC2: Проверить заявку (Администратор проверяет валидность)
UC3: Выполнить работу (Инженер выполняет)
UC4: Принять результат (Клиент принимает)

UML Sequence Diagram

1. Client → System: submitRequest()
2. System → Admin: notifyNewRequest()
3. Admin → System: validateRequest()
4. System → Engineer: assignTask()
5. Engineer → System: completeWork()
6. System → Client: notifyCompletion()
7. Client → System: acceptWork()

Лучшие практики использования

Для UML:

  1. Не создавай все 7 диаграмм для каждого проекта
  2. Выбери диаграммы, которые актуальны для проекта
  3. Держи диаграммы простыми и понятными
  4. Используй инструменты (ArchiMate, PlantUML, Lucidchart)
  5. Версионируй диаграммы
  6. Актуализируй при изменении архитектуры

Для BPMN:

  1. Начни с текущего процесса (AS-IS)
  2. Определи проблемы
  3. Спроектируй новый процесс (TO-BE)
  4. Покажи бизнесу и согласуй
  5. Используй правильные элементы (не усложняй)
  6. Один процесс на диаграмму
  7. Валидируй с бизнесом

Инструменты

Для UML:

  • Visual Paradigm
  • Enterprise Architect
  • PlantUML (текстовое описание, можно в Git)
  • Lucidchart
  • Draw.io

Для BPMN:

  • Camunda Modeler (free)
  • Signavio (enterprise)
  • Lucidchart
  • Draw.io
  • Bizagi Modeler

Интеграция с разработкой

UML → Code:

  • Model-driven Development
  • Forward engineering (модель → код)
  • Обратное проектирование (код → модель)
  • Инструменты: Enterprise Architect, Visual Paradigm

BPMN → Execution:

  • BPMN используется для автоматизации процессов
  • Workflow engine (Activiti, Camunda) выполняет процесс
  • Возможна автоматизация через RPA

UML и BPMN — это дополняющие друг друга нотации. UML описывает что система делает (структура и функции), BPMN описывает как это вписывается в бизнес-процесс (процесс). Вместе они дают полное понимание системы и гарантируют, что разработанная система действительно решает бизнес-проблемы.