Добавление переходов

Переходы добавляются на диаграмму с помощью инструмента New Transition. После добавления перехода или при его выделении, под областью диаграммы открывается окно редактирования перехода.

Рис.7. Свойства перехода.

Наиболее важными свойствами связей являются Переключающее событие (триггер), Результат (действие) и Сторожевое условие (выражение).

Триггер – некоторое событие, которое возбуждает изменение состояния объекта. Для того чтобы задать переключающее событие, нужно раскрыть выпадающее меню и выбрать его тип. Всего в ArgoUML определены 4 типа событий:

· событие вызова;

· событие изменения;

· событие сигнала;

· событие времени.

Для события можно задать имя и выражение, которым оно характеризуется. Окно редактирования события выглядит следующим образом:

Рис.7. Свойства события «Счет выписан» (тип: событие изменения).

Сторожевое условие (Guard) – некоторое выражение, которое определяет семантику срабатывания перехода. Если условие истинно – переход выполняется, если же оно ложно – переход невозможен, и при отсутствии других переходов объект не может перейти в целевое состояние.

Рис.8. Сторожевое условие

Наконец, для перехода можно задать результат. Результат перехода – действие, полностью аналогичное действиям входа/выхода или деятельности состояний. Определение действий в переходах характерно для автоматов Мили. Процесс задания действий при переходах аналогичен таковому для состояний.

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

· Заказ создан (событие сигнала) – переход из начального состояния в состояние «Инициализация»;

· Заказ отменен (событие изменения) – переход из состояния «Открыт» в состояние «Отменен»;

· Счет выписан (событие изменения) – переход из состояния «Закрыт» в конечное состояние.

Также определим несколько сторожевых условий:

· Инициализация завершена – условие перехода из состояния «Инициализация» в состояние «Открыт»;

· Заполнены не все пункты заказа – условие перехода из состояния «Открыт» в себя же;

· Заполнены все позиции заказа – условие перехода из состояния «Открыт» в состояние «Закрыт».

Необходимо задать недостающие действия для переходов:

· Добавление пункта заказа – действие создания при переходе из состояния «Открыт» в себя;

· Удаление записи (OrderItem.Delete()) – действие уничтожения при переходе из состояния «Отменен» в конечное состояние.

Рис.9. Диаграмма состояний объекта Entry.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: