- •Введение
- •Постановка задачи
- •Изучение предметной области
- •Аналоги
- •Система
- •Онлайн - карты
- •Актуальность
- •Функциональные требования к программному продукту
- •Функциональные требования к онлайн – карте
- •Характеристика выбранных программных сред и средств
- •Диаграмма взаимодействия проектов
- •Возможные способы реализации:
- •Описание входных/выходных данных
- •Входные данные
- •Выходные данные
- •Описание структуры базы данных
- •Файл «paint.Php»
- •Файл«Ajax_start_exe.Php»
- •Список использованных источников
- •Приложения Приложение а.
- •Приложение б
- •Приложение в
- •Приложение г
- •Приложение д
- •Приложение е
Диаграмма взаимодействия проектов
На рисунке 9 показаны все основные файлы проекта и их авторы.
Рисунок 9
На рисунке 10 изображена общая схема файлов, используемых в проекте и их краткое описание.
Рисунок 10
Файлы report.static.php,data.tree.php,insert.data.php,FormtText.php– это модуль генерации отчета. Подробно об этом модуле можно посмотреть в дипломном проекте Михайлова Алексея.
Файлы paint.php,Ajax_start_exe.php,maps_test.php,loadPoint.php– это модуль картографии. Подробнее об этих файлах можно посмотреть в схеме функционирования программного средства.
Возможные способы реализации:
Один из возможных способов реализации программного средства – локальное приложение.
Взяв за основу структуру данных предложенную в АИС «АРХЕОГРАФ», возможно усовершенствовать и дополнить функционал АИС.Взяв за основу для интерфейса фреймворкQtвозможно будет добиться кроссплатформенности.Qt– это кросс-платформенный фреймворк для языкаC++. ФремворкQtсодержит множество элементов для реализации различных функций будущего программного средства, но так же большинство версийQtподдерживается множеством компиляторов, такими какGCCилиVisualStudio.Qtпоставляется вIDEQtCreator, с простым и удобным интерфейсом для создания и разработки пользовательских интерфейсов. Использование библиотекиBoostдля языка программированияC++ даёт возможность реализоватьработу со сложными древовидными структурами.Хранение данных будет осуществляться используя драйверQtдляSQLiteв базе данныхSQLite.
Недостатками данного решения являются системные ограничения – не на всех устройствах возможна поддержка запуска скомпилированных C++ приложений. Так же отсутствует возможность совместной работы. Возможны сложности или полноеотсутсвие функции экспорта/импорта данных.
Другой вариант реализации программного средства – web-приложение с использованием языкаPythonдля генерации и работы с отчётами,PostgreSQLв качестве СУБД. Язык программированияPythonэто высокоуровневый интерпретируемый интерактивный язык программирования. Он поддерживает модульность, исключения, динамическую типизацию, высокоуровневые динамические типы данных и классы.Pythonподдерживает несколько парадигм программирования, такие как объектно-ориентированное программирование, процедурное и императивное программирование.Кроме этого для языкаPythonсуществуе большое количество библиотек для работы с изображениями, древовидными структурами,XMLи прочее.
Использовать Pythonв качестве скриптового языка дляweb-страниц возможно при помощи технологииCGI(CommonGatewayInterface), поддерживаемой на большинствеweb-серверов.
PostgreSQL– это мощная СУБД с открытым исходным кодом. Она разрабатывается больше 15 лет и имеет хорошую репутацию стабильной и быстрой системы.
Минусы данного способа реализации заключаются в отсутсвии опыта разработки на языке программирования Python, нестабильной работыPythonчерезCGIв целом.
Еще одним вариантом реализации является web-приложение написанное наNode.jsNode.jsэто программная среда для масштабируемых серверных и сетевых приложений. ПрограммыNode.jsнаписаны на языкеJavaScriptи могут выполняться в операционных системах семействAppleMacOSX,MicrosoftWindows,GNU/Linuxбез каких-либо изменений. Приложения наNode.jsразработаны для максимально эффективного выполнения, используя асинхронную, не блокирующую подачу и обработку входных/выходных данных,асинхронные события.Node.jsиспользуетGoogleV8JavaScriptплатформу для выполнения кода и большая часть базовых модулей написана наJavaScript.Node.jsподдерживает асинхронные ввод/вывод данных, сокеты и протоколHTTP, что позволяет использоватьNode.jsв связке сweb-серверомApache.
Минусами данного решения можно считать относительную новизну платформы Node.jsи её общую нестабильность, отсутствие опыта работы с данной платформы и текущие объёмы документации.
Выбранный способ реализации – язык программирования PHPв связке с СУБДMySQL, размещенные наweb-сервереApache. СвязкаPHP+MySQLдостаточно популярное решение дляweb-приложений. Язык программированияPHP– серверный язык, используемый дляweb-разработки. Язык содержит множествоAPIи библиотек для работы с большим количеством технологий, таких как парсинг и генерацияXML, работа сJSON,YAML, построениеDOM-объектов, работа с базами данныхMySQL(mysql,mysqli) иPostgreSQL(pg_*) и другие СУБД(PDO).PHPпозволяет выполнение бинарных файлов на стороне сервера, работу с изображениями и звуковыми форматами данных.
Использованиерекурсии позволит обходить и изменять древовидные структуры, необходимые для построения структуры отчёта и его генерации, создания шаблонов с неявной вложенностью.
Простая и удобная встраиваемость PHP-программ вHTML-документы позволит использовать возможностиCSSдля генерируемого материала.PHP-программы принимают аргументыPOSTиGETзапросов, тем самым давая возможность реализации технологииAJAX.
Для упрощения манипуляции с DOMHTML-документа, реализацииAJAXна клиентской стороне используется библиотекаjQueryдляJavascript.jQueryэто кросс-платформенная библиотека для языкаJavaScript, созданная для упрощения разработки клиент-приложений, встраиваемых вHTML-документыweb-приложений. БиблиотекаjQueryэто библиотека с открытым исходным кодом. Основное применение это манипуляция с элементамиHTML-документов, создавать анимации, управлять событиями и разрабатыватьAJAX-приложения.
Работа с картами реализована при помощи APIпоставщика сервисов картографии –GoogleMaps.GoogleMapsAPIэто бесплатный свободный для использования сервис от компанииGoogle, позволяющий встраивать и работать с картамиGoogleMaps.GoogleMapsAPIсодержит набор методов для доступа к динамическим картамGoogleMaps, позволяя реализовывать гео-локацию, работу с координатами в системеGPS. Набор функцийGoogleMapsAPIдля статических картGoogleMapsпредоставляет возможности задания размера, координат в системеGPS, нанесения каких-либо маркеров, устанавливаемых пользователем, возвращая при этом статичный файл изображения, который возможно сохранить и использовать для любых нужд. Для коммерческих решений компанияGoogleпредоставляетGoogleMapsAPIforBusiness.