OpenU.Ru
Псевдосостояние, часть одного целого перехода в конечном автомате. Переходное
состояние не разбивает непрерывный шаг при выполнении перехода.
См. branch, merge.
Семантика
На пути от исходного состояния к целевому переход может пересекать границы
нескольких композитных состояний. При этом может осуществляться одно или несколько
действий при входе и выходе. Иногда бывает необходимо чередовать одно или несколько
действий перехода с действиями при входе и выходе вложенных состояний. При использовании
простого перехода это невозможно, так как у него есть только одно действие.
Кроме того, иногда удобно предписывать нескольким переключающим событиям один
переход или же, наоборот, делать так, чтобы одно переключающее событие могло
запускать несколько различных переходов с разными сторожевыми условиями.
Переходное состояние является псевдосостоянием, и это дает возможность составлять
один общий переход из ряда фрагментов. Оно может иметь один или несколько сегментов
входящего и исходящего переходов. При этом у него не бывает внутренней деятельности,
конечного автомата или исходящих переходов, которые запускаются переключающими
событиями. Это фиктивное состояние, служащее для структурирования переходов,
которое не может быть активным в течение конечного периода времени.
Переходное состояние используется для создания структуры общего перехода из
нескольких сегментов. Все сегменты, следующие за первым, не имеют переключающего
события. Переключающее событие может быть только у первого из этих сегментов,
а сторожевые условия у всех. Фактическое сторожевое условие является логическим,
умножением всех частных сторожевых условий сегментов. Переход не запускается,
если не удовлетворены все сторожевые условия из этого множества. Иными словами,
конечный автомат не может пребывать в переходном состоянии,
В одно переходное состояние может входить несколько переходов, у каждого из
которых будет свое собственное переключающее событие (впрочем, переключающего
события может и не быть). Каждый
маршрут, проходящий через множество переходных состояний, представляет собой
отдельный переход.
Исходящий переход может иметь сторожевое условие. Если исходящих переходов несколько,
значит, это разветвление, и каждый переход должен иметь свое сторожевое условие.
К исходящему переходу может также прикрепляться действие. (У переходного состояния
может быть внутреннее действие, однако лучше прикреплять к исходящему переходу.
По сути, это одно и то же.) Это действие будет выполняться и том случае, если
удовлетворены асе сторожевые условия (учитывая и те, которые принадлежат сегментам
перехода). Переход не может запуститься "частично", с остановкой в
переходном состоянии. Начавшись, он должен дойти до обычного состояния.
Исходящий переход запустится немедленно после запуска входящего перехода. При
этом будет выполняться прикрепленное к нему действие. Выполнение входящего и
исходящего переходов представляет собой атомарный непрерывный шаг. Иначе говоря,
его не может прервать никакое событие или действие.
Нотация
Переходное состояние изображается в конечном автомате в виде маленького кружка, к которому и от которого ведут стрелки входящих и исходящих переходов. Имени у переходного состояния нет.
Пример
На рис. 117 изображены два полных перехода из состояния S в состояние Т - односегментный
переход, запускаемый событием f. a также многосегментный переход, запускаемый
событием е, структура которого строится с использованием двух переходных состояний.
В аннотации показано чередование действий перехода с действиями при входе и
выходе.
Рис. 117. Переходные состояния
Обратите внимание на то, что помещать метку действия на стрелку перехода бессмысленно.
Если бы действие d было помещено в состояние X, то оно все равно выполнялось
бы после выхода из него и до входа в состояние Y. Таким образом, действие нужно
изображать у конца перехода. Другие примеры вы найдете на рис. 179 и 184.
См. также статью энциклопедии, посвященную control
icons, где даны упрощенные символы, которые можно использовать в диаграммах
состояний и деятельностей.