Расширенная нотация диаграммы деятельности
Объектные потоки
Заголовок раздела «Объектные потоки»В UML поток управления переносит возможность выполнить действие, а объектный поток переносит значение. Узел объекта показывает это значение между действиями. Например, действие «Создать запись» производит объект Запись, а «Подтвердить запись» получает его на вход.
Контакт (pin) — вход или выход конкретного действия; он показывается маленьким квадратом на его границе. Узел параметра деятельности (activity parameter node) связывает внешние входы и выходы всей деятельности с её внутренним графом. Центральный буфер временно хранит объектные токены, а хранилище данных (data store) обозначает место, из которого значение можно читать повторно.


Объектный поток не заменяет диаграмму классов: он показывает, как значение участвует в конкретном поведении, а не полный набор его свойств и связей.
События и время
Заголовок раздела «События и время»Сигнал (Signal) — классификатор, задающий вид асинхронного сообщения и его атрибуты. Его приём представлен событием SignalEvent.
Посылка сигнала (SendSignalAction) создаёт экземпляр сигнала, передаёт его целевому объекту и сразу продолжает выполнение: ответа она не ожидает. Приём события (AcceptEventAction) ждёт одно или несколько заданных событий и блокирует ветвь до их поступления. Если его триггер — SignalEvent, он принимает соответствующий сигнал; этот же узел используют для других видов событий, в том числе событий времени.
Отдельный узел приёма события времени используют, когда выполнение продолжается в заданный момент или по истечении интервала.


Структурированные части и повторение
Заголовок раздела «Структурированные части и повторение»Структурированный узел объединяет фрагмент деятельности с общими входами и выходами. Область расширения (expansion region) показывает обработку набора объектов: последовательно (iterative), параллельно (parallel) или конвейерно (stream). Используйте её, когда именно способ обработки коллекции важен для модели.

Прерывания и исключения
Заголовок раздела «Прерывания и исключения»Область прерывания (interruptible activity region) обозначает фрагмент, внутри которого обычный поток может быть прекращён событием. Прерывающее ребро передаёт выполнение в обработчик и останавливает остальные действия этой области. Если исключение влияет на данные, это стоит явно показать объектным потоком и согласовать с альтернативным сценарием.

Структурированный узел деятельности обозначают пунктирной рамкой со скруглёнными углами и ключевым словом «structured». Если такой узел возвращает значение, обработчик исключения должен вернуть совместимое значение: иначе дальнейшая часть деятельности не сможет получить ожидаемый объектный токен.
Как читать семантику
Заголовок раздела «Как читать семантику»Диаграмма деятельности использует токенную семантику. Упрощённо: начальный узел создаёт токен; действие выполняется, когда получает нужные токены; решение пропускает токен по защитному условию; развилка создаёт параллельные токены; соединение синхронизирует их; конечный узел деятельности прекращает всю деятельность. Поэтому развилку и решение нельзя подменять друг другом, даже если обе фигуры внешне «разветвляют» поток.
Точная последовательность чтения основных узлов такова:
- начальный узел (
initial node) создаёт управляющий токен; - действие (
action) становится готовым, когда получило необходимые входные управляющие и объектные токены; - решение (
decision) передаёт токен по исходящему ребру с истинным защитным условием (guard); - слияние (
merge) передаёт дальше токен с любого входящего ребра; - развилка (
fork) создаёт копии токена для параллельных ветвей; - соединение (
join) ждёт токены на всех нужных входящих рёбрах и синхронизирует ветви; - конечный узел потока (
flow final) поглощает один поток, а конечный узел деятельности (activity final) прекращает всю деятельность и оставшиеся токены в ней.
Сети Петри как контекст
Заголовок раздела «Сети Петри как контекст»Сеть Петри — ориентированный двудольный граф из позиций и переходов. Маркировка сопоставляет позициям число токенов; переход разрешён, когда токены есть во всех его входных позициях, и при срабатывании переносит их на выходы. Эта модель полезна для понимания параллельности и синхронизации.
Диаграмма деятельности похожа на сеть Петри токенной семантикой, но не сводится к ней один к одному: UML различает действия, управляющие и объектные токены, типы данных, исключения и иерархию деятельности. Для проектной работы обычно достаточно понимать передачу токенов и различать управление и данные.
В модели
Заголовок раздела «В модели»Сначала постройте обычную диаграмму деятельности. Если поведение важнее последовательности сообщений, оставайтесь в модели деятельности; если нужно показать участников реализации и их вызовы, переходите к диаграмме последовательности.