Действия в состояниях
Для указания действий, выполняемых при входе в состояние и при выходе из состояния, используются метки entry и exit соответственно.
Например, как показано на рис. 12.6, при входе в состояние Активна выполняется операция УстановитьТревогу() из класса Контроллер, а при выходе из состояния – операция СбросТревоги().
Рис. 12.6. Входные и выходные действия и деятельность в состоянии Активна
Действие, которое должно выполняться, когда система находится в данном состоянии, указывается после метки do. Считается, что такое действие начинается при входе в состояние и заканчивается при выходе из него. Например, в состоянии Активна это действие ПодтверждатьТревогу().
Условные переходы
Между состояниями возможны различные типы переходов. Обычно переход инициируется событием. Допускаются переходы и без событий. Наконец, разрешены условные или охраняемые переходы.
Правила пометки стрелок условных переходов иллюстрирует рис. 12.7.
Рис. 12.7.Обозначение условного перехода
Порядок выполнения условного перехода:
1) происходит событие;
2) вычисляется условие УсловиеПерехода;
3) при УсловиеПерехода=true запускается переход и активизируется действие, в противном случае переход не выполняется.
Пример условного перехода между состояниями Инициализация и Ожидание приведен на рис. 12.8. Он происходит по событию ПитаниеПодано, но только в том случае, если достигнут боевой режим лазера.
Рис. 12.8.Условный переход между состояниями
Дата добавления: 2019-02-07; просмотров: 370;