Переход |
Top Previous Next |
Переход срабатывает, если исходное состояние перехода является текущим и выполняется условие срабатывания.
Условие срабатывания перехода в общем случае может включать в себя указание запускающего события (триггер) и охраняющее условие (guard). Если условие срабатывания перехода включает запускающее событие, то такой переход называется триггерным, если нет, то нетриггерным. Нетриггерный переход, у которого отсутствует и охраняющее условие, называется безусловным.
С помощью нетриггерных переходов осуществляется выбор нового состояния в точке ветвления. Для переходов, исходящих из точки ветвления, охраняющее условие записывается в квадратных скобках и может быть использовано альтернативное условие else. Особым видом нетриггерного перехода является «переход по завершении» — это переход, который происходит по окончании внутренней деятельности, приписанной его исходному состоянию.
Запускающее событие может трех видов: 1) событие времени; 2) событие сигнала; 3) событие изменения.
Событие времени записывается в форме «after интервал». Событие происходит, когда истекает указанный интервал от момента входа в текущее состояние. Значение выражения, задающего интервал, может быть любым неотрицательным вещественным числом.
Событие сигнала записывается в форме «when сигнал». Событие происходит, когда появляется указанный сигнал.
Событие изменения записывается в форме «when логическое_выражение». Событие происходит, когда значение логического выражения изменяется со значения false на значение true. Для того чтобы это событие появилось снова, необходимо, чтобы значение логического выражения стало ложным, а затем снова истинным. Однако если в момент входа в текущее состояние логическое выражение уже истинно, то событие происходит.
Триггерный переход из текущего состояния после появления запускающего события «возбуждается» (иногда используется термин «зажигается»). Нетриггерный переход возбуждается сразу после входа в его исходное состояние.
Если возбужденный переход не имеет охраняющего условия или оно в данный момент истинно, переход становится готовым к срабатыванию. В противном случае переход сбрасывается. Заметим, что если охраняющее условие выполнится позже и исходное состояние все еще будет текущим, переход уже не сработает.
На рис. 1 показана карта поведения, в которой между состояниями S1 и S2 имеются три триггерных перехода с запускающими событиями всех трех типов и одним и тем же охраняющим условием.
Рис.1
При срабатывании перхода выполняется последовательность операторов ("Операторы"), заданная в дискретных действиях перехода, если она есть. Действия перехода являются непрерываемыми.
Действия перехода, а также входные и выходные действия в состоянии выполняются мгновенно и «целиком», как единая неделимая последовательность операций. Заметим, что внутри этой последовательности операторы выполняются последовательно друг за другом и их порядок следования может влиять на результат действий.
Результатами последовательности действий в карте поведения могут быть: • изменение значений переменных (атрибутов) объекта; • посылка сигналов; • создание и уничтожение динамического объекта; • создание и уничтожение динамической связи; • выполнение прогона вложенной модели.
|