РЕФЕРАТ 1
ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ, СИМВОЛОВ, СОКРАЩЕНИЙ, ТЕРМИНОВ ... 4
ВВЕДЕНИЕ 5
1 Определение и фиксация требований 7
1.2 Установка требований к системе 7
1.3 Функциональные требования 9
1.4 Нефункциональные требования 9
1.5 Анализ существующих решений 9
1.5 Обоснование необходимости разработки 10
2 Внутренняя структура фреймворка 12
2.1 Выбор инструментов 12
2.2 Архитектура фреймворка 14
2.3 Описание файловой структуры 16
2.4 Иерархия алгоритмов 16
2.5 Иерархия классов, реализующих получение/запись данных 18
2.6 Логирование 20
2.7 Конфигурационный файл 20
2.8 Файл инициализации 21
2.9 Реализация вспомогательного потока выполнения 21
3 Процесс жизнедеятельности фреймворка 22
3.1 Общее описание процесса жизнедеятельности системы 22
3.2 Получение данных из внешнего хранилища 22
3.3 Передача данных для визуализации 23
3.4 Цикл обработки событий потока 24
3.5 Синхронизация Потоков 26
3.6 Передача данных в рамках логирования 27
4 Руководство пользователя 29
4.1 Настройка окружения 29
4.2 Начало работы с фреймворком 30
4.3 Получение данных из внешнего хранилища 32
4.4 Запись данных во внешнее хранилище 33
4.5 Создание собственных классов получения/передачи данных 35
4.6 Логирование 36
4.7 Разработка алгоритма 36
4.8 Инициализация алгоритма 39
4.9 Отображение данных в графическом интерфейсе пользователя 40
ЗАКЛЮЧЕНИЕ 41
ИСТОЧНИКИ 42
Область задач решаемых при помощи алгоритмов вычислительной геометрии весьма широка. Геометрические структуры различной сложности используются в таких сферах как архитектура, астрономия, компьютерные игры, среды виртуальной реальности, геология, моделирование различных процессов и так далее. Соответственно, разработка некоторых базовых решений, позволяющих приступить к работе, без реализации с нуля набора стандартных для этой области сущностей и связей, чрезвычайно актуальна. Наличие в руках разработчика подобного инструмента позволяет значительно сократить использование самого ценного ресурса - времени, тем самым удешевляя стоимость разработки и сокращая время ожидания до появления рабочего проекта готового к использованию.
Следует отдельно отметить специфику разработки в рамках малых групп или одним лицом. В такой ситуации необходимость создания с нуля базовой структуры невероятно замедляет работу. Если целью разработки является построение или анализ одиночного алгоритма, то сопоставимая по времени или превышающая основную часть реализация базовых примитивов будет слишком трудозатратой.
Однако, воспользоваться переусложненными библиотеками, которые обладают чрезвычайно обширным, практически всеобъемлющим в рамках предметной области функционалом также затруднительно. В случае первого знакомства с подобным проектом, разработчик также находится в неудачном положении. Даже хорошо документированное решение требует времени на ознакомление, освоение принципов взаимодействия, что, учитывая объемы материала, может быть весьма затратно. При необходимости расширения функционала, для решения какой-либо редкой задачи, также возникают сложности, но уже другого рода. Нужно каким-либо образом объединить пользовательские правки с используемым проектом, изменения которого, происходят без учета конкретной пользовательской реализации. Конечно, большинство крупных проектов стараются придерживаться принципа обратной совместимости, однако, даже незначительные изменения, в силу возможной специфики, могут привести к проблемам у конечного пользователя. Многие из проектов предоставляют возможность обратной связи с разработчиками с целью исправления ошибок и рассмотрения предложений по расширению функционала. Но опять же, в силу популярности и, соответственно, большого количества заявок, просьба пользователя может остаться не рассмотренной в течение длительного времени, или вовсе быть отвергнута. Этот механизм сложно назвать оптимальным.
С целью создания решения, позволяющего разработчику без значительных трудозатрат в кратчайшие сроки приступить непосредственно к работе над алгоритмами вычислительной геометрии, с предоставлением возможностей для удобного создания и отладки, ведется разработка фреймворка для решения задач вычислительной геометрии. Данный проект совмещает в себе как уже реализованную базовую структуру для последующей разработки, так и возможность приступить к работе, затратив на ознакомление минимальное количество времени.
Целью данной работы является разработка базовой подсистемы для данного фреймворка, включающей в себя получение, запись и обработку данных в соответствии с пользовательскими алгоритмами, а также предоставление данных для визуализации в графическом пользовательском интерфейсе.
Задачи в рамках поставленной цели сформулированы следующие:
- Провести анализ существующих решений;
- Провести анализ требований;
- Спроектировать структуру базовой подсистемы фреймворка для реализации различных видов геометрических алгоритмов;
- Реализовать систему;
В рамках данной работы были решены все поставленные задачи:
- Проведен анализ существующих решений
- Проведен анализ требований
- Спроектирована структура фреймворка для реализации различных видов геометрических алгоритмов
- Реализована базовая подсистема фреймворка
Таким образом, цель - разработать базовую подсистему для фреймворка решения задач вычислительной геометрии - достигнута