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

Что такое диаграмма вариантов использования (Use Case Diagram)? Какие элементы она содержит?

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

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

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

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

Диаграмма вариантов использования (Use Case Diagram)

Определение

Use Case Diagram (Диаграмма вариантов использования) — это диаграмма UML, которая показывает взаимодействие между пользователями системы (акторы) и функциями системы (варианты использования). Она визуализирует, какие функции система должна предоставлять и кто будет их использовать.

Это один из первых и наиболее полезных инструментов в системном анализе для понимания требований.

Основные элементы диаграммы

1. Система (System Boundary)

Большой прямоугольник, который обозначает границы системы. Всё внутри этого прямоугольника — функции системы. Всё вне — внешние участники.

┌─────────────────────────┐
│   Система заказов      │
│                         │
│  (варианты использования)│
│                         │
└─────────────────────────┘

2. Аktor (Актер)

Палочка-человечек (или роль) — это внешний пользователь или система, которая взаимодействует с нашей системой.

Типы акторов:

  • Primary Actor — инициирует взаимодействие (например, Покупатель)
  • Secondary Actor — реагирует на действия системы (например, Служба доставки)
  • System Actor — внешняя система (например, PaymentGateway API)

Примеры:

  ┌──────┐
  │      │  Покупатель
  │  ○   │
  │ ╱ ╲  │
  │╱   ╲ │
  └──────┘

      ┌──────┐
      │      │  Администратор
      │  ○   │
      │ ╱ ╲  │
      │╱   ╲ │
      └──────┘

3. Use Case (Вариант использования)

Овал внутри прямоугольника системы — это функция или сценарий, который система должна выполнить.

Назвать use case нужно:

  • Глагол в инфинитиве
  • Глагол + объект: "Разместить заказ", "Оплатить счёт", "Отследить доставку"
   ┌──────────────────┐
   │ Разместить заказ │
   └──────────────────┘

4. Связь (Association / Relationship)

Линия между актором и use case показывает, что актор участвует в этом варианте использования.

   ┌──────┐
   │  ○   │ Покупатель
   │ ╱ ╲  │
   │╱   ╲ │
   └──────┘
        │
        │ участвует
        │
        ▼
   ┌──────────────────┐
   │ Разместить заказ │
   └──────────────────┘

5. Extends (Расширение)

Линия со стрелкой и меткой «extends» — это дополнительный вариант использования, который может быть добавлен в основной сценарий при определённых условиях.

Пример:

  • Basic: "Разместить заказ"
  • Extends: "Применить скидку" (только если есть промокод)
   ┌──────────────────┐
   │ Разместить заказ │
   └──────────────────┘
         △
         │ <<extends>>
         │
   ┌──────────────────┐
   │ Применить скидку │
   └──────────────────┘

6. Includes (Включение)

Линия со стрелкой и меткой «includes» — это обязательный вариант использования, который всегда выполняется как часть другого варианта.

Пример:

  • Main: "Разместить заказ"
  • Includes: "Выбрать способ доставки" (всегда нужно выбрать)
   ┌──────────────────┐
   │ Разместить заказ │
   └──────────────────┘
         │
         │ <<includes>>
         ▼
   ┌──────────────────────────┐
   │ Выбрать способ доставки  │
   └──────────────────────────┘

Разница между Extends и Includes:

  • Includes: обязательная часть основного use case
  • Extends: дополнительная ветка, которая может выполняться или нет

7. Generalization (Обобщение)

Линия со стрелкой — показывает наследование между use case'ами или между акторами.

   ┌──────────────────┐
   │   Пользователь  │ (родитель)
   └──────────────────┘
         △
         │ наследует
         │
    ┌────┴─────┐
    │           │
┌────────┐  ┌──────────┐
│Покупатель│ │Продавец  │ (дети)
└────────┘  └──────────┘

Пример полной диаграммы: Система онлайн-магазина

              ┌──────────────────────────────────────┐
              │    Система онлайн-магазина         │
              │                                      │
    ┌──────┐  │  ┌──────────────────────┐          │
    │  ○   │──┼──│ Просмотреть товары   │          │
    │ ╱ ╲  │  │  └──────────────────────┘          │
    │╱   ╲ │  │           △                         │
    └──────┘  │           │ <<extends>>             │
   Покупатель │           ▼                         │
              │  ┌──────────────────────┐          │
              │  │ Отфильтровать по цене│          │
              │  └──────────────────────┘          │
              │                                      │
              │  ┌──────────────────────┐          │
              │  │ Разместить заказ     │──┐       │
              │  └──────────────────────┘  │       │
              │           │                 │       │
              │           │ <<includes>>    │       │
              │           ▼                 │       │
              │  ┌──────────────────────┐  │       │
              │  │ Оплатить счёт        │  │       │
              │  └──────────────────────┘  │       │
              │                             │       │
    ┌──────┐ │                             │       │
    │  ○   │─┼─────────────────────────────┘       │
    │ ╱ ╲  │ │                                      │
    │╱   ╲ │ │  ┌──────────────────────┐          │
    └──────┘ │  │ Управлять заказами   │          │
  Администра-│  └──────────────────────┘          │
     тор     │                                      │
              │  ┌──────────────────────┐          │
              │  │ Создать отчёт продаж │          │
              │  └──────────────────────┘          │
              │                                      │
   ┌──────────┐ ┌──────────────────────┐          │
   │Payment   │─│ Обработать платёж    │          │
   │Gateway   │ └──────────────────────┘          │
   └──────────┘                                     │
              └──────────────────────────────────────┘

Уровни детализации Use Case'ов

Brief Use Case (Краткий)

Описание в 1 строку:

  • Покупатель просматривает товары
  • Система отображает каталог

Casual Use Case (Вольный)

Простой текстовый сценарий (несколько абзацев):

Покупатель открывает сайт магазина
→ Система отображает каталог товаров
→ Покупатель вводит критерии поиска
→ Система показывает результаты

Fully Dressed Use Case (Полный)

Детальный сценарий с условиями, исключениями, примечаниями:

Вариант использования: Разместить заказ

Акторы: Покупатель (primary), PaymentGateway (secondary)

Предусловие: Покупатель вошёл в систему

Основной сценарий:
1. Покупатель добавляет товар в корзину
2. Система добавляет товар
3. Покупатель выбирает "Оформить заказ"
4. Система показывает форму доставки
5. Покупатель выбирает доставку
6. Система показывает форму оплаты
7. Покупатель вводит данные карты
8. Система отправляет запрос в PaymentGateway
9. PaymentGateway подтверждает платёж
10. Система создаёт заказ и показывает подтверждение

Эльтернативные сценарии:
- 5a. Промокод: если есть промокод, система применяет скидку
- 9a. Платёж отклонен: система показывает ошибку, возвращает на форму оплаты

Постусловие: Заказ создан, клиент получил номер заказа

Правила и best practices

  1. Начинайте с high-level (макроуровня)

    • Сначала самые важные функции системы
    • Потом деталь и отдельные сценарии
  2. Используйте глаголы в инфинитиве

    • ✅ Разместить заказ
    • ❌ Размещение заказа
    • ❌ Заказ размещен
  3. Один use case = одна значимая функция

    • ✅ "Оплатить счёт"
    • ❌ "Выбрать товар, добавить в корзину, оплатить, получить письмо"
  4. Акторы должны быть снаружи системы

    • Это люди или внешние системы
    • Не хранилища данных, не модули
  5. Use case диаграмма ≠ документация

    • Диаграмма показывает overview
    • Детали описывайте в текстовом форме (полный use case)
Что такое диаграмма вариантов использования (Use Case Diagram)? Какие элементы она содержит? | PrepBro