Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
+методическое пособие курс ООА 2010(препод Еник...doc
Скачиваний:
0
Добавлен:
05.01.2020
Размер:
1.3 Mб
Скачать

3.6 Переходы и таблица переходов в состояния

Правила переходов

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

В качестве альтернативы правила переходов могут быть представлены в таблице переходов состояний, как показано на рис.3.6.1. В таблице переходов в состояния (ТПС) каждая строка представляет одно из возможных состояний модели состояний и каждый столбец - событие, которое имеет эту модель состояний как предназначение. Ячейки таблицы заполняются для определения того, что происходит, когда экземпляр в данном состоянии (строка) принимает конкретное событие (столбец).

Наполнение ячеек

Существует три различных типа наполнения ячейки в ТПС:

1. Новое состояние

2. Событие игнорируется.

3. Не может произойти.

Новое состояние. Ячейка заполняется именем нового состояния, в которое переходит экземпляр, когда он в состоянии, определяемом строкой, принимает событие, определяемое столбцом. Новое состояние точно соответствует стрелке перехода на ДПС.

Заметьте, что событие может заставлять экземпляр переходить в состояние, в котором он уже находится. В этом случае новое состояние, конечно, то же самое, что и состояние, определяемое строкой. Тем не менее, считается, что это реальный переход, и он заставляет экземпляр повторно выполнять действие.

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

Заметьте, что, хотя событие игнорируется (не вызывает переход), событие используется моделью состояний.

Не может произойти. Если событие не может произойти, когда экземпляр находится в некотором состоянии, то в соответствующую ячейку записывают: "не может произойти" Наполнение "не может произойти" предназначается для случаев, когда это событие просто не может происходить в реальном мире. Например, событие V3: Дверь Открылась не может произойти, когда печь находится в состоянии 5, поскольку в этом состоянии дверь уже открыта. Если это не вполне очевидно, Вы должны объяснять, почему невозможно, чтобы событие произошло. Такое примечание может появляться как сноска на ТПС.

Роль таблицы переходов в состояния

Хотя ТПС и ДПС содержат много одинаковой информации, мы считаем, что обе формы необходимы. Диаграммная форма ДПС существенна для понимания жизненного цикла объекта. В нашем случае очень трудно понять (или разработать) модель жизненного цикла, работая только с ТПС. С другой стороны, несомненно, то, что ТПС - превосходное представление для проверки законченности и непротиворечивости правил переходов. Заполнение ТПС требует от Вас рассмотрения эффекта каждой комбинации состояние - событие. Кроме того, табличная форма помогает Вам избежать не согласующихся утверждений, таких как: