Выполняется набор путей потока по умолчанию (см. Выполнение набора схем потока). Если это действие не приводит к записи состояния и диаграмма имеет параллельную декомпозицию, то каждое параллельное состояние становится активным (см. Ввод состояния).
Если выполнение путей потока по умолчанию не приводит к введению состояния, возникает ошибка несоответствия состояний.
Если диаграмма не имеет состояний, каждое выполнение эквивалентно инициализации диаграммы. В противном случае активные нижестоящие элементы выполняются. Параллельные состояния выполняются в том же порядке, в котором они становятся активными.
Если родительский элемент состояния неактивен, выполните шаги 1-4 для родительского элемента.
Если это состояние является параллельным, убедитесь, что активны все родственные узлы с более высоким (то есть более ранним) порядком ввода. В противном случае сначала выполните шаги 1-5 для этих состояний.
Состояния Parallel (AND) упорядочиваются для ввода в зависимости от того, используется ли явное упорядочение (по умолчанию) или неявное упорядочение. Дополнительные сведения см. в разделах Явное упорядочение параллельных состояний и неявное упорядочение параллельных состояний.
Отметьте состояние как активное.
Выполните любые действия ввода.
При необходимости введите нижестоящие элементы:
Если состояние содержит соединение истории и в какой-то момент после последней инициализации диаграммы был активный нижестоящий элемент этого состояния, выполните действия ввода для этого нижестоящего элемента. В противном случае выполните пути потока по умолчанию для состояния.
Если это состояние имеет нижестоящие элементы, которые являются параллельными состояниями (параллельная декомпозиция), выполните шаги ввода с 1 по 5 для каждого состояния в соответствии с порядком ввода.
Если это состояние имеет только одно дочернее подсостояние, подсостояние становится активным, когда родительское состояние становится активным, независимо от наличия перехода по умолчанию. При вводе родительского состояния подсостояние автоматически становится активным. Наличие любого внутреннего перехода не влияет на определение активного подсостояния.
Если это состояние является параллельным, выполните все шаги входа для одноуровневого состояния, следующего в порядке входа, если оно существует.
Если родитель пути перехода не совпадает с родителем текущего состояния, выполните шаги ввода 6 и 7 для непосредственного родителя этого состояния.
Выполняется набор внешних блок-схем (см. Выполнение набора блок-схем). Если это действие вызывает переход состояния, выполнение останавливается. (Обратите внимание, что этот шаг никогда не выполняется для параллельных состояний.)
Во время действий выполняются действительные действия на событии.
Выполняется набор внутренних блок-схем. Если это действие не вызывает переход состояния, активные нижестоящие элементы выполняются, начиная с шага 1. Параллельные состояния выполняются в том же порядке, в котором они становятся активными.
Если это параллельное состояние, убедитесь, что все одноуровневые состояния, которые стали активными после этого состояния, уже стали неактивными. В противном случае выполните все шаги выхода из этих одноуровневых состояний.
При наличии активных нижестоящих элементов выполните шаги выхода для этих состояний в обратном порядке, в котором они стали активными.
Выполните все действия выхода.
Пометить состояние как неактивное.
Блок-схемы выполняются, начиная с шага 1 ниже с набором начальных переходов. Начальные переходы для внутренних блок-схем представляют собой все переходные сегменты, которые происходят в соответствующем состоянии и полностью находятся в этом состоянии. Начальные переходы для внешних блок-схем представляют собой все переходные сегменты, которые происходят в соответствующем состоянии, но находятся, по меньшей мере, частично вне этого состояния. Начальные переходы для диаграмм последовательности операций по умолчанию - это все сегменты перехода по умолчанию, которые имеют начальные точки с одним и тем же родителем:
Происходит упорядочение набора переходных сегментов.
Пока есть оставшиеся сегменты для тестирования, выполняется тестирование сегмента на достоверность. Если сегмент недействителен, выполняется тестирование следующего сегмента. Если сегмент действителен, выполнение зависит от назначения:
Государства
Тестирование переходных сегментов останавливается, и путь перехода формируется путем резервирования и включения переходного сегмента от каждого предшествующего соединения до соответствующего начального перехода.
Состояния, являющиеся непосредственными нижестоящими элементами родительского объекта выхода из пути перехода (см. раздел Выход из активного состояния).
Выполняется действие перехода из окончательного пути перехода.
Состояние назначения становится активным (см. раздел Ввод состояния).
Соединения без сегментов исходящего перехода
Тестирование прекращается без каких-либо выходов из состояния или записей.
Соединения с исходящими переходными сегментами
Шаг 1 повторяется с набором исходящих сегментов из соединения.
После тестирования всех исходящих сегментов перехода на стыке выполните обратную трассировку входящего сегмента перехода, который привел вас к стыку, и продолжите на шаге 2, начиная со следующего сегмента перехода после сегмента обратного перехода. Набор блок-схем завершает выполнение после завершения тестирования всех пусковых переходов.
Выполнение события выходного пограничного триггера эквивалентно изменению значения выходных данных. Все остальные события выполняются следующим образом:
Если получатель события активен, то выполняется (см. Выполнение активной диаграммы и Выполнение активного состояния). (Получатель события является родителем события, если не происходит прямая широковещательная передача события с использованием send() функция.)
Если получатель события не активен, ничего не происходит.
После трансляции события вещатель выполняет логику раннего возврата на основе оператора типа действия, вызвавшего событие.
Тип действия | Логика раннего возврата |
|---|---|
Запись состояния | Если состояние больше не активно в конце широковещательной передачи события, то все остальные шаги при входе в состояние не выполняются. |
Выход из состояния | Если состояние больше не активно в конце широковещательной передачи события, все остальные действия выхода и шаги при переходе состояния не происходят. |
Состояние во время | Если состояние больше не является активным в конце широковещательной передачи события, то все остальные шаги при выполнении активного состояния не выполняются. |
Состояние | Если исходное состояние внутренней или внешней блок-схемы или родительское состояние блок-схемы по умолчанию больше не активны в конце широковещательной передачи событий, то остальные шаги при выполнении набора блок-схем не происходят. |
Переход | Если родительский элемент пути перехода не активен или у него есть активный дочерний элемент, остальные действия перехода и запись состояния не выполняются. |