Руководство по синтаксису диаграмм вариантов использования PlantUML

Что такое диаграмма вариантов использования?

A Диаграмма вариантов использованияЭто поведенческий чертеж, используемый для визуализации взаимосвязей между пользователями системы (называемыми актерами) и конкретными действиями или целями, которые они хотят достичь (называемыми вариантами использования). В отличие от отображения пошаговых логических циклов, диаграмма вариантов использования предоставляет общий обзор функциональной области системы, что делает её отличным инструментом для определения требований к проекту, границ системы и рабочих процессов заинтересованных сторон.

С помощью VPasCode, вы можете мгновенно создавать четкие, профессиональные диаграммы вариантов использования, не борясь с выравниванием визуальной области холста. Это руководство пропускает неясные, устаревшие обозначения и фокусируется исключительно на практических элементах синтаксиса, необходимых для повседневной документации программного обеспечения.

Основное руководство по синтаксису: элементы и конструкции

Построение диаграммы вариантов использования в PlantUML основано на нескольких простых структурных элементах, заключенных внутри стандартных тегов @startuml и @enduml тегов.

1. Объявление актеров

Актер представляет собой внешнюю сущность, взаимодействующую с вашим приложением (например, человек-пользователь, фоновая служба или внешний API аппаратного обеспечения). Вы объявляете актера, используя ключевое слово actor за которым следует внутренний сокращенный идентификатор:

Совет профессионала: Используйте ключевое слово as для назначения чистой, легко читаемой строки отображения сложным идентификаторам актеров.

2. Определение вариантов использования

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

(Вход в панель управления)
использование случая checkout как "Обработка оплаты кредитной картой"

3. Картирование базовых взаимодействий

Чтобы соединить ваших актеров с соответствующими случаями использования, используйте базовые направленные или ненаправленные линии взаимодействия. Вы также можете добавить текстовые метки, чтобы добавить критически важный контекст к взаимодействию:

customer --> (Вход в панель управления)
admin --> checkout : "Утверждает возвраты средств"

4. Расширенные отношения: Включение и Расширение

При моделировании сложного поведения системы вам часто нужно показать зависимости между различными случаями использования с помощью стандартной стереотипизации UML:

5. Установление границ системы

Чтобы четко различать, что происходит внутри вашей программной системы, а что — снаружи, используйте “прямоугольникключевое слово для обертывания ваших внутренних случаев использования. Критически важно, чтобы актеры оставались за пределами этого блока-оболочки, чтобы отразить их статус внешних участников:

актер customer

прямоугольник "Платформа электронной коммерции" {
    (Просмотр каталога)
    (Добавить в корзину)
}

customer --> (Просмотр каталога)
customer --> (Добавить в корзину)

Рекомендации по созданию чистых компоновок

  • Держите текст кратким:Случаи использования всегда должны начинаться с ясного, действительного глагола (например, «Создать отчет», «Обновить профиль») вместо длинного предложения.
  • Используйте направляющие ориентиры: Если ваши актеры и случаи использования скапливаются в беспорядочной стопке, используйте стрелки пространственного направления, такие как -right-> или -down-> чтобы мягко направить движок компоновки на создание чистой, легко читаемой структуры.
  • Выделяйте границы системы: Всегда используйте прямоугольник границы при документировании приложений, взаимодействующих с несколькими сторонними микросервисами. Это сразу делает понятным, кто владеет каким процессом.

Примеры диаграмм случаев использования PlantUML в реальных условиях

Скопируйте и вставьте следующие практические чертежи непосредственно в панель живого редактора VPasCode, чтобы увидеть, как они динамически отображаются.

Пример 1: Основная аутентификация пользователей и управление учетными записями

Этот чертеж моделирует стандартную экосистему приложения, содержащую основного пользователя, административного оператора и рамку, содержащую основные механизмы безопасности.

@startuml
' Установить ориентацию компоновки слева направо
слева направо направление

актер "Конечный пользователь" как user
актер "Администратор безопасности" как admin

прямоугольник "Служба предоставления удостоверений" {
    (Войти)
    (Сбросить пароль)
    (Обновить данные профиля)
    (Просмотреть журналы безопасности)
    (Деактивировать учетные записи)
}

user --> (Войти)
user --> (Сбросить пароль)
user --> (Обновить данные профиля)

(Просмотреть журналы безопасности) <-- admin
(Деактивировать учетные записи) <-- admin
@enduml

Разбор синтаксиса: Направление направление слева направо заставляет движок макета размещать актеров на внешних краях и расширять случаи использования горизонтально, а не вертикально. Обратите внимание, как размещение объявления актеров чисто за пределами прямоугольникаобертки сохраняет их организованность, при этом изменяя направление скобки стрелки для пользователя-администратора (<-- админ) прикрепляет их чисто к правой стороне матрицы диаграммы.

Пример 2: Расширенная система оформления заказа в электронной коммерции с внешними зависимостями

Этот макет реальной системы отображает сложный процесс оформления заказа, который зависит от внешних банковских API, структурных включений и необязательных флагов расширения.

@startuml
направление слева направо

актер "Покупатель" как покупатель
актер "Сотрудник склада" как сотрудник
актер "Шлюз Stripe" как stripe

прямоугольник "Система выполнения заказов в интернет-магазине" {
    (Оформить заказ)
    (Применить купон)
    (Создать счет)
    (Выбрать и упаковать товары)
    (Обновить статус доставки)
}

' Внешние взаимодействия с границами системы
customer --> (Оформить заказ)
(Оформить заказ) --> stripe : "Авторизовать средства"

' Структуры включения и расширения
(Оформить заказ) ..> (Создать счет) : <<включить>>
(Применить купон) ..> (Оформить заказ) : <<расширить>>

' Пути выполнения
(Выбрать и упаковать товары) <-- сотрудник
(Обновить статус доставки) <-- сотрудник
(Создать счет) --> сотрудник : "Отправить копию по электронной почте"
@enduml

Разбор синтаксиса: Этот шаблон показывает, как один случай использования (Оформить заказ) требует вызова (Создать счет) с использованием <<включить>> тега по пунктирной линии. В то же время применение купонного кода правильно моделируется как необязательный путь через <<расширить>> указывающий назад к основному выполнению. Все внешние актеры остаются четко изолированными за пределами оболочки системы.

Прокрутить вверх