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


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

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

Создание активного прикладного класса .
Объект ,который имеет отдельный конечный автомат для каждого конечного экземпляра используется для создания активного класса . Активный класс включает в себя : имя класса, компоненты экземпляра, аксессоры, тейкеры событий, инициа-лизаторы, конструкторы для предварительно существующих экземпляров.
1. Имя класса – такоеже как у объекта, его породившего
2. Компоненты экземпляра – для каждого атрибута расматриваемого объекта определяется компонента экземпляра каждого класса.
Тип данных каждой компоненты определяется из описания домена атрибута:
Пример:

2.рецепт(R)
*название рецепта
. время приготовления
. темпиратура приготовления
. скорость нагревания
. темпиратура консервации

строим на базе объекта класс.
Class Рецепт{
Миныты время_приготовления;
Градусы темпиратура_приготавления;
Public: …..}

Определение методов класса .
Void принять событие<ev1>(активный класс экземпляра);
Void акссесор1(активный класс экземпляра);

Тип возвращяемого_объекта_класса акссесор2(активный класс экземпляр);
Активный класс установить();
Void загрузить_КМС();
Void принять_создать событие <ev k>;

Аксессоры – определяются общедоступные операции для всех аксессоров, которые определены для расматриваемого объекта и используются в действиях модели состояний некоторого другого объекта. Они идентифицируются из таблицы процес-сов в состояние.
Тейкеры событий – определяются общедоступные операции соответствующие каждаму генератору событий, который показан таблицей процесов в состояния как предназначеный для расматриваемого объекта. Такие общедоступные операции известны как тейкеры событий. Расмотрим два возможных случая:
1. событие порождаемое генератором событий не вызывает создания нового экземпляра события. Тогда соответствующий тейкер определяется как операция принять_событие.<метка события>.Событие, порождённое генератором собы-тий вызывает создание нового экземпляра объекта.В этом случае соответствующий тэйкер события определяется как операция с именем принять и создать событие <метка события >.Для каждого элемента данных события определяются входные параметры ,переносимые этим событием.Выходные данные не определяются так как события в ООА представляют собой асинхронное взаимодействие , которое поэтому не производит синхронный вывод.
2. Цель тэйкера событий — принять событие и определить какое действие должно быть выполнено и выполнить это действие ,получая экземпляр в новом состоянии .

Загрузка...