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

OpenU.Ru

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

internal transition (внутренний переход)

Переход, у которого есть действие, но который не ведет при этом к изменению состояния.
См. state machine.

Семантика

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

Нотация

Внутренний переход обозначается в виде текста внутри предназначенного для этого раздела символа состояния. Синтаксис текста совпадает с синтаксисом текстовой пометки для внешнего перехода. У внутреннего перехода нет целевого состояния, значит, прикреплять его к стрелке не надо.
событие - имя / действие-выражение
Имена событий, такие как entry, exit, do и include, являются зарезервированными словами, поэтому их нельзя употреблять в качестве имен реальных событий. Зарезервированные слова используются, соответственно, при объявлении действия при входе или при выходе, при выполнении деятельности или вложенного конечного автомата. Для поддержания единообразия при определении действия эти специальные действия используют синтаксис внутреннего перехода. Тем не менее, эти действия не являются внутренними переходами, а соответствующие зарезервированные слова - именами событий. На рис. 115 изображен пример такой нотации.

Рис. 115.

Обсуждение

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

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