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

OpenU.Ru

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



current event (текущее событие)

Событие, которое запустило непрерывный шаг выполнения конечного автомата.
См. run to completion; state machine: transition.

Семантика

В виде реакции на событие конечный автомат может для удобства обходить несколько связанных сегментов переходов. Все сегменты переходов, кроме конечного, идут к псевдосостояниям - фиктивным состояниям, которые помогают структурировать конечный автомат. Фиктивные состояния при этом не ожидают внешних событий. Вообще, все сегменты можно собрать в один-единственный переход, однако если переход делится на несколько сегментов с использованием псевдосостояний, это позволяет нескольким переходам иметь общие под последовательности.
Выполнение цепочки сегментов перехода атомарно - это часть одного шага, который не могут прервать внешние события. Во время выполнения такой цепочки действия и сторожевые условия, прикрепленные к сегментам перехода, имеют неявный доступ к событию, которое запустило первый переход, и к его параметрам. Во время фазы перехода (transition) это событие известно как текущее. Тип такого события можно узнать с помощью полиморфной операции или оператора выбора. После того как тип события стал известен, можно получить доступ и к его параметрам.
Ткущее событие особенно уместно использовать во время начального перехода при создании нового объекта для получения параметров создания. При создании нового объекта событие, которое его создает, становится текущим, а его параметры - доступными во время | начального перехода конечного автомата нового объекта.

Пример

На РИС. 87 изображен переход из состояния Idle (Ожидание) к состоянию Purchase (Покупка), который запускается событием request (запрос). Действие на входе при покупке вызывает операцию setup (установка), при которой используется текущее событие. Программа имеет доступ к текущему событию для того, чтобы получить событие request и его параметр, product (продукт). Если у текущего события существует несколько возможных связываний, то, чтобы получить нужное переключающее событие, программа может использовать оператор выбора. Синтаксис определяется языком программирования.

Нотация

Текущее событие можно обозначить с помощью ключевого слова currentEvent, которое вставляется в выражение. Конкретный язык выражения может предоставить и более подробный синтаксис.

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