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

OpenU.Ru

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

junction state (переходное состояние)

Псевдосостояние, часть одного целого перехода в конечном автомате. Переходное состояние не разбивает непрерывный шаг при выполнении перехода.
См. branch, merge.

Семантика

На пути от исходного состояния к целевому переход может пересекать границы нескольких композитных состояний. При этом может осуществляться одно или несколько действий при входе и выходе. Иногда бывает необходимо чередовать одно или несколько действий перехода с действиями при входе и выходе вложенных состояний. При использовании простого перехода это невозможно, так как у него есть только одно действие.
Кроме того, иногда удобно предписывать нескольким переключающим событиям один переход или же, наоборот, делать так, чтобы одно переключающее событие могло запускать несколько различных переходов с разными сторожевыми условиями.
Переходное состояние является псевдосостоянием, и это дает возможность составлять один общий переход из ряда фрагментов. Оно может иметь один или несколько сегментов входящего и исходящего переходов. При этом у него не бывает внутренней деятельности, конечного автомата или исходящих переходов, которые запускаются переключающими событиями. Это фиктивное состояние, служащее для структурирования переходов, которое не может быть активным в течение конечного периода времени.
Переходное состояние используется для создания структуры общего перехода из нескольких сегментов. Все сегменты, следующие за первым, не имеют переключающего события. Переключающее событие может быть только у первого из этих сегментов, а сторожевые условия у всех. Фактическое сторожевое условие является логическим, умножением всех частных сторожевых условий сегментов. Переход не запускается, если не удовлетворены все сторожевые условия из этого множества. Иными словами, конечный автомат не может пребывать в переходном состоянии,
В одно переходное состояние может входить несколько переходов, у каждого из которых будет свое собственное переключающее событие (впрочем, переключающего события может и не быть). Каждый
маршрут, проходящий через множество переходных состояний, представляет собой отдельный переход.
Исходящий переход может иметь сторожевое условие. Если исходящих переходов несколько, значит, это разветвление, и каждый переход должен иметь свое сторожевое условие.
К исходящему переходу может также прикрепляться действие. (У переходного состояния может быть внутреннее действие, однако лучше прикреплять к исходящему переходу. По сути, это одно и то же.) Это действие будет выполняться и том случае, если удовлетворены асе сторожевые условия (учитывая и те, которые принадлежат сегментам перехода). Переход не может запуститься "частично", с остановкой в переходном состоянии. Начавшись, он должен дойти до обычного состояния.
Исходящий переход запустится немедленно после запуска входящего перехода. При этом будет выполняться прикрепленное к нему действие. Выполнение входящего и исходящего переходов представляет собой атомарный непрерывный шаг. Иначе говоря, его не может прервать никакое событие или действие.

Нотация

Переходное состояние изображается в конечном автомате в виде маленького кружка, к которому и от которого ведут стрелки входящих и исходящих переходов. Имени у переходного состояния нет.

Пример

На рис. 117 изображены два полных перехода из состояния S в состояние Т - односегментный переход, запускаемый событием f. a также многосегментный переход, запускаемый событием е, структура которого строится с использованием двух переходных состояний. В аннотации показано чередование действий перехода с действиями при входе и выходе.

Рис. 117. Переходные состояния
Обратите внимание на то, что помещать метку действия на стрелку перехода бессмысленно. Если бы действие d было помещено в состояние X, то оно все равно выполнялось бы после выхода из него и до входа в состояние Y. Таким образом, действие нужно изображать у конца перехода. Другие примеры вы найдете на рис. 179 и 184.
См. также статью энциклопедии, посвященную control icons, где даны упрощенные символы, которые можно использовать в диаграммах состояний и деятельностей.

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