состоянию, которое экземпляр занимает в данный момент как результат
выполнения действия.
В ООА делаются определённые предположения о времени:
1. Только одно действие данного конечного автомата может выполняться
в любой точке времени. Если действие начато, оно должно завершиться
прежде, чем конечным автоматом этого экземпляра будет получено другое
событие.
2. Действия в различных конечных автоматах могут выполняться
одновременно;
3. События никогда не теряются;
4. Если событие порождено дл экземпляра, который в настоящее время
выполняет действие, данное событие не будет принято, пока действие не
закончено;
5. Каждое событие прекращается, когда оно представляется для
конечного автомата, событие тогда исчезает как событие.
Следствием предположения «событие используется, когда оно получено»
может быть ситуация, когда модель состояния принимает событие, которое
будет воздействовать на дальнейшее поведение объекта, но на которое нельзя
реагировать до тех пор, пока экземпляр находится в текущем состоянии. В
этой ситуации событие необходимо запомнить либо в данных, либо в
состояниях.
Переходы и таблица переходов в состояния
Каждая модель состояний имеет набор правил переходов, которые
определяют, какое достигается новое состояние, если конкретное событие
происходит в определённом состоянии. Переход представляется на схеме
стрелкой, направленной от одного состояния к другому. Стрелка
обозначается событием (меткой и значение), которое заставляет экземпляр
эволюционировать от состояния к его потомку.
Правила переходов могут быть представлены в качестве таблицы
переходов состояний (ТПС). В ТПС каждая строка представляет одно из
возможных состояний модели состояний и каждый столбец – событие,
которое имеет эту модель состояний как предназначение. Ячейки таблицы
заполняются для определения того, что происходит, когда экземпляр в
данном состоянии (строка) принимает конкретное событие (столбец).
Существует три различных типа наполнения ячейки в ТПС:
1. Новое состояние. Ячейка заполняется именем нового состояния, в
которое переходит экземпляр, когда он в состоянии, определяемом строкой,
принимает событие, определяемое столбцом. Событие может заставлять
экземпляр переходить в состояние, в котором он уже находится. В этом
случае новое состояние то же самое, что и состояние, определяемое строкой.
Тем не менее, считается, что это реальный переход, и он заставляет
экземпляр повторно выполнять действие;
2. Событие игнорируется. Если объект отказывается реагировать на
некоторое событие, когда он находится в определённом состоянии, в