
- •080800 «Прикладная информатика »
- •1 Краткий обзор объектно-ориентированного анализа
- •1.1 Установка для анализа
- •1.2 Информационные модели
- •1.3 Модели состояний
- •1.4 Модели процессов
- •1.5 Рабочие продукты ооа
- •1.6 Краткое содержание
- •2 Концепции информационного моделирования
- •2.1 Объекты
- •2.2 Атрибуты
- •2.3 Связи
- •2.4 Формализация связи
- •2.5 Композиция связей
- •2.6 Подтипы и супертипы
- •2.7 Рабочие продукты
- •3 Жизненные циклы объектов
- •3.1 Модели поведений в реальном мире
- •3.2 Жизненные циклы и диаграмма переходов в состояния
- •3.3 Состояния
- •Текущее состояние
- •3.4 События
- •3.5 Действия
- •3.6 Переходы и таблица переходов в состояния
- •3.7 Таймеры
- •3.8 Общие формы жизненных циклов
- •3.9 Формирование жизненных циклов
- •3.10 Жизненные циклы для подтипов и супертипов
- •3.11. Когда формируются жизненные циклы
- •3.12 Анализ отказов
- •3.13 Рабочие продукты Модели состояний
- •Список событий
- •4 Динамика связей
- •4.1 Динамика связей
- •4.2 Жизненные циклы связей
- •4.3 Динамические связи вне жизненных циклов
- •4.4 Конкурирующие связи: монитор Конкуренция в реальном мире
- •4.5 Общий случай конкурирующей связи
- •4.6 Конкурирующие связи с жизненными циклами экземпляров
- •4.7 Советы по моделированию
3.6 Переходы и таблица переходов в состояния
Правила переходов
Каждая модель состояний имеет набор правил переходов (или переходов, для краткости), которые определяют, какое достигается новое состояние, если конкретное событие происходит в определенном состоянии. Переход представляется на ДПС стрелкой, направленной от одного состояния к другому Стрелка обозначается событием (меткой и значением), которое заставляет экземпляр эволюционировать от состояния к его потомку.
В качестве альтернативы правила переходов могут быть представлены в таблице переходов состояний, как показано на рис.3.6.1. В таблице переходов в состояния (ТПС) каждая строка представляет одно из возможных состояний модели состояний и каждый столбец - событие, которое имеет эту модель состояний как предназначение. Ячейки таблицы заполняются для определения того, что происходит, когда экземпляр в данном состоянии (строка) принимает конкретное событие (столбец).
Наполнение ячеек
Существует три различных типа наполнения ячейки в ТПС:
1. Новое состояние
2. Событие игнорируется.
3. Не может произойти.
Новое состояние. Ячейка заполняется именем нового состояния, в которое переходит экземпляр, когда он в состоянии, определяемом строкой, принимает событие, определяемое столбцом. Новое состояние точно соответствует стрелке перехода на ДПС.
Заметьте, что событие может заставлять экземпляр переходить в состояние, в котором он уже находится. В этом случае новое состояние, конечно, то же самое, что и состояние, определяемое строкой. Тем не менее, считается, что это реальный переход, и он заставляет экземпляр повторно выполнять действие.
Событие игнорируется. Если объект отказывается реагировать на некоторое событие, когда он находится в определенном состоянии, в соответствующую ячейку записывают "событие игнорируется". Когда событие игнорируется, экземпляр остается в прежнем состоянии и не выполняет повторно действие. Таким образом, наполнение "событие игнорируется" отличается от перехода к тому же самому состоянию.
Заметьте, что, хотя событие игнорируется (не вызывает переход), событие используется моделью состояний.
Не может произойти. Если событие не может произойти, когда экземпляр находится в некотором состоянии, то в соответствующую ячейку записывают: "не может произойти" Наполнение "не может произойти" предназначается для случаев, когда это событие просто не может происходить в реальном мире. Например, событие V3: Дверь Открылась не может произойти, когда печь находится в состоянии 5, поскольку в этом состоянии дверь уже открыта. Если это не вполне очевидно, Вы должны объяснять, почему невозможно, чтобы событие произошло. Такое примечание может появляться как сноска на ТПС.
Роль таблицы переходов в состояния
Хотя ТПС и ДПС содержат много одинаковой информации, мы считаем, что обе формы необходимы. Диаграммная форма ДПС существенна для понимания жизненного цикла объекта. В нашем случае очень трудно понять (или разработать) модель жизненного цикла, работая только с ТПС. С другой стороны, несомненно, то, что ТПС - превосходное представление для проверки законченности и непротиворечивости правил переходов. Заполнение ТПС требует от Вас рассмотрения эффекта каждой комбинации состояние - событие. Кроме того, табличная форма помогает Вам избежать не согласующихся утверждений, таких как: