Диаграмма прецедентов (вариантов использования) UML

Описать типичные взаимодействия между пользователями системы и самой системой и предоставить описание процесса её функционирования.
План действий
В разделе «Описание» изучите основной набор символов диаграммы прецедентов, необходимый для того, чтобы уметь читать диаграммы.
После ознакомления с другими разделами («Пример», «Применение») вы можете попробовать свои силы в самостоятельном составлении диаграмм прецедентов.
Замечания (описание)
Здесь представлен основной набор символов диаграммы вариантов использования (прецедентов) , необходимый для того, чтобы суметь прочитать диаграмму. После ознакомления с другими разделами («Пример», «Применение») вы сможете составлять диаграммы вариантов использования системы (ВИС) самостоятельно!
| Термин | Изображение | Описание |
|---|---|---|
| Сценарий | Вся диаграмма вариантов использования (ВИС) | Сценарий (scenario) – это последовательность шагов, описывающих взаимодействие пользователя и системы. |
| Актер | Актер (actor) представляет собой некую роль, которую пользователь играет по отношению к системе. | |
| Прецедент | Обозначает выполняемые системой действия (могут включать возможные варианты), приводящие к наблюдаемым актёрами результатам. | |
| include (включает) | Сложный шаг в прецеденте можно представить другим прецедентом. В терминах языка UML мы говорим, что первый прецедент включает (includes) второй. |
|
| Граница системы | Позволяет обозначить границы систем или подсистем. |
Как применять технику креативности
Прецеденты представляют собой ценный инструмент для понимания функциональных требований к системе. Первый вариант прецедентов должен составляться на ранней стадии выполнения проекта. Более подробные версии прецедентов должны появляться непосредственно перед реализацией данного прецедента.
Важно помнить, что прецеденты представляют взгляд на систему со стороны. А раз так, то не ждите какого -либо соответствия между прецедентами и классами внутри системы.
Чем больше прецедентов на диаграмме, тем менее ценной кажется диаграмма прецедентов. Несмотря на то что в языке UML ничего не говорится о тексте прецедентов, именно текстовое содержание прецедентов является основной ценностью этой технологии.
Большая опасность прецедентов заключается в том, что разработчики делают их очень сложными и застревают на них. Обычно чем меньше вы делаете, тем меньший вред можете нанести. Если у вас немного информации, то получится короткий, легко читаемый документ, который явится отправной точкой для вопросов. Если информации слишком много, то вряд ли кто-то вообще будет ее изучать и пытаться понять.
Как научиться
Здесь мы попытались предоставить как можно более простой способ изучения диаграммы вариантов использования системы языка UML.
Как и многие другие языки он использует для описания набор знаков. Смысл этих знаков вы найдете в таблице в разделе «Замечания (описание)». Каждый знак имеет свое наименование (термин) и написание. Также каждый термин снабжен кратким пояснением, чтобы быстро уяснить его основную суть.
Далее мы бы рекомендовали перейти в раздел «Пример», чтобы попробовать свои силы в чтении разных диаграмм. Затем стоит изучить раздел «Применение», так как, хотя и количество типов диаграмм в UML невелико, максимум преимуществ от их использования вы сможете получить только если будете применять нужные диаграммы по назначению.
Пример использования
Прецеденты – это технология определения функциональных требований к системе. Работа прецедентов заключается в описании типичных взаимодействий между пользователями системы и самой системой и предоставлении описания процесса ее функционирования. Вместо того чтобы описывать прецеденты в лоб, я предпочитаю подкрасться к ним сзади и начать с описания сценариев. Сценарий (scenario) – это последовательность шагов, описывающих взаимодействие пользователя и системы. Поэтому при наличии онлайнового магазина, основанного на веб-сайте, мы можем использовать сценарий «Покупка товара» (Buy a Product), в котором происходит следующее.
Покупатель просматривает каталог и помещает выбранные товары в корзину. При желании оплатить покупку он вводит информацию о кредитной карте и производит платеж. Система проверя ет авторизацию кредитной карты и подтверждает оплату товара тотчас же и по электронной почте.
Подобный сценарий описывает только одну ситуацию, которая может иметь место. Однако если авторизация кредитной карты окажется неудачной, то подобная ситуация может послужить предметом уже другого сценария. В другом случае у вас может быть постоянный клиент, для которого проверка информации о покупке и кредитной карте не обязательна, и это будет третий сценарий.
Так или иначе, но все эти сценарии похожи. Суть в том, что во всех трех сценариях у пользователя одна и та же цель: купить товар. Пользователь не всегда может это сделать, но цель остается. Именно цель пользователя является ключом к прецедентам: прецедент представляет собой множество сценариев, объединенных некоторой общей целью пользователя.
В терминах прецедента пользователи называются актерами. Актер (actor) представляет собой некую роль, которую пользователь играет по отношению к системе. Актерами могут быть пользователь, торговый представитель пользователя, менеджер по продажам и товаровед.
Актеры действуют в рамках прецедентов. Один актер может выполнять несколько прецедентов; и наоборот, в соответствии с одним прецедентом могут действовать несколько актеров. Обычно клиентов много, поэтому роль клиента могут играть многие люди. К тому же один человек может играть несколько ролей, например менеджер по продажам, выполняющий роль торгового представителя клиента. Актер не обязательно должен быть человеком. Если система предоставляет некоторый сервис другой компьютерной системе, то другая система является актером.
Прецеденты считаются важной частью языка UML. Однако удивительно то, что определение прецедентов в UML довольно скудное. В UML ничего не говорится о том, как определять содержимое прецедента.
Все, что описано в UML, – это диаграмма прецедентов, которая показывает, как прецеденты связаны друг с другом. Но почти вся ценность прецедентов как раз в их содержании, а диаграмма имеет ограниченное значение.
Содержимое прецедентов
Не существует стандартного способа описания содержимого прецедента; в разных случаях применяются различные форматы. На рис. 9.1 показан общий стиль использования. Вы начинаете с выбора одного из сценариев в качестве главного успешного сценария (main success scenario). Сначала вы описываете тело прецедента, в котором главный успешный сценарий представлен последовательностью нумерованных шагов. Затем берете другой сценарий и вставляете его в виде расширения (extension), описывая его в терминах изменений главного успешного сценария. Расширения могут быть успешными – пользователь достиг своей цели, как в варианте 3a, или неудачными, как в варианте 6a.
В каждом прецеденте есть ведущий актер, который посылает системе запрос на обслуживание. Ведущий актер – это актер, желание которого пытается удовлетворить прецедент и который обычно, но не всегда, является инициатором прецедента. Одновременно могут быть и другие актеры, с которыми система также взаимодействует во время выполнения прецедента. Они называются второстепенными актерами.
Каждый шаг в прецеденте – это элемент взаимодействия актера с системой. Каждый шаг должен быть простым утверждением и должен четко указывать, кто выполняет этот шаг. Шаг должен показывать намерение актера, а не механику его действий. Следовательно, в прецеденте интерфейс актера не описывается. Действительно, составление прецедента обычно предшествует разработке интерфейса пользователя.
-UML_000004.jpg)
Расширение внутри прецедента указывает условие, которое приводит к взаимодействиям, отличным от описанных в главном успешном сценарии (main success scenario, MSS), и устанавливает, в чем состоят эти отличия. Расширение начинается с имени шага, на котором определяется это условие, и предоставляет краткое описание этого условия.
Следуйте этому условию, нумеруя шаги таким же образом, что и в главном успешном сценарии. Заканчивайте эти шаги описанием точки возврата в главный успешный сценарий, если это необходимо.
Структура прецедента – это отличный инструмент для поиска альтернатив главного успешного сценария. На каждом шаге спрашивайте:
«Что может еще произойти?» и в частности «Что может пойти не так?»
Обычно лучше сначала изучить все возможные условия расширения, чтобы потом не увязнуть в трясине работы над последствиями. Таким образом, вы, возможно, обдумаете больше условий, что приведет к меньшему количеству ошибок, которые потом пришлось бы отлавливать.
Сложный шаг в прецеденте можно представить другим прецедентом. В терминах языка UML мы говорим, что первый прецедент включает (includes) второй. Не существует стандартного способа показать в тексте включение прецедента, но я думаю, что подчеркивание, которое предполагает гиперссылку, работает прекрасно, а во многих инструментах действительно будет гиперссылкой. Так, на рис. 9.1 первый шаг включает шаблон «просматривает каталог и выбирает товары для покупки».
Включенные прецеденты могут быть полезными в случае сложных шагов, которые иначе загромождали бы главный сценарий, или когда одни и те же шаги присутствуют в нескольких сценариях. Однако не пытайтесь разбивать прецеденты на подпрецеденты и использовать их для функциональной декомпозиции. Такая декомпозиция – хороший способ потерять много времени.
Наряду с шагами сценария можно вставить в прецедент дополнительную общую информацию.
• Предусловие (pre-condition) описывает действия, обязательно выполняемые системой перед тем, как она разрешит начать работу прецедента. Это полезная информация, позволяющая разработчикам не проверять некоторые условия в их программе.
• Гарантия (guarantee) описывает обязательные действия системы по окончании работы шаблона ответа. Успешные гарантии выполняются после успешного сценария; минимальные гарантии выполняются после любого сценария.
• Триггер (trigger) определяет событие, инициирующее выполнение прецедента.
При рассмотрении дополнительных элементов относитесь к этому скептически. Лучше сделать слишком мало, чем слишком много. Кроме того, приложите максимум усилий, чтобы сделать прецедент кратким и легким для чтения. Я убедился, что излишне подробный прецедент, который трудно читать, скорее приведет к провалу, чем к достижению цели. Не обязательно записывать все детали; устное общение часто бывает очень эффективным, особенно во время итеративного цикла, когда необходимые условия быстро выполняются запущенной программой.
Степень детализации, необходимая в прецеденте, зависит от уровня риска этого прецедента. Часто детали нужны в начале только немногих ключевых прецедентов, другие можно конкретизировать непосредственно перед их реализацией.
Диаграммы прецедентов
Как было сказано, язык UML умалчивает о содержимом прецедента, но предоставляет формат диаграммы, позволяющий его отображать (рис. 9.2). Хотя диаграмма иногда оказывается полезной, без нее можно обойтись. При разработке прецедента не стоит прилагать много усилий для создания диаграммы. Вместо этого лучше сконцентрироваться на текстовом содержании прецедентов.
-UML_000001.jpg)
Лучше всего обдумывать диаграмму прецедентов с помощью графической таблицы, показывающей их содержимое. Она напоминает диаграмму контекста, используемую в структурных методах, поскольку она показывает границы системы и ее взаимодействие с внешним миром. Диаграмма прецедентов показывает актеров, прецеденты и отношения между ними:
• Какие актеры выполняют тот или иной прецедент
• Какие прецеденты включают другие прецеденты
В языке UML помимо отношения «include» (включает) есть и другие типы отношений между прецедентами, например отношение «extend» (расширяет). Настоятельно рекомендуем его избегать. Слишком часто разработчики целыми командами надолго погружались в рассмотрение различных отношений между прецедентами, понапрасну растрачивая силы. Лучше уделяйте больше внимания текстовому описанию прецедента; именно в этом заключается истинная ценность этой технологии.
Прецеденты и возможности (или пожелания)
Во многих подходах возможности системы применяются для описания требований к системе; в экстремальном программировании (Extreme Programming) возможности системы называются пожеланиями пользователя. Общим является вопрос о том, как установить соответствие между возможностями и прецедентами.
Использование возможностей – это хороший способ разделения системы на блоки при планировании итеративного процесса, в результате чего каждая итерация предоставляет определенное количество возможностей. Отсюда следует, что хотя оба приема описывают требования, их цели различны.
Описать возможности можно сразу, но многие специалисты считают более удобным в первую очередь разработать прецеденты, а уже затем сгенерировать список возможностей. Возможность может быть представлена целым прецедентом, сценарием в прецеденте, шагом в прецеденте или каким либо вариантом поведения, например добавление еще одного метода вычисления амортизации при оценке вашего имущества, который не указан в описании прецедента. Обычно возможности получаются более четко определенными, чем прецеденты.
Подписывайтесь на новости сайта, форму подписки вы можете найти в правой колонке сайта.
Если вы хотите научиться работать на фрилансе профессионально, приглашаем на курс «Как зарабатывать на фрилансе».
Диаграмма вариантов использования (Use Case Diagram)
Что такое диаграмма вариантов использования?
Диаграмма вариантов использования или диаграмма прецедентов (англ. use case diagram) — это графический инструмент универсального языка моделирования (UML), который используется для описания функциональных требований к системе, ее возможных сценариев использования и взаимодействия системы с внешними сущностями (акторами).
Диаграмма прецедентов представляет собой графическое изображение вариантов использования (use case) системы, акторов (actors) и их взаимодействия в виде эллипсов и прямоугольников. Варианты использования описывают функциональность системы с точки зрения ее пользователей, а акторы представляют внешние сущности, которые используют систему.
Суть диаграммы вариантов использования заключается в том, что она помогает лучше понять требования к системе и определить ее функциональные возможности. Она используется для определения сценариев использования системы и для выявления потенциальных проблем взаимодействия между пользователями и системой. Диаграмма вариантов использования является основным инструментом для описания поведения системы на ранней стадии ее проектирования.
Элементы диаграммы вариантов использования
Вариант использования
На диаграмме прецедентов варианты использования (Use Case) представляют собой эллипсы, которые отображают функциональные возможности системы или ее части. Они описывают конкретные задачи, которые система должна выполнять для достижения цели, и представляют собой сценарии использования системы с точки зрения ее пользователей.

Каждый вариант использования может иметь свои варианты выполнения (Alternate Flows). Они описывают возможные варианты поведения в определенных условиях, таких как ошибки ввода или некорректные данные. Эти варианты выполнения отображаются на диаграмме прецедентов в виде ветвей, которые выходят из основного эллипса варианта использования.
Кроме того, на диаграмме прецедентов варианты использования связываются с акторами (Actors), которые представляют внешние сущности, взаимодействующие с системой. Связи между вариантами использования и акторами показывают, какие действия могут выполнять акторы и как система должна на них реагировать.
Акторы
Актор (Actor) на диаграмме прецедентов представляет внешнюю сущность, которая взаимодействует с системой. Актором может быть любым человеком, группой людей, другой системой или даже другим компонентом системы.
Акторы могут инициировать варианты использования, т.е. задачи, которые система должна выполнить для достижения цели. Например, это может быть пользователь, который хочет купить продукт в интернет-магазине, и вариантом использования — процесс покупки товара.

На диаграмме вариантов использования акторы обычно изображаются в виде символа человека или некоторого другого объекта. Акторы связываются с вариантами использования системы, которые они могут инициировать. Связь между актором и вариантом использования показывает, что актор может выполнять определенные действия, которые система должна обрабатывать.
Extension points
«Extension points» (точки расширения) — это особый элемент на диаграмме вариантов использования (use case diagram), который позволяет представить возможность расширения функциональности системы путем внедрения дополнительных вариантов использования (use cases) без изменения основной логики приложения.
Точки расширения используются для определения мест где система расширяется новыми вариантами использования. Когда происходит такое расширение, новый вариант использования встраивается в основной вариант использования в точке расширения.
Таким образом, использование «Extension points» позволяет лучше структурировать функциональность системы и уменьшить сложность ее разработки, позволяя добавлять новые варианты использования без внесения изменений в существующий код.

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

Отношение «включение» (include) — используется, когда один вариант использования использует функциональность другого варианта использования. Это отношение показывает, что один вариант использования является составной частью другого варианта использования.

Отношение «расширение» (extend) — используется, когда один вариант использования может быть расширен другим вариантом использования, если возникают определенные условия. Это отношение показывает, что расширенный вариант использования является необязательным и может быть выполнен только при определенных условиях.

Отношение «общий актор» (generalization) — используется, когда несколько акторов имеют общие характеристики, но один актор является более общим, чем другой. Например, акторы «Клиент» и «Администратор» могут быть представлены более общим автором «Пользователь».

Отношения на диаграмме прецедентов описывают взаимодействие элементов системы и понять, как они связаны друг с другом. Это упрощает процесс разработки системы и помогает убедиться, что все требования к системе будут удовлетворены.
Системная граница
Граница системы — это прямоугольник, который описывает границы системы, для которого создается диаграмма прецедентов. Этот прямоугольник обозначает все функциональные возможности, которые предоставляет система и акторов, которые с ней взаимодействуют.
Граница системы на диаграмме прецедентов определяет, какие функциональные возможности должны быть реализованы и какие акторы будут взаимодействовать с системой. Это также позволяет определить границы ответственности и ее зависимости от внешних факторов.
Граница системы на диаграмме прецедентов может быть физической или логической. Физическая граница отображает границы программного обеспечения, которое запущено на физическом устройстве, таком как компьютер или сервер. Логическая граница отображает границы функциональности, которые разработаны для системы, независимо от физического устройства.
Как построить диаграмму вариантов использования
В этом разделе рассмотрим построение диаграммы вариантов использования. В качестве примера для разбора будет выступать модуль авторизации в абстрактной системе.
Определить цели и задачи
Определение целей и задач помогает установить понимание того, что необходимо отражать на диаграмма вариантов использования. Это позволяет разработчикам программного обеспечения и пользователям понимать, как и когда использовать диаграмму вариантов использования. Также это помогает определить, какая функциональность должна быть включена в систему и выявить потенциальные проблемы и ограничения, связанные с дизайном и разработкой.
На примере модуля авторизации пользователя цели и задачи могут быть следующими:
- Идентифицировать и описать все возможные варианты использования для авторизации пользователя.
- Выявить действия, которые пользователь может выполнять на каждом этапе авторизации.
- Идентифицировать все взаимодействия между пользователями и системой, связанные с авторизацией.
- Предоставить четкое понимание, как система реагирует на каждое действие пользователя, связанное с авторизацией.
- Помочь уточнить требования к системе по авторизации пользователя и выявить возможные проблемы и улучшения.
Определить акторов
Определение акторов на диаграмме прецедентов позволяет определить, кто именно будет использовать систему и каким образом. Акторы представляют собой роли, которые пользователи могут играть в системе. Они позволяют определить их потребности и требования к системе. Это помогает разработчикам и аналитикам понимать, какие функции системы будут наиболее важными для конечных пользователей, и какие функции могут быть необходимы для обеспечения эффективного взаимодействия между пользователями и системой. Определение акторов помогает при определении ограничений системы, принятии решений о дизайне и структуре системы.
На диаграмме прецедентов для модуля авторизации могут быть следующие акторы:
- Клиент – пользователь, который использует систему для авторизации и входа в свой аккаунт.
- Администратор – пользователь , который имеет права на управление настройками авторизации.
Определить основные варианты использования системы
Определение вариантов использования на диаграмме прецедентов позволит описать возможные сценарии взаимодействия акторов с системой.
| Вариант использования | Акторы |
| Авторизация по логину и паролю | Клиент, Администратор |
| Авторизация по e-mail и паролю | Клиент |
| Выход из системы | Клиент, Администратор |
| Создать новое правило авторизации | Администратор |
| Изменить правила авторизации | Администратор |
| Удалить правила авторизации | Администратор |
Установить отношения (связи) между акторами и вариантами использования
Установление отношений (связей) на диаграмме вариантов использования помогает описать взаимодействие между акторами и системой в рамках конкретного сценария использования. Это позволяет более точно определить требования к системе. А также понять, как она должна взаимодействовать с пользователями, чтобы достичь поставленных целей.

Кроме того, установление отношений на диаграмме вариантов использования позволяет выявить потенциальные проблемы. Например, в интерфейсе системы или взаимодействии с пользователями, определить, что передавать между системой и пользователями.
Выявить расширенные варианты использования и установить связи с основными сценариями
Расширенные варианты использования описывают возможные варианты поведения системы, которые могут возникнуть при выполнении основных сценариев. Установление связей между расширенными вариантами использования и основными сценариями позволяет показать, какие дополнительные шаги могут быть выполнены в рамках основного сценария при возникновении определенных условий.
Диаграмма прецедентов (use case)
Диаграмма вариантов использования UML — это основная форма требований к системе/программному обеспечению для новой, еще недостаточно разработанной программы. Варианты использования определяют ожидаемое поведение (что?), а не точный метод его реализации (как?).
Диаграмма прецедентов представляет собой графическое изображение вариантов использования (use case) системы, акторов (actors) и их взаимодействия в виде эллипсов и прямоугольников. Варианты использования описывают функциональность системы с точки зрения ее пользователей, а акторы представляют внешние сущности, которые используют систему.
Суть диаграммы вариантов использования заключается в том, что она помогает лучше понять требования к системе и определить ее функциональные возможности. Она используется для определения сценариев использования системы и для выявления потенциальных проблем взаимодействия между пользователями и системой. Диаграмма вариантов использования является основным инструментом для описания поведения системы на ранней стадии ее проектирования.
Компоненты диаграммы
В диаграмме вариантов использования вы будете работать с 5 основными компонентами:
Диаграмма прецедентов (use case диаграмма)
«Данная статья посвящена диаграмме прецедентов, чаще называемой диаграммой use-кейсов, или диаграммой вариантов использования. Это одно из важных понятий, которые необходимо освоить при изучении объектно-ориентированного программирования (ООП). В схемах (собственно, диаграммах) в данном случае использовался Astah UML, инструмент проектирования, поддерживающий UML. Чтобы освоить данный туториал, желательно скачать Astah здесь и ознакомиться (платный, но есть 20-дневный триал, чего должно быть достаточно), а также научиться им пользоваться, посмотрев документацию.
Что такое use case диаграмма
В объектно-ориентированной парадигме, когда речь идет о проектировании системы, удобно описывать дизайн с помощью Унифицированного Языка Моделирования (Unified Modeling Language, UML). UML-диаграмма use-кейсов применяется для краткого изложения сведений о пользователях проектируемой системы и их взаимодействии с ней.
В чем заключается взаимодействие пользователя с системой, каким оно может быть? Предположим, что создается приложение книжного интернет-магазина. В этом случае взаимодействия — это те действия, которые пользователи могут выполнять с помощью вашего приложения, например:
- Просмотр книг
- Покупка книг
- Добавление книг в корзину
Можно еще добавить много возможных взаимодействий, но основные будут эти.
Итак, демонстрировать взаимодействие системы с пользователем удобно в наглядном, графическом виде, с помощью диаграмм.
Из чего составляется диаграмма use-кейсов?
Из следующих компонентов:
Актор в UML
Актор в терминологии UML-диаграмм — это пользователь, взаимодействующий с системой (действующее лицо). Это может быть человек, организация или даже сервер/система.
Чтобы идентифицировать актора, необходимо ответить на простой вопрос: «Кто будет взаимодействовать с приложением?»
Допустим, нужно создать сайт магазина. Кто будет актором?
- Пользователь, и
- Администратор
В диаграммах use-кейсов актор обычно изображается в виде человечка, но может быть изображен и как на рисунке:

И называться в принципе как угодно, лишь бы было понятно стейкхолдерам и команде.
О use-кейсах, ассоциациях и границах системы
Эти понятия довольно просты, поэтому можно просто привести эти понятия и их обозначения на диаграмме:
- Use кейсы: широкие овалы, изображающие различные варианты использования, по которым может «проходить» пользователь.
- Ассоциация: линия, соединяющая («ассоциирующая») акторов и их use-кейсы. В сложных диаграммах важно четко знать, какие акторы связаны с какими use-кейсами.
- Границы системы: граница, задающая пределы системы для use кейсов. Все use кейсы, выходящие за пределы этой границы, будут считаться выходящими за пределы данной системы.
Например: клиент банка может видеть только свои транзакции, а не все проведенные транзакции в системе, поскольку такой use кейс выходит за границы системы.
В целом, несмотря на кажущуюся сложность для новичков, на практике работать с UML-диаграммами довольно просто. Единственная сложная вещь в UML-диаграммах — это отношения между элементами (Relationships). О них и поговорим.
Отношения в UML-диаграммах
Итак, Relationships, называемые еще связями. Существует 3 типа отношений:
Отношение включения
Отношение включения — обязательная, неотъемлемая связь (отношение) между use кейсами.
Представим это так: например вы голодны и хотите зайти куда-то перекусить. Вы заходите во Вкусно и Точка и говорите: «Я хочу заказать еду». Но что нужно сделать перед этим? Конечно, сначала нужно выбрать еду. Пример диаграммы:

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

Просто запомним: Отношение “Include” — обязательное, а “Extend” — опциональное.
Отношение обобщения
Обобщение (генерализация, generalization) — это, по сути, демонстрация отношений типа «порождающая сущность / порожденная сущность» (parent/child), между use кейсами или акторами.
Например, обобщение use кейсов:
- Логин (parent) -> Вход с помощью телефона/электропочты (child)
- Оплата (parent) -> Оплатить с помощью Сбербанка / Наличкой (child)
Отношения обобщения акторов:
- Менеджер -> Персонал
- Оптовики -> Ритейлеры
Отношение обобщения в ИТ-системе заведения быстрого питания:

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