Найти в Дзене

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

Диаграмма прецедентов — это фундаментальный инструмент в UML, который служит для: Ключевые особенности:
✔ Простота и наглядность
✔ Ориентация на пользовательские цели
✔ Высокий уровень абстракции (без технических деталей)
✔ Универсальность для всех участников проекта Акторы представляют роли, взаимодействующие с системой: Типы акторов: Способы представления: [Покупатель] -> (Оформить заказ) # Стилизованный человечек
[ПлатежнаяСистема] -> (Обработать платеж) # Символ класса (прямоугольник) Прецеденты описывают значимые действия системы: Правила формулировки: Графическое представление: (Оформить заказ) - овал с названием внутри [Покупатель] —— (Оформить заказ) [ПостоянныйКлиент] —▷ [Покупатель]
(ОформитьПодписку) —▷ (ОформитьЗаказ) (Оформить заказ) .> (Оплатить товар): include (Оформить заказ) <.. (Применить промокод): extend (Записаться на услугу)
(Подтвердить запись)
(Перенести запись)
(Оценить сервис)
(Уточнить детали фидбека) Показывает количественные отношения: [Покупатель] "1" ——
Оглавление

1. Основные концепции и назначение диаграммы прецедентов

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

  • Определения функциональных требований системы
  • Выявления всех пользователей (акторов) и их взаимодействий с системой
  • Описания границ системы и ее основных возможностей
  • Формирования общего видения системы между заказчиками и разработчиками

Ключевые особенности:
✔ Простота и наглядность
✔ Ориентация на пользовательские цели
✔ Высокий уровень абстракции (без технических деталей)
✔ Универсальность для всех участников проекта

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

2.1. Акторы (Actors)

Акторы представляют роли, взаимодействующие с системой:

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

  • Первичные — инициируют взаимодействие (обычно слева от системы)
    Пример: Покупатель, Администратор
  • Вторичные — предоставляют услуги системе (обычно справа)
    Пример: Платежная система, СМС-шлюз

Способы представления:

[Покупатель] -> (Оформить заказ) # Стилизованный человечек
[ПлатежнаяСистема] -> (Обработать платеж) # Символ класса (прямоугольник)

2.2. Варианты использования (Use Cases)

Прецеденты описывают значимые действия системы:

Правила формулировки:

  • Используйте формат "Глагол + Существительное"
  • Отражайте цель пользователя, а не техническую реализацию
  • Примеры:
    ✅ "Оформить заказ"
    ❌ "Нажать кнопку 'Купить'"

Графическое представление:

(Оформить заказ) - овал с названием внутри

3. Типы связей и их применение

3.1. Ассоциация (Association)

  • Назначение: Базовая связь актора с прецедентом
  • Обозначение: Сплошная линия (со стрелкой или без)
  • Пример:

[Покупатель] —— (Оформить заказ)

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

  • Назначение: Наследование между акторами/прецедентами
  • Обозначение: Пустая треугольная стрелка
  • Пример:

[ПостоянныйКлиент] —▷ [Покупатель]
(ОформитьПодписку) —▷ (ОформитьЗаказ)

3.3. Включение (Include)

  • Назначение: Обязательная часть прецедента
  • Обозначение: Пунктир со стрелкой и «include»
  • Пример:

(Оформить заказ) .> (Оплатить товар): include

3.4. Расширение (Extend)

  • Назначение: Опциональное поведение
  • Обозначение: Пунктир со стрелкой и «extend»
  • Пример:

(Оформить заказ) <.. (Применить промокод): extend

4. Практический пример: система записи в шиномонтаж

4.1. Выявление акторов

  • Первичные:
    Клиент
    Менеджер
  • Вторичные:
    CRM-системa
    СМС-сервис

4.2. Определение прецедентов

(Записаться на услугу)
(Подтвердить запись)
(Перенести запись)
(Оценить сервис)
(Уточнить детали фидбека)

5. Лучшие практики и рекомендации

5.1. Советы по созданию эффективных диаграмм

  1. Соблюдайте уровень абстракции — 7±2 прецедента на диаграмму
  2. Группируйте связанные прецеденты — используйте пакеты для сложных систем
  3. Избегайте пересечений линий — это ухудшает читаемость
  4. Добавляйте пояснения — используйте комментарии для сложных связей

5.2. Типичные ошибки

  • Слишком детализированные прецеденты ("Нажать кнопку")
  • Отсутствие четких границ системы
  • Чрезмерное использование extend (усложняет понимание)
  • Игнорирование вторичных акторов

5.3. Инструменты для построения

  • Бесплатные: Draw.io, PlantUML, StarUML
  • Профессиональные: Enterprise Architect, Visual Paradigm
  • Онлайн-решения: Lucidchart, Miro с UML-шаблонами

6. Дополнительные возможности

6.1. Кратность связей

Показывает количественные отношения:

[Покупатель] "1" —— "0..*" (Оформить заказ)

(Один покупатель может оформить много заказов)

6.2. Системные границы

Прямоугольник вокруг прецедентов показывает границы системы:

┌───────────────────┐
│ Система │
│ (Оформить заказ) │
└───────────────────┘

6.3. Стереотипы

Специальные обозначения для уточнения:

<<external>> [Платежная система]
<<timer>> [Ежемесячный отчет]

7. Когда использовать диаграммы прецедентов?

Идеальные случаи:

  • Начальные этапы проектирования
  • Сбор требований с заказчиком
  • Описание пользовательских сценариев
  • Документирование API

Когда лучше выбрать другие диаграммы:

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

Заключение

Диаграмма прецедентов остается одним из самых востребованных инструментов в арсенале бизнес- и системных аналитиков. Ее сила — в простоте и способности показать систему с точки зрения конечного пользователя. Для эффективного использования:

  1. Начинайте с выявления всех акторов
  2. Формулируйте прецеденты как пользовательские цели
  3. Используйте связи для структурирования
  4. Комбинируйте с другими UML-диаграммами для полной картины

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