Открыть сервис

Диаграмма прецедентов в UML

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

Назначение и место в UML

Диаграмма прецедентов относится к группе диаграмм поведения и применяется преимущественно на ранних этапах проектирования — при анализе требований и формировании концептуальной модели. Её основная задача — согласовать понимание границ системы между заказчиком и разработчиками. В отличие от диаграмм классов или последовательностей, она не описывает структуру данных или порядок вызовов, а отвечает на вопрос «что делает система для пользователя».

В нотации UML диаграмма прецедентов не является частью формальной спецификации поведения в строгом смысле: она служит средством коммуникации и документирования. Тем не менее её элементы имеют чётко определённую графику и семантику.

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

Акторы

Актор (действующее лицо) — это внешняя по отношению к системе сущность, которая взаимодействует с ней. Актором может быть человек (пользователь, оператор, администратор), другая система, внешнее устройство или организация. На диаграмме акторы изображаются стилизованными фигурками человека либо прямоугольниками со стереотипом «actor».

Различают первичных акторов, инициирующих взаимодействие, и вторичных, которые лишь реагируют на действия системы. Актор всегда находится за границей моделируемой системы.

Прецеденты

Прецедент (вариант использования) — это законченная последовательность действий, приводящая к наблюдаемому результату, значимому для актора. На диаграмме прецедент обозначается эллипсом с именем внутри. Примерами могут служить «Оформить заказ», «Восстановить пароль», «Сформировать отчёт».

Совокупность всех прецедентов задаёт функциональные границы системы: то, что не описано прецедентами, в модель не входит.

Отношения

Между элементами диаграммы устанавливаются связи нескольких типов:

  • Ассоциация — линия между актором и прецедентом, показывающая участие актора в прецеденте. Кратность на концах может уточнять число участников.
  • Включение (include) — отношение, при котором один прецедент обязательно включает поведение другого. Обозначается пунктирной стрелкой со стереотипом «include». Применяется для вынесения повторяющихся фрагментов.
  • Расширение (extend) — отношение, при котором один прецедент при определённых условиях дополняет другой. Обозначается пунктирной стрелкой со стереотипом «extend».
  • Обобщение — отношение наследования между акторами или между прецедентами, показывающее, что один элемент является частным случаем другого.

Граница системы

Граница системы изображается прямоугольником, внутри которого размещаются прецеденты, а акторы — снаружи. Она визуально отделяет моделируемую систему от её окружения и подчёркивает, что акторы не являются частью системы.

Пример построения

Рассмотрим систему интернет-магазина. Акторами выступают «Покупатель», «Менеджер» и «Платёжная система». Прецеденты включают «Просмотреть каталог», «Оформить заказ», «Оплатить заказ», «Обработать заказ». Покупатель связан с просмотром и оформлением заказа; оплата включает обращение к платёжной системе; обработка заказа выполняется менеджером. Прецедент «Оформить заказ» может включать «Проверить наличие товара», а расширяться — прецедентом «Применить промокод», который выполняется лишь при вводе кода.

Такая схема наглядно показывает, кто и какие функции использует, и служит основой для написания сценариев и тест-кейсов.

Сценарии прецедентов

Каждый прецедент, как правило, детализируется текстовым описанием — сценарием. Сценарий фиксирует основный поток событий, альтернативные и исключительные потоки, предусловия и постусловия. Различают «счастливый путь» (успешное выполнение) и ветвления при ошибках. Именно сценарии превращают эллипсы на диаграмме в проверяемые требования.

Применение и ограничения

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

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

Инструменты моделирования

Для построения диаграмм прецедентов применяются как проприетарные, так и свободные средства: IBM Rational Rose, Enterprise Architect, Visual Paradigm, StarUML, draw.io, PlantUML. Последний позволяет описывать диаграмму текстом, что удобно для версионирования в системах контроля версий.

Связь с другими моделями

Диаграмма прецедентов служит отправной точкой для последующего проектирования: её прецеденты разворачиваются в диаграммы последовательностей и кооперации, а акторы и сущности уточняются на диаграмме классов. Таким образом, она выполняет роль связующего звена между требованиями заказчика и технической архитектурой.

Источники: стандарт OMG UML Specification; Буч Г., Рамбо Дж., Якобсон А. «Язык UML. Руководство пользователя»; Фаулер М. «UML. Основы»; Ларман К. «Применение UML и шаблонов проектирования».

Загружаем BFOmetr…