Открытая коллекция знаний

OpenU.Ru

Справочник UML. Объектно-ориентированное проектирование.



deferred event (отложенное событие)

Событие, распознавание которого отложено до тех пор, пока объект не выйдет из определимого состояния.
См. state machine; transition.

Семантика

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

Нотация

Отложенное событие отображается в виде внутреннего перехода, запускаемого по событию, помеченному специальным зарезервированным словом defer (отложить). Отсрочка события относится к состоянию и всем его, вложенным подсостояниям (рис. 88).

Рис. 87. Текущее событие

Рис. 88. Отложенное событие

Алфавитный указатель