Нотация и семантика языка UML




Переход и событие - часть 4


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

Аналогичное замечание справедливо и для нетриггерных переходов, когда из одного состояния выходят несколько переходов по завершении деятельности. Каждый из таких переходов также должен содержать собственное сторожевое условие, при этом никакие два или более сторожевых условий не должны одновременно принимать значение "истина". В противном случае на диаграмме состояний будет иметь место конфликт нетриггерных переходов, что также делает несостоятельной (ill formed) модель системы в целом.

Триггерные и нетриггерные переходы на диаграмме состояний

Рис. 9.5.  Триггерные и нетриггерные переходы на диаграмме состояний

Изображенный фрагмент диаграммы состояний (рис. 9.5) моделирует изменение состояний банкомата при проверке ПИН-кода. Нетриггерные переходы на данной диаграмме помечены сторожевыми условиями, которые исключают конфликт между ними. Что касается триггерного перехода, помеченного событием отмена транзакции, то он происходит независимо от проверки ПИН-кода в том случае, когда клиент решил отказаться от ввода ПИН-кода.

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

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


Содержание  Назад  Вперед