# Диаграмма прецедентов (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/>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.system-analyst-base.ru/hard-skills/proektirovanie/notacii-i-diagrammy/uml/diagramma-precedentov-use-case.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
