> 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-posledovatelnosti/freimy.md).

# Фреймы

{% hint style="info" %}
**Фреймы** — это структурированные блоки, которые используются для организации группы сообщений в логически связанные последовательности.
{% endhint %}

## **Фрейм Alt**

На диаграмме последовательности фрейм `alt` используется для представления условного оператора, позволяющего определить две или более взаимоисключающие альтернативы выполнения действий в зависимости от условия. Он может содержать один или несколько блоков альтернатив.

<figure><img src="/files/x2EvzaeYAcURlc1o7P0S" alt="" width="275"><figcaption><p>Пример фрейма alt на диаграмме последовательности</p></figcaption></figure>

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

На диаграмме фрейм `alt` строится с помощью ключевых слов `alt`, `else` и `end` и отображается в виде горизонтального прямоугольника, разделенным пунктирной линией на несколько блоков альтернатив. Код, расположенный между `alt` и `else`, описывает условие, при котором нужно выполнить определенный блок действий. Код, расположенный между `else` и `end`, описывает действия, которые нужно выполнить, если условие не выполнено.

## **Фрейм Opt**

Фрейм `opt` (от «optional», на русском «необязательный») — позволяет указать, что определенные сообщения являются необязательными. Таким образом, если условие выполняется, то сообщение отправляется, а если нет, то сообщение не отправляется.

<figure><img src="/files/ihF6QG2gKjTw5HTef0Rh" alt="" width="293"><figcaption><p>Пример фрейма opt на диаграмме последовательности</p></figcaption></figure>

Фрейм `opt` используется, когда выполнение какой-то части последовательности необязательно и может быть пропущено, если не выполняется определенное условие. Например, процесс покупки товара онлайн,он может использоваться для отображения условия наличия купона на скидку. Если купон есть, то будет отправлено сообщение для применения скидки, а если нет, то этот шаг может быть пропущен.

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

## **Фрейм Loop**

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

<figure><img src="/files/7F1kOwfnYX71P1z7EaOO" alt=""><figcaption><p>Пример фрейма loop на диаграмме последовательности</p></figcaption></figure>

Ключевое слово «loop» указывает на начало цикла, а «end loop» — на его конец. Условие, которое указывается в квадратных скобках, определяет, когда цикл должен завершиться.

Фрейм «loop» отображается в виде прямоугольника, внутри которого располагается последовательность действий, которые должны быть выполнены в рамках цикла. В верхней части прямоугольника указывается условие завершения цикла.

## **Фрейм Par**

Фрейм `par` (parallel) используется на диаграммах для отображения параллельных процессов, которые происходят одновременно и независимо друг от друга. Он позволяет разделять диаграмму на несколько потоков выполнения, которые могут выполняться параллельно.

<figure><img src="/files/SrqNk6CM5pEQWJe3w3LQ" alt="" width="500"><figcaption><p>Пример фрейма par на диаграмме последовательности</p></figcaption></figure>

Фрейм `par` представляется как прямоугольник, внутри которого располагаются стрелки, отображающие процессы, выполняющиеся параллельно. Каждый из этих процессов представлен в виде своей собственной последовательности шагов и взаимодействий.

## **Фрейм Neg**

Фрейм `neg` (или Negative Frame) на диаграмме используется для представления альтернативной сценарной ветки, которая не должна происходить в системе. То есть он используется для описания ошибок или невозможных сценариев.

На диаграмме фрейм `neg` отображается в виде прямоугольника, с диагональной чертой, разделяющей область выполнения на две части. Фрейм `neg` может содержать вложенные элементы, такие как сообщения, объекты, а также другие фреймы.

## **Фрейм Ref**

На диаграмме фрейм `Ref` (Reference) используется для ссылки на другую диаграмму или фрагмент кода, который описывает детали процесса внутри данного фрейма. Он позволяет вынести подробную информацию на отдельную диаграмму, упрощая основную диаграмму и делая её более читабельной.

<figure><img src="/files/YHKINawY68F8CXwGZ83f" alt="" width="563"><figcaption><p>Пример фрейма ref на диаграмме последовательности</p></figcaption></figure>

## **Фрейм SD**

На диаграмме последовательности фрейм `SD` (Sequence Diagram) позволяет очертить всю диаграмму и указать ее имя. Обычно используется если на диаграмму ссылается другая диаграмма.

<figure><img src="/files/Za3HSWhA8nTC82sS78QZ" alt="" width="357"><figcaption><p>Пример фрейма sd на диаграмме последовательности</p></figcaption></figure>

Источники:&#x20;

* <https://itonboard.ru/analysis/394-diagramma_posledovatelnosti_sequence_diagrams_uml/>
* <https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-sequence-diagram/>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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-posledovatelnosti/freimy.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.
