Скачиваний:
21
Добавлен:
01.05.2014
Размер:
142.85 Кб
Скачать

2. Управление объектами и классы объектов

Инструментальная объектно-ориентированная среда проектирования программных систем имеет два уровня иерархии управления (рис. 1).

Рис. 1

Функции верхнего уровня управления инструментальной средой выполняет монитор сообщений. Монитор сообщений решает следующие задачи:

1) принимает собщение от обекта;

2) анализирует принятое сообщение;

3) определяет имя объекта-адресата, т.е. объекта, которому необходимо передать обрабатываемое собщение;

4) определяет имя класса объекта-адесата;

5) передет сообщение монитору класса объекта-адресата;

6) получает от монитора класса объекта-адресата результат выполнения объектом-адресатом предписанных сообщением действий;

7) сохраняет результат действий объекта адресата в базе актуального результата;

8) передает результат действий объекта-адресата, если это необходимо, объекту адресанту, т.е. объекту, который отправил сообщение.

Монитор класса, поддерживающий нижний уровень иерархии управления инструментальной средой, реализует следующие функции:

1) принимает обработанные сообщения от монитора сообщений;

2) анализирует семантику принятого сообщения;

3) активизирует объект-адресат для выполнения заданного сообщения, определяя для объекта подлежащий выполнению метод;

4) принимает от активизированного объекта результат выполнения соответствующего метода;

5) передает монитору сообщений выполнения метода активизированного объекта.

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

Инструментальная среда предоставляет пользователю для конструирования прикладных программных систем следующие базовые классы объектов: инициализаторы ("мышь" и клавиатура), экраны, меню, таблицы, графики и базы данных.

3. Класс экраны

Каждый объект класса ЭКРАНЫ предсавляет собой экранную форму. Экранная форма - удобное средство ввода и внешего представления данных при организации интерфейса пользователя прикладной системы. Экранная форма может содержать поля различных типов. Поля экранной формы служат для отображения и ввода информации. Для того чтобы объект класса ЭКРАНЫ выполнил действия, определенные для некоторого своего поля, необходимо активизировать это поле. Пользователь может активизироватьь любое из полей экрана, переместив указатель "мыши" в границы поля и нажав соответствующую клавишу.

Свойства объектов класса ЭКРАНЫ описываются двумя видами термов:

1) o_parms(ObjectName,ClassName,Parms);

2) o_field(ObjectName,FieldName,FieldTyp,FieldParms).

Объект класса ЭКРАНЫ описывается только одним термом первого вида и несколькими термами второго вида. Терм первого вида задает общие характеристики экрана, а термы втрого вида описывают отдельные поля экрана. Число термов второго вида равно числу полей описываемого экрана.

Аттрибуты приведенных термов имеют следующую семантику:

1. ObjectName - имя объекта, свойства которого описывает данный терм.

2. ClassName - имя класса, которому принадлежит объект, заданный аттрибутом ObjectName.

3. Parms - список параметров объекта содержит следующие элементы:

1) BackColor - цвет фона экрана;

2) BordColor - цвет рамки экрана;

3) ScrolColor - цвет линии прокрутки;

4) FieldsList - список имен полей экрана;

5) ActivField - имя активного поля;

6) X и Y - координаты точки экрана, совпадающей с верхним левым углом окна, в котором показывается экран;

7) WidowX и Window - координаты верхнего левого угла окна, в котором изображается экран (в пикселах);

8) H и L - высота и длина окна экрана (в пикселах).

4. FieldName - имя поля экрана.

5. FieldTyp - тип поля экрана, который может принимать одно из следующих значений: choice, text, icon, box, view, picture.

Поля типа choise используются для организации меню. При активизации поля типа choice, поле выделяется на экране соответствующим цветом, а выделение предыдущего активного поля снимается.

В полях типа text размещаются вводимые с клавиатуры данные. При активизации поля типа text пользователь вводит строку символов в это поле или редактирует уже имеющуюся этом поле строку. Пользователь может вводить строки большой длины, но в поле типа text после завершения ввода будут показаны только первые N символов строки, где N длина поля в символах. В полях типа icon изображаются пиктограммы.

Поля типа box служат для ввода и изображения текста. Текст изображается в поле в несколько строк, если его длина превышает длину поля. Очевидно, что заданная высота поля типа box должна обеспечивать возможность изображения нескольких строк текста.

Поля типа view используются только для изображения текста.

В полях типа picture изображаются большие по формату рисунки.

6. FieldParms - список параметров поля экрана содержит следующие элементы:

1) Value - значение поля;

2) X и Y - координаты верхнего левого угла поля в пикселах относительно координат верхнего левого угла заданного экрана;

3) H и L - высота и длина поля (в пикселах);

4) BorderTyp - тип рамки поля (0 - без рамки, 1 - прямоугольная рамка, 2 - овальная);

5) Fill - признак заполнения фона поля (0 - нет заполнения, 1 - есть заполнение);

6) BkColor - цвет фона поля;

7) BkFill - вид заполнения фона поля;

8) BorderCol - цвет рамки поля;

9) Color - цвет изображаемых в поле символов.

Для объектов класса ЭКРАНЫ разработаны следующие методы:

1. Метод: "set all values".

Назначение: присвоение значений всем полям экрана.

Параметры: имя экрана и список значений всех его полей.

Результат: нет.

2. Метод: "get all values".

Назначение: получение значений всех полей экрана.

Параметры: имя экрана.

Результат: список значений всех полей заданного экрана.

3. Метод: "set some values".

Назначение: присвоение значений заданным полям экрана.

Параметры: имя экрана, список имен полей и соответствующий.

этим полям список значений.

Результат: нет

4. Метод: "get some values".

Назначение: получение значений заданных полей экрана.

Параметры: имя экрана и список имен полей.

Результат: список значений заданных полей.

5. Метод: "set value".

Назначение: присвоение значения заданному полю экрана.

Параметры: имя экрана, имя поля и его новое значение.

Результат: нет.

6. Метод: "get value".

Назначение: получение значения заданного поля экрана.

Параметры: имя экрана и имя одного из его полей.

Результат: значение заданного поля.

7. Метод: "set color".

Назначение: присвоение указанному полю экрана цвета фона и цвета изображаемых в поле символов.

Параметры: имя экрана, имя поля, цвет фона поля и цвет изображаемых в поле символов.

Результат: нет.

8. Метод: "get color".

Назначение: получение значений цвета фона и цвета изображаемых символов указанного поля экрана.

Параметры: имя экрана и имя поля.

Результат: цвет фона поля и цвет изображаемых в поле символов.

и другие методы.

Действия, которые должны быть выполнены объектом класса ЭКРАНЫ, при получении сообщения от "мыши" или клавиатуры описываются пользователем на специальном входном языке изображаемых объектов. Предложение входного языка содержит 5 элементов (ObjectName, FieldName, Button, Condition, Message):

action(ObjectName,FieldName,Button,Condition,Message).

Элементы приведенного предложения имеют следующую семантику:

1) ObjectName - имя объекта, к которому относится данное предложение;

2) FieldName - имя поля объекта, с которым связано данное предложение;

3) Button - имя клавиши, на которую должен реагировать объект;

4) Condition - условия посылки объектом сообщения;

5) Message - данные, содержащие информацию о посылаемом сообщении.

Объект, получив сообщение от "мыши" или клавиатуры (см. раздел 2.8), выполняет метод с именеем "action". Сообщение содержит информацию о том, какая кнопка была нажата и координаты курсора в границах изображенного объекта. Метод action активизированного объекта определяет, исходя из полученных координат курсора, имя поля объекта, на которое указывает курсор. Затем по имени объекта, имени его поля и имени нажатой кнопки метод "action" выбирает соответствующие предложения входного языка изображаемых объектов и, если выполняется условие поля Condition, выбранного предложения, посылает сообщение, исходя из данных, определяемых значением поля Message этого предложения.

Поле Condition используется для управления последовательностью выбора и анализа предложений входного языка. Задавая определенные значения для этого поля в последовательности предложений входного языка, относящихся к одному объекту и кнопке, можно исключить выполнение некоторых из этих предложений, в зависимости от результатов последнего из выполненых в системой методов. Это дает гибкость описания требуемых реакций изображаемых объектов на сообщения "мыши" и клавиатуры.

Соседние файлы в папке АУП_1