Разработка и реализация графического интерфейса для СПП СБкЗ_ПП с использованием системы автоматической генерации интерфейсов OntoDev

Тип работы:
Дипломная
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Разработка и реализация графического интерфейса для СПП СБкЗ_ПП с использованием системы автоматической генерации интерфейсов OntoDev

Задание на бакалаврскую работу

Студентку 243 группы Малику Ивану Александровичу

Тема работы: «Разработка и реализация графического интерфейса для СПП СБкЗ_ПП с использованием системы автоматической генерации интерфейсов Ontodev».

1. Цель курсовой работы:

Создание графического интерфейса для СПП в СБк_ЗПП.

2. Постановка задачи курсовой работы:

Разработать и реализовать графический интерфейс для системы преобразований программ в СБк_ЗПП.

Входом системы является: спецификация СБкЗ_ПП.

Выходом является: разработанная модель связи между интерфейсом и прикладной программой, графический интерфейс.

3. График выполнения работы:

1. Изучение литературы.

2. Изучение средства Ontodev.

3. Анализ требований к интерфейсу.

4. Разработка модели связи между интерфейсом и прикладной программой СПП.

5. Разработка проекта пользовательского интерфейса и его связи с прикладной программой.

6. Реализация пользовательского интерфейса как сервиса МБкЗ.

7. Написание отчета.

4. Рекомендуемая литература:

1. Клещев А. С., Князева М. А. Управление информацией о преобразованиях программ. I. Анализ проблем и пути их решения на основе методов искусственного интеллекта // Изв. РАН. ТиСУ. 2005. № 5.

2. Грибова В. В., Тарасов А. В. инструментальное средство onto dev для проектирования и автоматической генерации пользовательского интерфейса // Информатика и системы управления. Благовещенск: Амурский государственный университет. 2006, № 1, c. 152−158.

3. Грибова В. В., Тарасов А. В. Управление процессом автоматической генерации программного кода пользовательского интерфейса по его модели // Труды III международной конференции «Параллельные вычисления и задачи управления», Москва, 2−4 октября 2006. [Электронный ресурс] Москва: ИПУ РАН, 2006

4. Орлов В. А., Клещев А. С. Многоцелевой банк знаний. Часть1. Концепция и политика. Владивосток: ИАПУ ДВО РАН, 2003. 40 с.

5. Руководство пользователя OntoDev.

Требования к отчету: Отчет должен содержать требования к интерфейсу, проект интерфейса и его связь с прикладной программой. Описание реализации.

Задание выдал руководитель курсовой работы: М.А. Князева

Задание утверждаю

Дата: «25» декабря 2006 г. и.о. зав. Кафедрой Е. И. Антонова

Задание принял к исполнению студент:

Дата: «25» декабря 2006 г. Подпись студента И.А. Малик

СОДЕРЖАНИЕ

  • Аннотация
  • Введение
  • Глава 1. Обзор средств
  • Глава 2. Концепция системы управления СБкЗ_ПП
    • 2. 1 Математическая модель системы управления CБкЗ ПП
    • 2.2 Объекты предметной области и связи между ними
    • 2.3 Алгоритм решения задачи управления
  • Глава 3. Техническая часть
    • 3. 1 Требования к интерфейсу СПП
    • 3.2 Требования к аппаратному обеспечению
    • 3.3 Требования к программному обеспечению
    • 3.4 Требования к надежности
    • 3.5 Профиль пользователя
    • 3.6 Архитектурно — контекстная диаграмма системы
    • 3.7 Граф сценария диалога
    • 3.8 Проект интерфейса
    • 3.9 Спецификации классов
    • 3. 10 Связь интерфейса и прикладной программы
    • 3. 11 Средства реализации
  • Заключение
  • Список литературы
  • Аннотация
  • Целью данной работы является создание графического пользовательского интерфейса для системы преобразования программ (СПП) в специализированном банке знаний по преобразованию программ (СБкЗ_ПП) с использованием системы автоматической генерации интерфейсов «OntoDev».
  • Работа содержит обзор средств, по теме «графический пользовательский интерфейс в системах оптимизации программ», сформулированные требования к интерфейсу СПП, проект интерфейса для СПП, результаты работы со средством автоматической генерации интерфейсов «OntoDev», описание реализации интерфейса СПП.

Введение

В области системного программирования проблема оптимизация программ по-прежнему является актуальной. В связи с этим в отделе экспертных систем Института автоматики и процессов управления ДВО РАН начато проектирование специализированного банка знаний о преобразованиях программ (СБкЗ_ПП) [4] в рамках многоцелевого банка знаний (МБкЗ) [5]. Проектируемый банк знаний является сложной системой работы нескольких подсистем решающих конкретные задачи. Все подсистемы собранные в банке знаний должны работать в определенном порядке и этот порядок зависит от входных данных и требований пользователя. Для управления всеми подсистемами в настоящее время разрабатывается система управления специализированным банком знаний, способная отвечать всем требованиям, предъявляемым к банку. Для связи системы управления с конечным пользователем необходим графический пользовательский интерфейс системы.

Целью бакалаврской работы является разработка и реализация графического пользовательского интерфейса для СПП, который удовлетворял бы требованиям банка и модели управления банком.

Работа содержит следующие разделы:

— Глава 1 — обзор средств, в котором проанализированы существующие графические пользовательские интерфейсы существующих современных систем оптимизации программ;

— Глава 2 — математическую модель и алгоритм системы управления СБкЗ_ПП;

— Глава 3 — техническую документацию программного средства.

Глава 1. Обзор средств

Система V-Ray

V-Ray позволяет оптимизировать существующие программы и получить эффективные реализации программ для различных аппаратных платформ путем анализа лежащего в основе программ алгоритмического подхода [6].

Основным понятием V-Ray технологии является граф алгоритма — ациклический ориентированный граф, вершины которого соответствуют отдельным срабатываниям операторов программы. Поэтому результатами работы программы являются графы, которые система может строить на экране. Также есть возможность посмотреть текст исходной программы, соответствующий каждой вершине графа. Можно на экран выводить граф несколькими способами. На экране параллельные процессы представляются в виде набора параллельных горизонтальных линий. Из меню доступны следующие функции: открытие проекта, закрытие проекта, сохранение проекта, выход из системы, работа с графами, команды на проведение экспериментов.

ОРС

ОРС -- Открытая распараллеливающая система -- программная инструментальная система, ориентированная на разработку распараллеливающих компиляторов; оптимизирующих компиляторов с параллельных языков, систем полуавтоматического распараллеливания; систем автоматического проектирования электронных схем; автоматическое создание (проектирование) программно-аппаратных комплексов [7].

ОРС ориентирована на различные целевые параллельные архитектуры. В ОРС преобразования программ используют как традиционный граф программных зависимостей, так и решетчатый граф программ.

В данной системе есть возможность построения трехмерных решетчатых графов. Также реализована функция визуализации графа вызовов подпрограмм. Есть панель инструментов, которая дублирует некоторые функции меню: печать, сохранение проекта, открытие проекта. Главное окно программы содержит помощь по использованию системы, которая открывается в специальной области. Там же есть область с сервисной информацией (что программа делает в данный момент, что сделала и т. д.), область с исходным текстом изучаемой программы, область с доступом к основным функциям, реализованная через вкладки.

Acovea

Это система, которая показывает, на каких настройках компилятора генерируемый код получается наиболее «быстрым» [8]. Интерфейс состоит из настроек системы, сервисной информации и команд на запуск теста, остановку теста и сохранения результатов тестирования.

Под Unix — системы графического пользовательского интерфейса почти нет для систем оптимизации, все они работают через командную строку.

Выводы

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

· Имеется доступ к основной функциональности системы: запуск экспериментов, остановка экспериментов, настройка экспериментов;

· Имеется доступ к функциям редактирования кода, его сохранения, распечатки;

· Визуализируются результаты проведенных экспериментов в виде графиков, графов и т. д. ;

· Имеется сервисная информация: на каком этапе проходит эксперимент, какая его часть выполнена, какая часть будет выполнена и т. д.

Глава 2. Концепция системы управления СБкЗ_ПП

2. 1 Математическая модель системы управления CБкЗ ПП

Рассмотрим формальную модель системы управления СБкЗ_ПП [6]. В ней отображаются ключевые понятия (подсистемы) и связи между ними.

Формально модель СУ СБкЗ_ПП представляется тройкой:

СУ = < СБкЗ, УМ, А>

СБкЗ — Банк знаний содержащий знания и функциональные модули о преобразовании программ. Компонент СБкЗ определяется как СБкЗ= < ПН, ИН>, где ПН — Набор сервисов для работы с ИН реализованных через оболочку ИРУО в МБкЗ; ИН — Онтологии и знания о преобразовании программ.

УМ — управляющий модуль который организует процесс работы в среде СБкЗ_ПП. Компонент управляющий модуль УМ определяется тройкой УМ = < Р, ТН, И>, где Р={Pj}, j=1,…, k — режимы работы СУ, которые можно показать, как взаимодействие набора модулей [A1, …, Ak] через правила взаимодействия Pk; ТН — текущая настройка. Описываемый элемент представляет собой настройку для модели оптимизирующего компилятора;

И — процедуры интерфейса взаимодействия с визуальной компонентой пользователя.

А={Ai}, i=1,…, n — набор функциональных модулей для текущей версии СУ. Компонент, А — список функциональных модулей в текущей версии СУ. Каждый модуль характеризуется следующими параметрами:

ВхД — входные данные;

ВыхД — выходные данные;

ДопД — дополнительные данные (данные использующиеся только для работы текущего блока и требующие отдельной теории в СБкЗ_ПП).

2.2 Объекты предметной области и связи между ними

Рис. 1

На рисунке 1 изображены объекты предметной области и связи между ними. Красным цветом выделены объекты, относящиеся к компоненте СБкЗ математической модели, зеленым — к УМ. Главным объектом ПО является пользователь. Он обладает следующими свойствами: имя, пароль, настройки подключения. Также одному пользователю может соответствовать несколько проектов. Проект характеризуется одной программой и несколькими экспериментами, проводимыми над программой. Одной программе может соответствовать несколько экспериментов. Программа характеризуется представлением до преобразований и представлением после преобразований. Одной программе соответствует одно представление до преобразований. Одной программе может соответствовать несколько представлений после преобразований. Эксперимент характеризуется сервисной информацией, преобразованием, результатами эксперимента. Сервисная информация состоит из текущего преобразования, количества примененных преобразований, количества преобразований. Результатами эксперимента являются история применения преобразований, представление программы после преобразований, отчет, результаты измерений. Одному эксперименту может соответствовать несколько преобразований. Преобразование характеризуется неформальным описанием, формальным описанием, формулой трансформации, стратегией преобразования, контекстные условия. Стратегия преобразования может быть следующих видов: по возрастанию характеристической функции, по убыванию характеристической функции, случайной.

2.3 Алгоритм решения задачи управления

На вход подается пользователем:

Msp_in — Модель структурной программы перед оптимизацией [1].

Введенная стратегия — Стратегия оптимизации.

Введенные ОП — Оптимизирующие преобразования введенные пользователем

begin

Создать новый отчет (New);

Добавить в отчет (Имя (Msp_in));

Добавить в отчет (New, «Введенная стратегия «+Введенная стратегия);

Добавить в отчет (New, «Временная сложность = «+FragCount (MSP_New));

Добавить в отчет (New, «Объем = «+PredCount (MSP_NEW));

MSP[На нулевом шаге (0)]=MSP_IN;

I = 1;

стратегия_Преобразования = Введенная стратегия;

Последовательность ОП = Введенные О П;

Пока не конец (последовательность ОП) do

{Добавить в отчет (New, «Шаг «+I+» Преобразования «+ ОП);

MSP[I]: =Обогащение (MSP[I-1]);

Кандидаты_УЭ = Поиск_УЭ (MSP[I], ОП);

Добавить в отчет (New, «По преобразованию №"+I+"найдено"+Количество (Кандидаты_УЭ));

Пока не конец (Кандидаты_УЭ) do Оценить (Кандидаты_УЭ[j]);

SortByStrat (Кандидаты_УЭ, стратегия_Преобразования);

I=I+1;

Пока не конец (Кандидаты_УЭ) do

{Добавить в отчет (New, «Участок экономии до преобразования»);

Добавить в отчет (New, «Временная сложность = «+FragCount (УЭ));

MSP[I]: =Трансформация (УЭ, MSP[I]);

Добавить в отчет (New, «Участок экономии после преобразования»);

Добавить в отчет (New, «Временная сложность = «+FragCount (УЭ));

Добавить в отчет (New, «Программа после преобразований»);

Добавить в отчет (New, «Временная сложность = «+FragCount (MSP_New));

Добавить в отчет (New, «Объем = «+PredCount (MSP_NEW));

Добавить в отчет (New, «Конец»);

Generate (MSP[I]);

End;

Стратегия преобразования:

По возрастанию характеристической функции

По убыванию характеристической функции

Случайно

Msp_in — Модель структурной программы перед оптимизацией.

Введенная стратегия — стратегия введенная пользователем.

Введенные ОП- Оптимизирующие преобразования введенные пользователем

Создать новый отчет (Name) — Функция создающая отчет с именем «NEW»

Добавить в отчет (Name, Text) — Функция добавляет в отчет с именем «NEW» текст Text.

Последовательность ОП — Последовательность идентификаторов оптимизирующих преобразований.

ОП — Название оптимизирующего преобразования.

Обогащение () — Функция обогащения MSP. Детально описана в дипломе Волкова Дмитрия

Поиск УЭ () — Функция поиска Участков Экономии. Детально описана в курсовой работе Маевского Максима.

Кандидаты УЭ — последовательность кортежей участков экономии.

УЭ — кортеж участка экономии.

Оценить УЭ — Функция сопоставления участку экономии некоторого числа в соответствии с характеристической функцией ОП. [6]

SortByStrat (Кандидаты_УЭ, стратегия_Преобразования) — Функция сортировки последовательности участков экономии.

Трансф_УЭ — Трансформированный У Э.

FragCount (Link) — Функция подсчета временной сложности.

FragCount (MSP) — Функция подсчета объема программы.

Generate (MSP) — Функция генерации оптимизированной программы на языке ассемблера.

Характеристическая функция — это функция, которая присваивает каждому УЭ значение для дальнейшего выстраивания порядка УЭ преобразования программы.

Решением данного алгоритма является MSP_out — модифицированная модель структурной программы на языке ассемблера. Так же на выходе получается протокол оптимизации, на котором показана полная история процесса оптимизации.

Глава 3. Техническая часть

3. 1 Требования к интерфейсу СПП

ПС должно иметь следующие окна:

· Окно ввода имени пользователя и пароля;

· Окно выбора режима работы с ПС;

· Окно выбора программы;

· Окно выбора преобразований;

· Окно выбора стратегии для преобразования.

В окне выбора режима работы с ПС пользователю должна быть предоставлена возможность выбора одного из следующих режимов:

· Проведение экспериментов по преобразованию программ;

· Построение макета оптимизирующего компилятора;

· Работа с Информационным наполнением СБкЗ_ПП.

В окне выбора программы должны быть доступны следующие функции:

· Добавление новой программы;

· Удаление программы;

· Редактирование программы;

· Выбор программы для дальнейшей работы.

В окне выбора преобразований должны быть доступны следующие функции:

· Добавление нового преобразования в СБкЗ_ПП;

· Удаление преобразования из СБкЗ_ПП;

· Редактирование преобразования из СБкЗ_ПП;

· Добавление преобразования из СБкЗ_ПП в список используемых преобразований;

· Удаление преобразования из списка используемых преобразований;

· Выстраивание порядка в списке используемых преобразований.

В окне выбора стратегии должны быть доступны следующие функции:

· Вывод сообщения о том, что если для преобразования не выбрана стратегия, то она загрузится из базы;

· Возможность выбора одной из трех стратегий: по возрастанию, по убыванию, случайно.

Основные пункты меню должны быть продублированы кнопками управления.

Каждое преобразование обладает несколькими свойствами, такими как формальное описание преобразования, неформальное описание преобразования, формула трансформации и др. Поэтому пользователю необходимо предоставить возможность быстро просматривать эти свойства для выбранного преобразования.

Пользователю необходимо предоставить возможность запускать проведение эксперимента. А также останавливать и приостанавливать проведение эксперимента. Даная функция есть во всех системах такого рода.

Так как эксперимент длится не менее 10−15 минут, то пользователь должен видеть, на каком этапе находится в данный момент проведение эксперимента. То есть ему необходимо предоставить сервисную информацию: что обрабатывает программа, сколько информации обработано, сколько осталось обработать и т. д. Даная функция есть во всех системах такого рода. Пользователь должен иметь возможность сохранять и распечатывать результаты проведения экспериментов: исходную программу, программу после преобразований, историю применения преобразований.

Также системы такого рода не обходятся без возможности генерировать исполняемый код на языке ASSEMBLER с возможностью его сохранения и выбора платформы для генерации.

3.2 Требования к аппаратному обеспечению

· IBM-совместимый компьютер со стандартной периферией (монитор, клавиатура, мышь) с тактовой частотой не ниже 500 Мгц;

· 50 Mb места на жестком диске (система + необходимые библиотеки);

· Не менее 128 Mb оперативной памяти.

3.3 Требования к программному обеспечению

На компьютере должен быть установлен JDK версии 1.5 или выше.

3. 4 Требования к надежности

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

3. 5 Профиль пользователя

Пользователь должен обладать знаниями в области оптимизирующих преобразований программ. Должен уметь пользоваться средствами ввода «клавиатура» и «мышь», знать основные парадигмы WIMP-интерфейса.

3.6 Архитектурно — контекстная диаграмма системы

рис. 2

3.7 Граф сценария диалога

Рис. 3

3. 8 Проект интерфейса

Окно входа в систему

Окно предназначено для идентификации и допуска к работе с системой пользователя. Оно выводится при запуске системы и при выборе пункта «Смена пользователя» меню «Файл» главного окна программы.

Элементы управления:

· Поле ввода имени пользователя;

· Поле ввода пароля;

· Кнопка управления «Войти»;

· Кнопка управления «Отмена»;

· Кнопка.

SEC#01

При нажатии кнопки управления «Отмена», окно входа в систему закрывается, и система завершает свою работу.

SEC#02

При нажатии кнопки, окно входа в систему закрывается, и система завершает свою работу.

SEC#03

При нажатии кнопки управления «Войти», при условии, что имя пользователя и пароль, введенные соответственно в поле ввода имени пользователя и поле ввода пароля, верные, окно входа в систему закроется и на экране появится окно выбора режима работы.

SEC#04

При нажатии кнопки управления «Войти», если имя пользователя и пароль, введенные соответственно в поле ввода имени пользователя и поле ввода пароля, неверные на экран выведется диалоговое окно с сообщением об ошибке.

Это окно должно содержать следующие элементы:

· Текст «Имя пользователя или пароль неверные»;

· Кнопка управления «ОК»;

· Кнопка.

SEC#05

При нажатии кнопки или кнопки управления «ОК», текущее диалоговое окно с сообщением об ошибке должно закрыться.

Окно выбора режима работы

Окно предназначено для выбора режима работы с СБкЗ_ПП. Оно появляется после нажатия кнопки управления «Войти» на окне входа в систему.

Элементы управления:

· Радиокнопка «Проведение экспериментов»;

· Радиокнопка «Построение макета оптимизирующего компилятора»;

· Радиокнопка «Работа с информационным наполнением СБкЗ_ПП»;

· Кнопка управления «Отменить»;

· Кнопка управления «Выбрать»;

· Кнопка.

SEC#06

При нажатии кнопки управления «Отменить», текущее окно закрывается и загружается окно входа в систему.

SEC#07

При нажатии кнопки управления «Выбрать» если выбрана радиокнопка «Проведение экспериментов», то текущее окно закрывается и загружается окно «Проведение экспериментов». Если выбрана радиокнопка «Построение макета оптимизирующего компилятора», то текущее окно закрывается и загружается окно «Построение макета оптимизирующего компилятора». Если выбрана радиокнопка «Работа с информационным наполнением СБкЗ_ПП», то текущее окно закрывается и загружается окно «Работа с информационным наполнением СБкЗ_ПП».

SEC#08

При нажатии кнопки текущее окно должно закрыться.

Окно проведения экспериментов (СПП)

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

Элементы управления:

· Меню «Файл»;

· Вкладка «Исходная программа»;

· Вкладка «Программа после преобразований»;

· Вкладка «История применения преобразований»;

· Список «Преобразования»;

· Кнопка управления «Поднять»;

· Кнопка управления «Опустить»;

· Кнопка управления «Удалить из списка»;

· Кнопка управления «Добавить из СБкЗ_ПП»;

· Радиокнопка «По возрастанию»;

· Радиокнопка «По убыванию»;

· Радиокнопка «Random»;

· Кнопка.

SEC#09

При нажатии меню «Файл» открывается следующее подменю.

Рис. 8

SEC#10

При выборе пункта меню «Загрузить из СБкЗ_ПП» система загрузит модальное окно «Загрузка программы из СБкЗ_ПП».

SEC#11

При выборе пункта меню «Добавить в СБкЗ_ПП» загруженная в текущем окне программа будет добавлена в СБкЗ_ПП

SEC#112

При выборе пункта меню «Удалить из СБкЗ_ПП» откроется окно «Удаление программы из СБкЗ_ПП»

SEC#13

При выборе пункта меню «Сохранить», то если проект еще не был сохранен, откроется окно «Сохранение проекта». Если проект уже был сохранен, он будет пересохранен.

SEC#14

При выборе пункта меню «Сохранить как», то откроется окно «Сохранение проекта».

SEC#15

При выборе пункта меню «Сменить пользователя» текущее окно будет закрыто и откроется окно входа в систему.

SEC#16

При выборе пункта меню «Выход» программа завершит свою работу.

SEC#17

При нажатии кнопки управления «Поднять» выделенная строчка в списке «Преобразования» поднимется на одну позицию вверх, если она в этот момент не находится на самой верхней позиции.

SEC#18

При нажатии кнопки управления «Опустить» выделенная строчка в списке «Преобразования» поднимется на одну позицию вниз, если она в этот момент не находится на самой нижней позиции.

SEC#19

Если ни одна строчка в списке «Преобразования» не выделена, то радиокнопка «По возрастанию», радиокнопка «По убыванию», радиокнопка «Случайно» недоступны пользователю.

SEC#20

При нажатии кнопки управления «Добавить из СБкЗ_ПП» откроется модальное окно добавления преобразования.

SEC#21

При нажатии кнопки управления «Удалить из списка» выделенная строчка из списка «Преобразования» будет удалена.

SEC#22

При нажатии кнопки текущее окно должно закрыться.

Окно загрузки программы из СБкЗ_ПП

Окно предназначено для отображения списка всех доступных для проведения экспериментов программ из СБкЗ_ПП и выбора необходимой.

Элементы управления:

· Список «Список доступных программ»;

· Кнопка управления «Загрузить»;

· Кнопка.

SEC#23

При нажатии кнопки управления «Загрузить» текущее окно будет закрыто, а в окно проведения экспериментов (СПП) будет загружена выбранная программа.

SEC#24

При нажатии кнопки текущее окно должно закрыться.

3.9 Спецификации классов

Класс LogonWindow — класс окна ввода имени пользователя и пароля.

public class LogonWindow extends JFrame

{

private JButton buttonEnter;

private JButton buttonCancel;

private JLabel labelUser;

private JLabel labelPass;

private JTextField TextFieldUser;

private JPasswordField passwordField;

public LogonWindow ();

class ButtonCancelEventListener implements ActionListener

{

}

class ButtonEnterEventListener implements ActionListener

{

}

}

buttonEnter — свойство класса LogonWindow, является объектом класса JButton. Кнопка «Вход» на окне программы.

buttonCancel — свойство класса LogonWindow, является объектом класса JButton. Кнопка «Отмена» на окне программы.

labelUser — свойство класса LogonWindow, является объектом класса JLabel. Надпись «Пользователь:» на окне программы.

labelPass — свойство класса LogonWindow, является объектом класса JLabel. Надпись «Пароль:» на окне программы.

LogonWindow () — конструктор класса LogonWindow.

Вход: ничего;

Выход: экземпляр класса LogonWindow;

Результат выполнения: Устанавливает заголовок окна, его размеры. Добавляет на окно следующие элементы buttonEnter, buttonCancel, labelUser, labelPass.

ButtonCancelEventListener — внутренний класс класса LogonWindow. Закрывает приложение.

ButtonEnterEventListener — внутренний класс класса LogonWindow. Создает экземпляр класса OperatingModeWindow, вызывает деструктор текущего класса.

Класс OperatingModeWindow — класс окна выбора режима работы с СБкЗ_ПП.

public class OperatingModeWindow extends JFrame

{

private JLabel label;

private JRadioButton radioButtonExperiment;

private JRadioButton radioButtonMaket;

private JRadioButton radioButtonInf;

private JButton buttonEnter;

private JButton buttonCancel;

public OperatingModeWindow ();

class ButtonCancelEventListener implements ActionListener

{

}

class ButtonEnterEventListener implements ActionListener

{

}

}

графический интерфейс алгоритм программный

label — свойство класса OperatingModeWindow, является объектом класса JLabel. Надпись «Выберите один из режимов работы:» на окне программы.

radioButtonExperiment — свойство класса OperatingModeWindow, является объектом класса JRadioButton. Радиокнопка с надписью «Проведение экспериментов» на окне программы.

radioButtonMaket — свойство класса OperatingModeWindow, является объектом класса JRadioButton. Радиокнопка с надписью «Построение макета оптимизирующего компилятора» на окне программы.

radioButtonInf — свойство класса OperatingModeWindow, является объектом класса JRadioButton. Радиокнопка с надписью «Работа с информационным наполнением СБкЗ_ПП» на окне программы.

buttonEnter — свойство класса OperatingModeWindow, является объектом класса JButton. Кнопка «Выбрать» на окне программы.

buttonCancel — свойство класса OperatingModeWindow, является объектом класса JButton. Кнопка «Отменить» на окне программы.

OperatingModeWindow () — конструктор класса OperatingModeWindow.

Вход: ничего;

Выход: экземпляр класса OperatingModeWindow;

Результат выполнения: Устанавливает заголовок окна, его размеры. Выставляет свойство setSelected (true) для объекта radioButtonExperiment Добавляет на окно следующие элементы label, radioButtonExperiment, radioButtonMaket, radioButtonInf, buttonEnter, buttonCancel.

ButtonCancelEventListener — внутренний класс класса LogonWindow. Создает экземпляр класса LogonWindow, вызывает деструктор текущего класса.

ButtonEnterEventListener — внутренний класс класса LogonWindow. Если значение свойства selected объекта radioButtonExperiment есть true, то создает экземпляр класса ExperimentsWindow и вызывает деструктор текущего класса.

public class ExperimentsWindow extends JFrame

{

private JMenuBar menuBar;

private JMenu menuFile;

private JTabbedPane tabbedPane;

private JTextArea textAreaCodeBefore;

private JTextArea textAreaCodeAfter;

private JTextArea textAreaHistory;

private JLabel labelTr;

private JLabel label;

private JRadioButton radioIncrease;

private JRadioButton radioDecrease;

private JRadioButton radioRandom;

private List listTransformation;

private JButton buttonUpTransfomation;

private JButton buttonDownTransfomation;

private JButton buttonDelfromList;

private JButton buttonAddFromBank;

public ExperimentsWindow ();

private void createMenu ();

private void createTabs ();

private class ExitAction extends AbstractAction

{

}

private class ChangeUser extends AbstractAction

{

}

private class LoadFromBank extends AbstractAction

{

}

}

menuBar — свойство класса ExperimentsWindow, является объектом класса JMenuBar. Главное меню окна программы.

menuFile — свойство класса ExperimentsWindow, является объектом класса JMenu. Меню «Файл» главного меню программы.

tabbedPane — свойство класса ExperimentsWindow, является объектом класса JTabbedPane. Область с вкладками на окне программы.

textAreaCodeBefore — свойство класса ExperimentsWindow, является объектом класса JTextArea. Многострочное поле ввода для исходного текста программы.

textAreaCodeAfter — свойство класса ExperimentsWindow, является объектом класса JTextArea. Многострочное поле ввода для текста после преобразований.

textAreaHistory — свойство класса ExperimentsWindow, является объектом класса JTextArea. Многострочное поле ввода для истории применения преобразований.

labelTr — свойство класса ExperimentsWindow, является объектом класса JLabel. Надпись «Преобразования:» на окне программы.

label — свойство класса ExperimentsWindow, является объектом класса JLabel. Надпись «Стратегия применения преобразования:» на окне программы.

radioIncrease — свойство класса ExperimentsWindow, является объектом класса JRadioButton. Радиокнопка с надписью «По возрастанию» на окне программы.

radioDecrease — свойство класса ExperimentsWindow, является объектом класса JRadioButton. Радиокнопка с надписью «По убыванию» на окне программы.

radioRandom — свойство класса ExperimentsWindow, является объектом класса JRadioButton. Радиокнопка с надписью «Случайно» на окне программы.

listTransformation — свойство класса ExperimentsWindow, является объектом класса List. Список преобразований на окне программы.

buttonUpTransfomation — свойство класса ExperimentsWindow, является объектом класса JButton. Кнопка «Поднять» на окне программы.

buttonDownTransfomation — свойство класса ExperimentsWindow, является объектом класса JButton. Кнопка «Опустить» на окне программы.

buttonDelfromList — свойство класса ExperimentsWindow, является объектом класса JButton. Кнопка «Удалить из списка» на окне программы.

buttonAddFromBank — свойство класса ExperimentsWindow, является объектом класса JButton. Кнопка «Добавить из СБкЗ_ПП» на окне программы.

ExperimentsWindow () — конструктор класса ExperimentsWindow.

Вход: ничего;

Выход: экземпляр класса ExperimentsWindow;

Результат выполнения: Устанавливает заголовок окна, его размеры. Выставляет свойство setSelected (true) для объекта radioRandom. Добавляет на окно следующие элементы menuBar, tabbedPane, labelTr, label, radioIncrease, radioDecrease, radioRandom, listTransformation, buttonUpTransfomation, buttonDownTransfomation, buttonDelfromList, buttonAddFromBank. Вызывает методы createMenu () и createTabs ().

createMenu ()

Вход: ничего;

Выход: ничего;

Результат выполнения: Добавляет в главное меню menuBar меню menuFile.

createMenu ()

Вход: ничего;

Выход: ничего;

Результат выполнения: На области с вкладками создает три вкладки и на них помещает следующие объекты: textAreaCodeBefore, textAreaCodeAfter, textAreaHistory.

ExitAction — внутренний класс класса ExperimentsWindow. Закрывает приложение.

ChangeUser — внутренний класс класса ExperimentsWindow. Создает экземпляр класса LogonWindow, вызывает деструктор текущего класса.

3. 10 Связь интерфейса и прикладной программы

Основная функциональность СПП реализована в методах класса BankShell. Окна системы реализованы в классах LogonWindow, ExperimentsWindow, OperatingModeWindow. Реакция на события реализована в классах, которые реализованы в интерфейсе ActionListener. Интерфейс ActionListener содержит метод actionPerformed, из которого и вызываются методы класса BankShell.

3. 11 Средства реализации

OntoDev

Программное средство OntoDev является интегрированной средой разработки, предназначенной для создания пользовательских интерфейсов в рамках онтологоориентированного подхода к разработке пользовательских интерфейсов [2, 3, 7]. С помощью OntoDev пользователь может создавать интерфейсы, не обладая знаниями языков программирования и не заучивая структуру и свойства используемых интерфейсных элементов. При этом возможно создание интерфейсов под различные платформы и языки программирования. Встроенные средства позволяют пользователю создавать библиотеки компонентов интерфейса и использовать их в ходе дальнейшей разработки. Наличие средств связывания пользовательского интерфейса с онтологией предметной области помогает быстро реагировать на изменения в системе понятий предметной области и автоматически вносить эти изменения в интерфейс.

IntelliJ IDEA

IntelliJ IDEA — это интеллектуальная интегрированная среда разработки на языке Java для разработки клиентских и серверных Java приложений. В этой среде сделан упор на повышение производительности разработчика. Она предоставляет мощные инструменты разработки, поддержку JEE, управление версиями. Обладает встроенным интеллектуальным Java — редактором с мощным инструментарием для автоматизации написания кода.

Результаты реализации проекта в среде IntelliJ IDEA

С помощью IntelliJ IDEA были разработаны все имеющиеся на данный момент окна системы. Также все окна были связаны, согласно графу диалога. Некоторые реализованные на данный момент функции СПП были связаны с получившимся графическим пользовательским интерфейсом.

Результаты реализации в среде OntoDev

С помощью OntoDev были разработаны два окна, полностью удовлетворяющие требованиям системы преобразования программ, но все же реализовать главное окно программы не удалось из-за особенностей, перечисленных ниже:

· для любого программного средства, решающего задачи оптимизации программ необходимо дублировать основную функциональность через «горячие клавиши». OntoDev не предоставляет такой возможности;

· также для разрабатываемой системы очень важно иметь текстовую область с исходным текстом изучаемой программы максимального размера. Используя OntoDev выполнить это требование нельзя;

· в версии 1.0 OntoDev не хватает интерфейсных элементов для реализации пользовательского интерфейса разрабатываемой системы;

· также для реализации требуемого интерфейса явно не хватает обработчиков событий (например, на правый щелчок мыши).

Заключение

В ходе выполнения бакалаврской работы были получены следующие результаты:

— написан обзор средств, по теме «графический пользовательский интерфейс в системах оптимизации программ»;

— сформулированы требования к интерфейсу СПП;

— разработан проект интерфейса для СПП;

— изучено средство автоматической генерации интерфейсов «OntoDev»;

— реализован интерфейс для СПП.

Список литературы

1. Артемьева И. Л., Князева М. А., Купневич О. А. Модель онтологии предметной области «Оптимизация последовательных программ». Ч.1. Термины для описания объекта оптимизации. // НТИ. Сер. 2. -2002. -№ 12. -С. 23−28.

2. Грибова В. В., Тарасов А. В. инструментальное средство onto dev для проектирования и автоматической генерации пользовательского интерфейса // Информатика и системы управления. Благовещенск: Амурский государственный университет. 2006, № 1, c. 152−158.

3. Грибова В. В., Тарасов А. В. Управление процессом автоматической генерации программного кода пользовательского интерфейса по его модели // Труды III международной конференции «Параллельные вычисления и задачи управления», Москва, 2−4 октября 2006. [Электронный ресурс] Москва: ИПУ РАН, 2006

4. Клещев А. С., Князева М. А. Управление информацией о преобразованиях программ. I. Анализ проблем и пути их решения на основе методов искусственного интеллекта // Изв. РАН. ТиСУ. 2005. № 5.

5. Орлов В. А., Клещев А. С. Многоцелевой банк знаний. Часть1. Концепция и политика. Владивосток: ИАПУ ДВО РАН, 2003. 40 с.

6. Плохих С. А. Модель системы управления специализированного банка знаний о преобразованиях программ. XXXII Дальневосточная математическая школа-семинар имени академика Е. В. Золотова. (в печати)

7. Руководство пользователя OntoDev.

6. http: //parallel. ru/v-ray

7. http: //ops. rsu. ru/

8. http: //www. coyotegulch. com/products/acovea/acovea-gtk. html

ПоказатьСвернуть
Заполнить форму текущей работой