Ветвление

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

Ветвление является псевдосостоянием. Управление никогда не остается в псевдосостоянии; оно всегда проходит через него за нулевое модельное время. 

Когда управление проходит через состояние-ветвление, выполняется действие этого состояния, и вычисляются дополнительные условия переходов, исходящих из этого состояния. Сработает первый же найденный разрешенный переход – т.е., тот переход, дополнительное условие которого истинно.

Простая демо модель: Transition with Branches Tests Numbers


 Чтобы нарисовать ветвление
  1. Перетащите элемент Ветвление  из палитры Диаграмма состояний в то место графического редактора, куда вы хотите поместить ветвление.
Свойства

Имя – Имя состояния. Имя используется для идентификации состояния и доступа к нему из кода.

Отображать имя – Если опция выбрана, то имя состояния будет отображаться в графическом редакторе.

Исключить – Если опция выбрана, то состояние будет исключено из модели.

Действие - Код, выполняемый, когда управление переходит в это состояние.

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

Переходы, ведущие из состояний-ветвлений, имеют следующие свойства, несколько отличные от свойств обычных переходов:

Свойства переходов, ведущих из ветвления

При выполнении условияЕсли опция выбрана, то этот переход будет срабатывать, если заданное в поле ниже логическое условие будет истинно.

По умолчанию (выбирается, если все остальные условия не выполняются) – Если опция выбрана, то этот переход будет выбираться в том случае, если условия всех остальных переходов, ведущих из состояния ветвления, не выполняются.

 Если вы не зададите переход по умолчанию, и при переходе управления в ветвление все исходящие из ветвления переходы окажутся закрыты (не будет выполняться Условие ни одного перехода), то возникнет ошибка.

Пожалуйста, обратите внимание, что переходы, исходящие из ветвлений, не имеют Дополнительных условий.