Элементы управления диаграммой активности UML

  1. Начальный узел
  2. Flow Final Node
  3. Активный Финальный Узел
  4. Узел решения
  5. Узел слияния
  6. Вилочный узел
  7. Присоединиться к узлу

Управляющий узел - это узел активности, используемый для координации потоков между другими узлами. Это включает: Управляющий узел - это узел активности, используемый для координации потоков между другими узлами

Обзор узлов контроля активности.

Узлы контроля активности можно использовать как в диаграммы деятельности а также в обзорные диаграммы взаимодействия ,

Начальный узел

Начальный узел - это управляющий узел, в котором поток запускается, когда вызывается действие.

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

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

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

Начальные узлы показаны в виде маленького сплошного круга.

Начальные узлы показаны в виде маленького сплошного круга

Начальный узел активности.

Flow Final Node

Последний узел потока - это последний узел управления, который завершает поток . Он уничтожает все токены, которые приходят на него, но не влияет на другие потоки в деятельности. Финал потока был представлен в UML 2.0.

Обозначение конечного узла потока - маленький круг с X внутри.

Поток конечного узла.

Активный Финальный Узел

Последний узел активности - это контрольный последний узел, который останавливает все потоки в деятельности . Финальная активность была введена в UML 2.0.

Активность может иметь более одного конечного узла активности. Первый достигнутый останавливает все потоки в деятельности. Токен, достигший конечного узла действия, завершает действие. В частности, он останавливает все выполняемые действия в действии и уничтожает все токены в узлах объекта, кроме узлов параметров выходного действия. Прекращение выполнения действий синхронного вызова также завершает любое поведение, которое они ожидают возврата. На любое поведение, вызываемое асинхронно действием, это не влияет. Если не требуется прерывать все потоки в действии, вместо этого используйте flow final.

Активные конечные узлы показаны в виде сплошного круга с полым кругом внутри. Его можно рассматривать как цель, обозначаемую как «яблочко», или цель.

Его можно рассматривать как цель, обозначаемую как «яблочко», или цель

Активность конечного узла.

Узел решения

Узел принятия решений - это управляющий узел, который принимает токены на одном или двух входящих фронтах и выбирает один исходящий фронт из одного или нескольких исходящих потоков. Узлы принятия решений были введены в UML для поддержки условий в действиях.

Края, входящие и выходящие из узла принятия решений, кроме входного потока принятия решения (если таковой имеется), должны быть либо всеми потоками объекта, либо всеми потоками управления .

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

Какой из краев фактически пройден, зависит от оценки защитных элементов на отходящих кромках. Порядок, в котором оцениваются охранники, не определен , то есть мы не должны полагаться на какой-либо порядок визуального или текстового описания.

Обозначение узла принятия решения является ромбовидным символом.

Обозначение узла принятия решения является ромбовидным символом

Узел принятия решения с двумя исходящими ребрами с защитой.

Разработчик должен организовать, чтобы каждый токен выбирался только для прохождения одного исходящего фронта . Для точек принятия решения предопределенный защитный код « else » может быть определен не более чем для одного исходящего фронта.

Узел принятия решения с тремя исходящими ребрами и защитой [else].

В решении может быть указано поведение ввода решения . Поведение ввода решений было введено в UML, чтобы избежать лишних пересчетов в охранниках.

В этом случае каждый токен данных передается в поведение до того, как защита будет оценена на исходящих ребрах. Поведение вызывается без ввода для управляющих токенов. Вывод поведения доступен каждому охраннику. Поскольку такое поведение используется в процессе предложения токенов исходящим ребрам, его можно запускать много раз на одном и том же токене, прежде чем токен будет принят этими ребрами. Это означает, что у поведения не может быть побочных эффектов .

Поведение ввода решения определяется ключевым словом «solutionInput» и некоторым поведением решения или условием, помещенным в символ примечания и прикрепленным к соответствующему узлу принятия решения.

Узел принятия решения с поведением ввода решения .

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

Поток ввода решения указывается ключевым словом «SolutionInputFlow», аннотирующим этот поток.

Поток ввода решения указывается ключевым словом «SolutionInputFlow», аннотирующим этот поток

Узел принятия решения с потоком ввода решения .

Если есть как поведение ввода решения, так и поток ввода решения , токен, предложенный в потоке ввода решения, передается поведению (в качестве единственного аргумента, если обычный входящий фронт является потоком управления, в качестве второго аргумента, если он является поток объекта). Узлы принятия решений с дополнительным входным потоком принятия решений предлагают токены для исходящих фронтов, только если на каждом входящем фронте предлагается один токен.

Узел слияния

Узел слияния - это управляющий узел, который объединяет несколько входящих альтернативных потоков для приема одного исходящего потока. Нет соединения токенов. Слияние не должно использоваться для синхронизации параллельных потоков .

Например, если решение используется после разветвления, два потока, выходящие из решения, должны быть объединены в один перед переходом к соединению; в противном случае объединение будет ожидать обоих потоков, только один из которых поступит.

Все ребра, входящие и выходящие из узла слияния, должны быть либо потоками объектов, либо потоками управления .

Обозначение узла слияния представляет собой ромбовидный символ с двумя или более ребрами, входящими в него, и одним ребром активности, выходящим из него.

Узел слияния с тремя входящими ребрами и одним исходящим ребром

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

Узел слияния и узел принятия решений объединены с использованием одного и того же символа

Вилочный узел

Узел Fork - это управляющий узел, который имеет один входящий фронт и несколько исходящих фронтов и используется для разделения входящего потока на несколько параллельных потоков. Узлы-вилки введены для поддержки параллелизма в действиях . По сравнению с UML 1.5 активность UML 2.0 развивает модель неограниченного параллелизма.

Жетоны, прибывающие на развилку, дублируются через исходящие ребра. Если по крайней мере одно исходящее ребро принимает токен, создаются дубликаты токена, и одна копия пересекает каждое ребро, которое принимает токен. Исходящие ребра, которые не приняли токен из-за того, что их цели не приняли его, сохраняют свою копию в неявной очереди FIFO, пока она не будет принята целью. Остальные исходящие ребра не получают токен.

Обозначение для узла-вилки - это отрезок линии, в который входит одно ребро активности, а два или более ребер выходят из него.

Обозначение для узла-вилки - это отрезок линии, в который входит одно ребро активности, а два или более ребер выходят из него

Узел вилки с одним ребром активности, входящим в него, и тремя ребрами, выходящими из него.

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

Комбинированный узел соединения и узел вилки .

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

Присоединиться к узлу

Узел соединения - это управляющий узел, который имеет несколько входящих ребер и один исходящий ребро и используется для синхронизации входящих параллельных потоков. Узлы соединения представлены для поддержки параллелизма в действиях.

Обозначение узла соединения представляет собой отрезок линии, в который входит несколько ребер активности, и только один ребро покидает его.

Соедините узел с тремя ребрами активности, входящими в него, и одним ребром, выходящим из него.

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

Комбинированный узел соединения и узел вилки .

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

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

Спецификацией соединения по умолчанию является зарезервированная строка « и ». Это эквивалентно спецификации, которая требует по крайней мере один токен, предлагаемый на каждом входящем фронте.

Спецификации соединения отображаются в фигурных скобках рядом с узлом соединения как joinSpec = ....

Спецификации соединения отображаются в фигурных скобках рядом с узлом соединения как joinSpec =

Узел соединения со спецификацией соединения, показанной в фигурных скобках.