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

OpenU.Ru

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



completion transition (переход по завершении)

Переход, у которого нет явного переключающего события, и который поэтому запускается по окончании деятельности в исходном состоянии.
См. activity; transition; trigger.

Семантика

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

Рис. 64. Переход по завершении

Пример

На рис. 54 изображен фрагмент конечного автомата из программного приложения для заказа билетов. Состояние Selecting (Процесс-Выбора) остается активным до тех пор, пока клиент не выбрал все даты. Когда клиент нажимает кнопку "готово", состояние Selecting оканчивается. После этого может запускаться переход по завершении, который ведет в состояние Selected (ВыборСделан).

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