Создание активного прикладного класса


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

Имя класса – такоеже как у объекта, его породившего

Компоненты экземпляра – для каждого атрибута расматриваемого объекта определяется компонента экземпляра каждого класса.

Тип данных каждой компоненты определяется из описания домена атрибута:

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

Тейкеры событий – определяются общедоступные операции соответствующие каждаму генератору событий, который показан таблицей процесов в состояния как предназначеный для расматриваемого объекта. Такие общедоступные операции известны как тейкеры событий. Расмотрим два возможных случая:

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

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

Инициализатор.

Каждый активный класс должен определить операцию загрузить КМС .Эта операция будет вызываться основным модулем во время инициализации программы

Конструктор для предварительно существующих экземпляров .

Считается ,что в большинстве моделей ООА экземпляры определённых объектов просто существуют и не применяется никаких средств их создания .

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

Действия.

Часть схемы структуры класса ,имеющей дело с действие создаётся регулярным способом из ДПДД. Сначала создают необщедоступную операцию <объект >.действие<k>,где k-это номер состояния с которым связано действие. Эта операция вызывается только из тэйкеров событий того же класса и поэтому необщедоступна. Операция действие <k> получает все данные события ,которые используются в качестве входных данных тэйкера события. Затем вызываются модули ,соответствующие аксессорам,преобразованиях, проверках и генераторов событий показанных на ДПДД. Цель модуля действия <k>-вызвать эти отдельные модули в определенном порядке.

Основная программа.

На основную программу в рассматриваемой архитектуре возложено 3 задачи:

1.Вызов различных операций инициализации классов

2.Создание внешних событий , которые инициализируют или продолжают канал управления

3.Создание событий типа таймера

1)Инициализация. Первое действие главной программы должно создавать все предварительно существующие экземпляры прикладных классов . Если существует лишь несколько таких экземпляров , то эта работа может быть непосредственно выполнена в тексте программы . При большом количестве — используют файл данных.. При наличии внутренней зависимости между экземплярами (В требуется для А) необходимо соблюдать определённую последовательность вызовов .

Загрузка...