OpenU.Ru
Состояние, которое ссылается на вложенный автомат, копия которого представляет
собой неявную часть общего конечного автомата. Может иметь состояния-"заглушки
", служащие для идентификации состояний во вложенном автомате.
См. state; state machine;
stub state
Семантика
Наличие состояния-ссылки на вложенный автомат эквивалентно вставке в него копии этого вложенного автомата.
Нотация
Состояние ссылки на вложенный автомат представляет собой СИМВОЛ состояния,
у которого есть метка следующего содержания:
include имя-вложенного-автомата
К состояниям-"заглушкам" в состоянии-ссылке на вложенный автомат могут
вести стрелки переходов. Их изображают в виде суррогатных переходов, то есть
стрелок, которые заканчиваются у черты, изображающей "заглушку". Возле
такой черты ставится имя того состояния сложенного автомата, на которое делается
ссылка.
Пример
На рис. 173 изображена часть конечного автомата, в котором есть состояние,
ссылающееся на вложенный автомат. Этот автомат занимается продажей билетов тем
клиентам, у которых есть счет. Часть его работы представляет собой идентификацию
клиента. Идентификация клиента нужна и другим конечным автоматам, поэтому ее
решено было оформить в виде отдельного автомата. На рис. 174 изображено определение
конечного автомата Identify (Идентифицировать), который является вложенным для
других конечных автоматов. При обычном входе во вложенный автомат происходит
считывание кредитной карты клиента, однако, здесь есть и явное состояние входя,
которое дает кассиру возможность ввести имя клиента вручную. Если идентификация
прошла успешно, то вложенный автомат прекращает работу в своем конечном состоянии.
В противном случае он переходит в состояние Failure (Ошибка).
На рис. 173 ссылка на вложенный автомат изображена с помощью пиктограммы состояния,
у которой указано ключевое слово include и имя вложенного автомата. Обычный
вход, но вложенный автомат изображается в виде стрелки, идущей к границе вложенного
автомата. Этот переход активизирует исходное состояние вложенного автомата.
Обычный выход изображается как переход по завершении, идущий от границы вложенного
автомата. Переход по завершении запускается. только в том случае, если вложенный
автомат закончил свою работу стандартным образом.
Вход в явное состояние ManualEntry (РучнойВвод) изображен как переход в "заглушку",
находящуюся внутри символа состояния, ссылающегося на вложенный автомат. У "заглушки"
есть метка с именем целевого состояния вложенного автомата. Точно так же изображается
и выход из явного состояния Failure (Ошибка) - в виде перехода по завершении,
идущего от "заглушки". Переходы в состояния - "заглушки"
осуществляются как при помощи переключающих событий,
так и без них.