Переход

Top  Previous  Next

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

 

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

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

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

 

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

и может быть использовано альтернативное условие else.

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

 

Запускающее событие может трех видов:

1) событие времени;

2) событие сигнала;

3) событие изменения.

 

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

Значение выражения, задающего интервал, может быть любым неотрицательным вещественным числом.

 

Событие сигнала записывается в форме «when сигнал». Событие происходит, когда появляется указанный сигнал.

 

Событие изменения записывается в форме «when логическое_выражение». Событие происходит, когда значение логического выражения изменяется со значения false на значение true.

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

логическое выражение уже истинно, то событие происходит.

 

Триггерный переход из текущего состояния после появления запускающего события «возбуждается» (иногда используется термин «зажигается»).

Нетриггерный переход возбуждается сразу после входа в его исходное состояние.

 

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

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

 

На рис. 1 показана карта поведения, в которой между состояниями S1 и S2 имеются три триггерных перехода с запускающими событиями всех трех типов и одним и тем же охраняющим условием.

 

Переходы

                                         Рис.1

 

При срабатывании перхода выполняется последовательность операторов  ("Операторы"), заданная в дискретных действиях перехода, если она есть. Действия перехода являются непрерываемыми.

 

Действия перехода, а также входные и выходные действия в состоянии выполняются мгновенно и «целиком», как единая неделимая последовательность операций.

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

 

Результатами последовательности действий в карте поведения могут быть:

• изменение значений переменных (атрибутов) объекта;

• посылка сигналов;

• создание и уничтожение динамического объекта;

• создание и уничтожение динамической связи;

• выполнение прогона вложенной модели.