1) CGenOGLApp - главный класс приложения, наследуется от стандартного класса CWinApp. Выполняет начальную инициализацию и создание главного окна проекта;
) СMainFrame - класс наследуемый от CFrameWnd, задает внешний вид главного окна проекта;
3) CGenOGLAppDoc - класс наследуемый от CDocument, хранит основные данные проекта;
4) CGenOGLAppView - класс наследуемый от CView, выполняет начальную инициализации OpenGL и отвечает за вывод данных хранящихся в предыдущем классе;
5) CCamera - класс, реализующий возможности камеры для просмотра объектов в OpenGL окне;
6) CConvertDlg - класс наследуемый от CDialog, отвечает за получение основных параметров для конвертации 3D файла в 3DO формат и саму конвертацию;
7) CGenerateDlg - класс наследуемый от CDialog, отвечает за получение основных параметров для генерации шаблона OpenGL приложения и саму генерацию.
Общая архитектура приложения
на уровне основных классов представлена на рисунке 4.1.
Рисунок 4.1 - Архитектура приложения
Результатом выполнения данного программного обеспечения является сгенерированный шаблон графического приложения. Шаблон, так же как и основное приложение, создан с помощью Application Wizard на основе MFC Application и имеет схожую с ним архитектуру.
В состав спроектированного шаблона графического приложения с именем OGLApp входят следующие файлы:
1) OGLApp.h - заголовочный файл, содержащий описание класса отвечающего за начальную инициализацию и создание главного окна проекта;
2) OGLApp.cpp - содержит реализацию выше описанного класса;
3) MainFrm.h - содержит описание класса отвечающего за внешний вид главного окна проекта;
4) MainFrm.cpp - содержит реализацию выше описанного класса;
5) OGLAppDoc.h - описывает класс хранящий основные данные проекта;
6) OGLAppDoc.cpp - содержит реализацию выше описанного класса;
7) OGLAppView.h - содержит описание класса отвечающего за отображение в главном окне проекта данных из предыдущего класса;
8) OGLAppView.cpp - содержит реализацию выше описанного класса;
9) Camera.h - отвечает за описание класса предоставляющего реализацию камеры для просмотра OpenGL окна;
10) Camera.cpp - содержит реализацию выше описанного класса;
11) StdAfx.h - используется для создания пре-компилированного файла заголовка.
Основными классами шаблона являются:
1) COGLApp - главный класс приложения, наследуется от стандартного класса CWinApp. Выполняет начальную инициализацию и создание главного окна проекта;
) СMainFrame - класс наследуемый от CFrameWnd, задает внешний вид главного окна проекта;
3) COGLAppDoc - класс наследуемый от CDocument, хранит основные данные проекта;
4) COGLAppView - класс наследуемый от CView, выполняет начальную инициализации OpenGL и отвечает за вывод данных хранящихся в предыдущем классе;
5) CCamera - класс, реализующий возможности камеры для просмотра объектов в OpenGL окне;
Общая архитектура шаблона графического приложения на уровне основных
классов представлена на рисунке 4.2.
Рисунок 4.2 - Архитектура шаблона OpenGL приложения
4.2 Информационное пространство системы
Рисунок 4.3 отображает информационное пространство приложения. Прямоугольниками изображены основные объекты приложения. Параллелограммами представлены передаваемые между объектами приложения данные. Стрелки на рисунке указывают направление передачи данных.
Под данными обозначенными на рисунке 4.3 как “Геометрические параметры 3D объекта” подразумевается геометрия объекта загруженного из 3DO файла.
Под данными “Положение камеры в пространстве” подразумевается положение камеры использующейся для просмотра OpenGL окна.
Параллелограммы с надписями “Путь к конвертируемому 3D файлу” и “Путь к исходному 3DO файлу” показывают входные данные, использующиеся при операции конвертирования.
Под данными обозначенными как “Сконвертированный 3DO файл” понимается файл 3DO формата полученный после операции конвертирования.
Параллелограммы с надписями “Путь к 3DO файлу” и “Путь к шаблону приложения” показывают входные данные, использующиеся при операции генерации приложения.
Под данными обозначенными как “Сгенерированный шаблон приложения” подразумевается шаблон OpenGL приложения полученный после операции генерации шаблона приложения.
Рисунок 4.4 в свою очередь отображает информационное пространство шаблона графического приложения.
Под данными обозначенными как “Геометрические параметры 3D объекта” подразумевается геометрия объекта загруженного из 3DO файла.
Под данными “Положение камеры в пространстве” подразумевается положение камеры использующейся для просмотра OpenGL окна.
Рисунок 4.3 - Информационное пространство приложения
Рисунок 4.4 - Информационное пространство шаблона приложения
4.3 Интерфейс пользователя
Для корректного запуска программы необходимо:
) предустановленная операционная система Windows XP SP3;
) наличие установленного пакета NET Framework 2.0;
) наличие установленного пакета Microsoft Visual C++ 2005 Redistributable;
) правильно установленное программное обеспечение на компьютере.
Под правильной установкой программного обеспечения понимается приведенная
на рисунке 4.5 структура расположения файлов приложения. Прямоугольниками
обозначены каталоги.
Рисунок 4.5 - Структура расположения файлов приложения
Программа имеет оконный графический интерфейс. При запуске программы на выполнение на экране монитора появляется окно, имеющее заголовок “Автоматизированная система генерации приложений” и являющееся главным окном приложения. Изображение вышеуказанного окна представлено на рисунке 4.6.
Рисунок 4.6 - Главное окно приложения
Главное окно имеет:
) меню с различными пунктами;
) окно OpenGL с осями и сеткой;
) статусную строку, показывающую состояние приложения и подсказки.
Меню в свою очередь разделено на следующие пункты:
) пункт меню “Файл” - содержит стандартные команды открытия, и закрытия файла, а также пункт корректного выхода из приложения;
) пункт “Вид” (рисунок 4.7) - отвечает за вид главного окна и предоставляет доступ к следующим командам:
a) команда “Статусная строка” - отвечает за отображение/скрытие cтатусной строки;
b) команда “Оси” - отвечает за отображение/скрытие осей в OpenGL окне;) команда “Сетка” - отвечает за отображение/скрытие сетки;) команды “Точка” - “Сглаживание” - отвечают за режим отображения 3D модели;) команда “Режим отсечения” - отвечает за включение/отключение режима отсечения задней поверхности полигонов;) команда “Свет” - отвечает за включение/отключение света в OpenGL окне;) команда “Тест глубины” отвечает за включение/отключение теста глубины в OpenGL пространстве.
) пункт меню “Инструменты” - реализует доступ к основным функциям приложения и включает следующие команды:
a) команда “Конвертирование” - вызывает диалоговое окно выполняющее операцию конвертирования 3D файла;
b) команда “Генерация” - вызывает диалоговое окно выполняющее операцию генерации шаблона приложения;
) пункт меню “Помощь” - имеет единственный подпункт “О программе”, который отвечает за отображение окна с одноименным названием (рисунок 4.12).
Рисунок 4.7 - Пункт меню “Вид”
При выборе команды “Конвертирование” на экране отображается окно, вид которого приведен на рисунке 4.8. В данном окне необходимо указать пути, используемые при операции конвертирования - путь к входному 3D файлу и путь к выходному 3DO файлу. При вводе несуществующих путей будет выведено сообщение, приведенное на рисунке 4.9. В случае, если указанные пути существуют, но 3D файл имеет несоответствующий формат или поврежден, будет выведено сообщение, изображенное на рисунке 4.10. Если конвертирование будет успешным, то окно просто закроется, а в статусной строке будет соответствующее сообщение.
При выборе команды “Генерация” на экране появится диалоговое окно, вид которого приведен на рисунке 4.11. Здесь необходимо ввести исходные данные, используемые при операции генерации шаблона OpenGL приложения - путь к 3DO файлу и путь, по которому шаблон будет сохранен. При вводе несуществующих путей будет выведено сообщение, приведенное на рисунке 4.9. Если генерация пройдет успешно, то окно просто закроется, а в статусной строке будет соответствующее сообщение.
Рисунок 4.8 - Вид окна “Конвертирование”
Рисунок 4.9 - Окно предупреждения
Рисунок 4.10 - Окно предупреждения
Также данное приложение умеет загружать и отображать на экране файлы 3D форматов (3DS, OBJ и 3DO). Для этого необходимо выбрать пункт
меню “Открыть” (рисунок 4.13), после чего необходимо указать 3D файл. После этого выбранный 3D файл будет открыт и его содержимое
отображено в главном окне приложения (рисунок 4.14). Для того чтобы убрать 3D объект с экрана необходимо выбрать
пункт меню “Закрыть”.
Рисунок 4.11 - Вид окна “Генерация”
Рисунок 4.12 - Вид окна “О программе”
Также если при открытии 3D файла, данный файл окажется поврежденным или несоответствующего формата, будет выведено сообщение, представленное на рисунке 4.10.
Рисунок 4.13 - Вид окна “Открыть”
Рисунок 4.14 - Вид главного окна с открытым 3D объектом
5. Тестирование системы
Тестирование - это доказательство работоспособности или неработоспособности программного продукта. Тест - это комбинация исходных данных, результат обработки которых тестируемой программой известен заранее.
Количество времени, потраченного на тестирование программного обеспечения, часто недооценивается. Процессы тестирования должны быть тщательно определены, чтобы их можно было адекватно профинансировать. Затраты на тестирование возрастают с ростом числа ошибок, обнаруженных до его начала.
Тестирование программы производилось на следующей конфигурации ПО компьютера:
) операционная система - Windows XP SP3;
) пакет NET Framework 3.5;
3) пакет Microsoft Visual C++ 2005 Redistributable.
При тестировании программы производилась последовательная проверка корректности выполнения данным приложением его основных функций:
1) загрузка 3D файла;
) конвертирование 3D файла;
) генерация шаблона OpenGL приложения.
В целях тестирования устойчивости работы программы при загрузке 3D файлов, был произведен ввод некорректных данных и получены следующие результаты:
) выбран 3D файл с неправильной структурой. Результат - на экран выводится окно с сообщением “Файл поврежден или не является поддерживаемым форматом!”.
) выбран 3D файл с нулевым размером. Результат - на экран выводится окно с сообщением “Файл поврежден или не является поддерживаемым форматом!”.
) выбран 3D файл с правильной структурой, но не хранящий никакой информации о геометрии объектов. Результат - загрузка прошла успешно, но на экране ничего не выведено.
В целях тестирования устойчивости работы программы при конвертировании 3D файлов, был произведен ввод некорректных данных и получены следующие результаты:
) нажатие кнопки “Конвертировать” без заполнения полей исходных данных. Результат - программа не реагирует и продолжает ждать ввода данных.
) ввод в поля окна “Конвертирование” несуществующих путей. Результат - на экран выводится окно с сообщением “Исходные данные введены неверно!”.
) ввод в поля окна “Конвертирование” существующих путей, но 3D файл имеет неправильную структуру. Результат - на экран выводится окно с сообщением “Файл поврежден или не является поддерживаемым форматом!”.
В целях тестирования устойчивости работы программы при генерации шаблона OpenGL приложения, был произведен ввод некорректных данных и получены следующие результаты:
) нажатие кнопки “Генерация” без заполнения полей исходных данных. Результат - программа не реагирует и продолжает ждать ввода данных.
) ввод в поля окна “Генерация” несуществующих путей. Результат - на экран выводится окно с сообщением “Исходные данные введены неверно!”.
) удаление из каталога с программой директории с именем “TemplateOGLApp”. Результат - на экран выводится окно с сообщением “Не найден шаблон графического приложения!”.
В целях тестирования устойчивости работы программы в целом, был произведен ввод некорректных данных и получены следующие результаты:
) нарушена структура расположения каталогов приложения. Результат - на экран выводится окно с сообщением “Не найден шаблон графического приложения!”.
) удалены из каталога с исполняемым файлом библиотеки поставляемые с ним. Результат - на экран выводится окно с сообщением “Приложению не удалось запуститься, поскольку ld3ds.dll не был найден. Повторная установка приложения может исправить эту проблему!” и программа прекращает свое выполнение.
При выполнении операции конвертирования по указанному в диалоговом окне “Конвертирование” пути, был создан файл 3DO формата (структура этого файла уже приводилась выше). Корректность данного файла была проверена его открытием в данном приложении, что показало его соответствие исходному 3D файлу.
При выполнении операции генерации шаблона приложения по указанному в окне “Генерация приложения” пути, был сгенерирован шаблон графического приложения. Данное приложение является проектом, созданным в Microsoft Visual Studio 2005 на базе шаблона MFC Application. Для компиляции этого проекта студия должна иметь набор библиотек описывающих стандартные классы MFC. При этом для запуска приложения данные библиотеки не потребуются, т.к. их функционал статически связан с приложением.
Полученные в результате проведенного тестирования результаты свидетельствуют о корректности выполнения тестируемым приложением своих функций. Из этого можно сделать вывод о корректности работы всей программы.
В составе комплекса средств автоматизации особое место занимает программное обеспечение (ПО) автоматизированных систем (АСНИ, САПР, АСУ). Особая важность данного вида обеспечения определяется тем, что именно в нем закладываются и реализуются функции автоматизированных систем. В состав ПО могут включаться пакеты программ и отдельные программные модули, созданные для широкого применения или специального назначения. Однако оригинальные или специальные программы имеют возможность найти в дальнейшем широкое применение, если они созданы и оформлены в соответствии с определенными требованиями, предъявляемыми к созданию программ как к продукции производственно-технического назначения, т.е. как к программным изделиям.