> For the complete documentation index, see [llms.txt](https://docs.system-analyst-base.ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.system-analyst-base.ru/hard-skills/proektirovanie/notacii-i-diagrammy/uml/diagramma-precedentov-use-case.md).

# Диаграмма прецедентов (use case)

{% hint style="info" %}
**Диаграмма вариантов использования UML** — это основная форма требований к системе/программному обеспечению для новой, еще недостаточно разработанной программы. Варианты использования определяют ожидаемое поведение (что?), а не точный метод его реализации (как?).&#x20;
{% endhint %}

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

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

## Компоненты диаграммы <a href="#use-case-diagram-components" id="use-case-diagram-components"></a>

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

* Актер (Actor)
* Вариант использования (use case)
* Ассоциации (Association)
* Границы системы (Boundaries)
* Отношения (Relationships)

## Актер

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

Чтобы идентифицировать актера, вам нужно ответить на этот очень простой вопрос:

> «Кто будет **взаимодействовать** с приложением?»

## О use-кейсах, ассоциациях и границах системы <a href="#h--usecase-association-boundary" id="h--usecase-association-boundary"></a>

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

* **Варианты использования**: овалы горизонтальной формы, обозначающие различные варианты использования, которые может иметь пользователь.

{% content-ref url="/pages/iVtii53GsXal2uz22iHM" %}
[Use case](/soft-skills/trebovaniya/klassifikaciya-trebovanii/uroven-polzovatel/use-case.md)
{% endcontent-ref %}

* **Ассоциация:** линия между актерами и вариантами использования. В сложных диаграммах важно знать, какие актеры с какими вариантами использования связаны.

Обозначается как: *сплошная линия*

* **Граничные рамки системы**: блок, который устанавливает область действия системы для вариантов использования. Все нестандартные варианты использования будут считаться выходящими за рамки этой системы.&#x20;

## Отношения <a href="#h--relationships" id="h--relationships"></a>

Существуют 3 типа отношений (Relationships):

* **Включение** (Include)
* **Расширение** (Extend)
* **Обобщение** (Generalization)

### **Включение**

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

Обозначается как: *пунктирная линия с подписью "include"*

### **Расширение**&#x20;

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

Обозначается как: *пунктирная линия с подписью "extend"*

### **Обобщение**&#x20;

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

*Обозначается как: сплошная линия с незакрашенным треугольником на конце*&#x20;

## Пример диаграммы прецендентов

<figure><img src="/files/e7Pabqhi1MBlSbqA2T3i" alt="" width="563"><figcaption><p>Пример диаграммы прецендентов</p></figcaption></figure>

Источники:

* <https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-use-case-diagram/>
* <https://itonboard.ru/analysis/629-diagramma_variantov_ispolzovanija_use_case_diagram/>
* <https://hathai25.github.io/p/uml-use-case-diagram-tutorial/>

Почитать:

* <https://habr.com/ru/companies/vdsina/articles/561272/>
* <https://habr.com/ru/articles/566218/>
