Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
компьютерная техника (конспектировать ).docx
Скачиваний:
69
Добавлен:
05.11.2018
Размер:
1.56 Mб
Скачать

Теория операции: инициализация

Инициализация механизма конечного автомата полностью заключается в создании соответствующих экземпляров КМС и Перехода. Это выполняется прикладными классами, как описано в разделе 9.7. Для данной цели предоставляются три операции: КМС.Создать, КМС.Добавить Переход и Переход. Создать.

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

Рис.9.3.7. Схема структуры класса для класса КМС.

Рис.9.3.8. Зависимости, связанные с инициализацией механизма конечного автомата.

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

9.4 Класс Таймер

Класс Таймер обеспечивает определенный в формализации ООА механизм функционирования таймеров. Диаграмма класса для Таймера показана на рис.9.4.1. Для прикладных классов определены пять общедоступных операций:

Создать

создает экземпляр таймера и возвращает его дескриптор.

Удалить

удаляет определенный экземпляр.

Затребовать событие ТIМ1

устанавливает определенный экземпляр таймера для подачи сигнала после истечения какого-то времени. Когда таймер подаст сигнал, он вызовет общедоступную операцию (здесь "тейкер события") некоторого прикладного класса, передающего дескриптор экземпляра этого прикладного класса.

Затребовать событие TIM2

сбрасывает определенный таймер. Не имеет никакого другого эффекта.

Прочитать таймер

возвращает время, оставшееся на определенном таймере. Не имеет никакого другого эффекта.

Операция класса подать сигнал порождает события (т.е. вызывает определенных тейкеров событий), связанные со всеми таймерами, которые истекли со времени предыдущего вызова Подать сигнал. Эта операция используется ocнoвной программой, как описано в разделе 9.8.

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

Рис.9.4.1. Диаграмма класса для класса Таймер.

9.5 Диаграммы классов для прикладных классов Образцы

Для создания прикладных классов используются три различных образца (рис.9.5.1).

  • Образец пассивного класса используется для создания класса объекта, не имеющего модели состояний.

  • Образец активного класса используется для создания класса объекта, имеющего один конечный автомат для каждого экземпляра.

  • Образец определителя используется для создания класса, соответствующего модели состояний Определителя в ООА.

В этом разделе мы представляем упорядоченную процедуру для внешнего представления активного, пассивного и определительного классов в виде диаграмм классов.

Рис.9.5.1. Типы прикладных классов.