Научная статья на тему 'К вопросу о разработке специализированного программного обеспечения на базе ГИС-технологий для угледобывающих предприятий'

К вопросу о разработке специализированного программного обеспечения на базе ГИС-технологий для угледобывающих предприятий Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
224
22
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ГИС / GIS / ENGINEERING / ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ / SOFTWARE / УГОЛЬНАЯ ПРОМЫШЛЕННОСТЬ / COAL INDUSTRY / РАЗРАБОТКА

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Фанасков Виталий Сергеевич, Степанов Юрий Александрович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ON THE DEVELOPMENT OF SPECIALIZED SOFTWARE BASED ON GIS TECHNOLOGIES FOR COAL MINES

The methodological and technical aspects of the development of specialized software for the mining industry. The examples of the technologies used. The recommendations for the use of certain technologies development.

Текст научной работы на тему «К вопросу о разработке специализированного программного обеспечения на базе ГИС-технологий для угледобывающих предприятий»

© B.C. Фанасков, Ю.А. Степанов, 2013

УДК 004.415.2

В.С. Фанасков, Ю.А. Степанов

К ВОПРОСУ О РАЗРАБОТКЕ СПЕЦИАЛИЗИРОВАННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ НА БАЗЕ ГИС-ТЕХНОЛОГИЙ ДЛЯ УГЛЕДОБЫВАЮЩИХ ПРЕДПРИЯТИЙ

Рассмотрены методологические и технические аспекты разработки специализированного программного обеспечения для угледобывающей промышленности. Приведены примеры используемых технологий. Даны рекомендации по применению отдельных технологий разработки. Ключевые слова: ГИС, разработка, программное обеспечение, угольная промышленность.

Специализированное программное обеспечение используется в угледобывающей промышленности при решении задач построения электронных классификаторов, анализа геологоразведочных данных, мониторинга экологической ситуации, выбора оборудования, мониторинга перемещения техники и персонала, учёта добычи полезных ископаемых и многих других задач. В таком программном обеспечении используются специализированные алгоритмы обработки данных, характерные для горнодобывающих предприятий и методы пространственного анализа, учитывающие географическую привязку объектов (например, мест складирования отходов) и их взаимное расположение (например, при проектировании инфраструктуры шахты). Следовательно, для решения задач угледобывающих предприятий целесообразно использовать специализированное программное обеспечение на базе ГИС технологий (СПО ГИС), сочетающие методы анализа, характерные для геоинформатики, с алгоритмами, применяемыми в выбранной предметной области с учётом специфики обработки и хранения данных в рамках рассматриваемых задач.

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

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

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

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

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

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

При выборе методологии разработки СПО ГИС для угледо-бываюших предприятий, необходимо учитывать следуюшие факторы:

1. Сложность формулировки инварианта для объектов угле-добываюшей промышленности.

2. Необходима корректность и адекватность работы специализированных алгоритмов с учётом вариативности функционального наполнения.

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

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

5. Частая поставка рабочего программного обеспечения и немедленный ввод в эксплуатацию новых возможностей.

Учитывая вышеперечисленные факторы, целесообразно использовать одну из современных методологий на основе технологий гибкой разработки (Agile Development, AD) совместно с принципами предметно-ориентированного проектирования (Domain-Driven Design, DDD). Сложность формулировки инварианта, можно снизить, учитывая подход DDD по созданию единого языка предметной области. Вариативность функционального наполнения достигается за счёт использования типовых решений в области проектирования программных систем с использованием объектно-ориентированного подхода. Учёт динамики рынка программного обеспечения заложен в основу AD[1]. Использование паттернов проектирования корпоративных приложений в контексте подхода DDD даёт возможность использовать адаптивные модели, настраиваемых автоматически, посредствам конфигурационных файлов или специализированных языковых средств[2]. Частая поставка рабочего программного обеспечения учитывается за счёт итерационной модели разработки и не противоречит подходам предметно-ориентированного проектирования.

Сушествует много методов разработки программного обеспечения, основанных на принципах AD. Наиболее популярными из них (по данным на Agile Survey на 2011 г.) являются: Scrum - 52 %, Scrum / Extreme Programming (XP) Hybrid - 14

% и Custom Hybrid - 9 %. Тот факт, что смешанные пользовательские методы разработки находятся на третьем месте, обусловлен тем, что принципы AD носят рекомендательный характер. Это характеризует гибкую разработку как адаптивную платформу, настраиваемую для выбранной предметной области. В данном случае, учитывая факторы оказывающие влияние на разработку программного обеспечения угледобывающих предприятий и специфику данной отрасли, целесообразно вынести некоторые этапы разработки за рамки основного жизненного цикла программной системы.

Наиболее важными этапами процесса разработки программного обеспечения для угледобывающих предприятий являются этапы предпроектного исследования и предварительной оценки сложности реализации функционального наполнения программной системы. Предпроектное исследование предполагает составление более подробных спецификаций, чем принято в классических AD методах. Это связанно с учётом факторов 1 и 2, влияющих на процесс разработки. Спецификации, составляемые по общепринятым правилам, включат в себя описание пространственных объектов угольной промышленности с учётом координатной привязки и используемые методы анализа. Дополнительно составляются классификаторы, используемые для решения поставленных задач. Подробная спецификация позволит придерживаться единой стратегии разработки в терминах предметной области.

Например, при реализации проекта по моделированию угольных пластов по данным геологоразведки целесообразно специфицировать характеристики таких объектов как отдельный слой почвы из буровой скважины, саму буровую скважину и тип конечно модели пластов. Спецификация алгоритмов предусматривает описание способа моделирования слоёв в виде интерполяции, посредствам методов нечёткой логики или с использованием любых других авторских разработок. В данном примере возможно составление классификатора угольных пород, учитывающего различные параметры, например коэффициент крепости.

Помимо составления спецификаций, на этапе предпроект-ного исследования производится анализ и предварительный технологических средств реализации программной системы. В

настоящий момент существует множество библиотек и программных каркасов, реализующих многие математические функции и специализированные функции ГИС. Использование подобных средств позволяет увеличить надёжность программного обеспечения и сократить время разработки. Например, при моделировании угольных пластов необходимо использовать готовые средства для географической привязки объектов и работы с электронными картами, а также готовые библиотеки параллельного программирования.

После составления предварительных спецификаций и выбора технологических средств реализации производится предварительная оценка возможности реализации программной системы. Рассчитывается время, необходимое для реализации всего проекта и время реализации отдельных итераций. Для каждой из групп функциональности устанавливаются приоритеты реализации. Производится экспертная оценка реализуемости по выбранному критерию (время, стоимость или сложность). Предпроектный этап и этап оценки завершается конфигурированием прочих этапов разработки. В дальнейшем может быть использован любой из методов разработки на основе АЭ.

Концепция архитектуры программной системы относиться к методологическому и технологическому уровню разработки. Однако, учитывая принятую концепцию ООО и предварительный выбор средств реализации, концептуальную модель архитектуры целесообразно отнести к технологическому уровню разработки. В этом случае, учитываются объектно-ориентированный подход к разработке программного обеспечения, являющийся сбалансированным по соотношению скорости создания программного обеспечения и его качества, и прикладные технологии реализации [7]. Следовательно, проектирование осуществляется без отрыва от технологий реализации, что положительно сказывается на качестве программного продукта.

Обобщённая архитектура для СПО ГИС (рисунок) разработанная авторами на основе классической многоуровневой архитектуры [3], позволяет изолировать предметную область, выделить набор бизнес правил, организовать интерфейс пользователя и соединить все компоненты в составе единой системы с минимальной связанностью элементов.

Ч Слой служб /

1

I Модель предметной области

)—1—

Источники данных

Концептуальная модель архитектур СПО ГИС

Адаптация концептуальной модели для решения конкретных задач угольной промышленности осуществляется по-средствам спецификации функционального наполнения. В качестве источников данных могут служить как классические реляционные и не реляционные СУБД, так и классификаторы.

В качестве примера, рассмотрим адаптацию такой модели к описанной ранее программе моделирования пластов полезных ископаемых. Представлением будет являться интерфейс пользователя, предоставляющий средства для работы с картами разрабатываемого месторождения. Карты могут быть как тематическими, так и классическими топографическими. На карты наносятся буровые скважины, которые в последствие заполняются образцами почвы. После чего осуществляется построение двух- или трёхмерной модели угольного месторождения поверх карты или в отдельном окне. Уровень

контроллеров обрабатывает действия пользователя и принимает решения об изменении модели или использовании каких-либо функций. Например, если пользователь выбирает добавление новой буровой скважины, то контроллер получает её координаты, проверяет возможность добавления, после чего вносит изменения в модель данных. Слой служб может быть реализован как в виде отдельных служб, так и в виде модулей, предоставляющих определённую функциональность. Например, моделирование пластов по геологоразведочным скважинам может осуществляться с использованием интерполяции кубическими сплайнами или с применением методов нечёткой логики. В этом случае модуль специализированных функций предоставляет необходимые возможности в зависимости от запроса контроллера, который в свою очередь «знает» какой именно алгоритм выбрал пользователь. Контроллер моделей обрабатывает обращение функций и верхнего слоя контроллеров к модели данных. Так, например, для эффективной реализации алгоритма может потребоваться дискретное представление пласта полезных ископаемых или же пласт должен быть представлен монолитным объектом. Слой источников данных отвечает за сохранение и воспроизведение данных, предоставляя универсальный интерфейс при возможности сменных методов загрузки и источников данных. Например, для улучшения эффективности работы с пластами может быть принято решение загружать в оперативную память, только видимую часть месторождения, следовательно, изменится и метод загрузки данных (возможна реализация с применением паттерна «Загрузка по требованию»).

После предварительного разделения ролей по слоям производится дальнейшая детализация отдельно взятых подсистем и модулей в виде компонентных моделей. Сущности компонентных моделей детализируются в виде диаграмм классов на основе типовых шаблонов разработки. Например, для реализации системы «Представление - Контроллер приложений - Контроллер служб - Слой служб», целесообразно использовать паттерны проектирования на основе МУС [4]. Другим примером использования шаблонов проектирования является организация аналогов объектно-реляционного отображения при взаимодействии модели

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

Второй частью технологического уровня является выбор технологий реализации («стека технологий»). Выбор стека технологий осушествляется параллельно с анализом бизнес-процессов до проектирования архитектуры. Сушествует множество технологий реализации в зависимости от уровня детализации программной системы. На верхнем уровне детализации целесообразно выделить следуюшие технологии: программный каркас, система управления базами данных и дополнительные языковые средства. Выбор технологий зависит от многих факторов, наиболее важными из которых являются: тип решаемых задач, тип платформы и наличие специалистов.

Программными системами для угольной промышленности решаются наукоёмкие задачи, сопряжённые с обработкой больших объёмов пространственных данных. Следовательно, целесообразно ориентироваться на использование программных каркасов SAGAGIS (System for Automated Geosci-entific Analyses) и QuantumGIS. Каркас SAGAGIS применяется в научных исследованиях и имеет простой и понятный интерфейс прикладного программирования. Программный каркас QuantumGIS обладает широким спектром возможностей графической визуализации двумерных объектов и использует средства библиотеки Qt.

Помимо программных каркасов, сушествует множество отдельных библиотек для решения задач ГИС. Например, в программе моделирования угольных пластов целесообразно было бы использовать Open CASCADE Technology для трёхмерной визуализации шахтного поля.

Наиболее распространёнными пространственными СУБД являются: PostGIS и MongoDB. Применение пространственных СУБД позволяет использовать пространственные индексы для ускорения операций с базой данных и расширенные возможности языка SQL. Стоит отметить встроенные типы данных для пространственных объектов и пространственные операции. Возможно применение пространственных предикатов, реализованы пространственные операторы для измерения плошади, длинны, периметра. Поддерживаются операции дифференцирования, объединения, симметричного

дифференцирования и так далее. Например, использование пространственных СУБД в программе для моделирования слоёв полезных ископаемых позволяет сохранить в базу данных все геометрические характеристики определённого слоя и воспроизвести их с использованием минимального количества операций.

Согласно практикам DDD в процессе разработки создаётся и поддерживается словарь предметной области, упрощающий коммуникацию разработчиков и специалистов в предметной области. В рамках данного подхода органично смотрится решение по использованию технологий создания предметно-ориентированных языков программирования (DSL). Предметно-ориентированные языки более близки к естественным языкам, чем классические языки программирования и позволяют осуществлять разработку в терминах предметной области [8]. Например, в рассматриваемой программе по моделированию угольных пластов, можно создать специализированный DSL для формирования шахтных полей, что упростит тестирования связанной функциональности и ввод данных для специалистов в предметной области.

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

- СПИСОК ЛИТЕРАТУРЫ

1. Кон М. Scrum: гибкая методология разработки ПО. - М.: ООО «И.Д. Виль-ямс», 2011. - 576 с.

2. Эванс Э. Предметно-ориентированное проектирование (DDD): структуризация сложных программных систем.: пер. с англ. - М.: ООО «И.Д. Вильямс», 2012. - 488 с.

3. Спинеллис Д. Идеальная архитектура. Ведущие специалисты о красоте про-граммных архитектур / Спинеллис Д., Гусиос Г. - Пер. с англ. - СПб.: Сим-вол-Плюс, 2010. - 528 с.

4. Фримен Э. Паттерн проектирования / Э. Фримен, Эл. Фримен, К. Сьерра. - Питер, 2011. - 656 с.

5. Капралов Е.Г. Основы геоинформатики: Учебное пособие / Е.Г. Капралов, А.В. Кошкарев, В.С. Тикунов и др., - М.: Издательский центр «Академия». 2004. - 325 с.

6. Журкин И.Г. Геоинформационные системы / Журкин И.Г., Шайтура С.В. - М:. КУДИЦ-ПРЕСС, 2009. - 272 с.

7. Мартин Фаулер. Шаблоны корпоративных приложений. - М.: Издательский дом «Вильямс», 2012. - 544 с.

8. Language Implementation Patterns: Create Your Own Domain-Specific and General Terence Parr. Programming Languages (Pragmatic Programmers). -Pragmatic Bookshelf, 2010. ГТТШ

КОРОТКО ОБ АВТОРАХ -

Фанасков Виталий Сергеевич - ассистент кафедры информационных систем и управления, факультет информационных технологий, vsnkfi@gmail.com, Степанов Юрий Александрович - кандидат технических наук, доцент кафедры информационных систем и управления, факультет информационных технологий, dambo290@yandex.ru,

Новокузнецкий институт (филиал) Кемеровского государственного университета.

i Надоели баннеры? Вы всегда можете отключить рекламу.