Научная статья на тему 'СОЗДАНИЕ СИСТЕМЫ КОНТРОЛЯ ПРОСТРАНСТВЕННО-ВРЕМЕННОГО СОСТОЯНИЯ ТЕХНОГЕННЫХ ОБЪЕКТОВ С ИСПОЛЬЗОВАНИЕМ ШАБЛОНА ПРОЕКТИРОВАНИЯ MODEL-VIEW-PRESENTER'

СОЗДАНИЕ СИСТЕМЫ КОНТРОЛЯ ПРОСТРАНСТВЕННО-ВРЕМЕННОГО СОСТОЯНИЯ ТЕХНОГЕННЫХ ОБЪЕКТОВ С ИСПОЛЬЗОВАНИЕМ ШАБЛОНА ПРОЕКТИРОВАНИЯ MODEL-VIEW-PRESENTER Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
89
14
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ / ШАБЛОН ПРОЕКТИРОВАНИЯ / МОДЕЛЬ / ПРЕДСТАВЛЕНИЕ / ПРЕДСТАВИТЕЛЬ / MODEL-VIEW-PRESENTER

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Аргинбаев А. Р., Бугаков П. Ю.

Статья посвящена проблеме разработке программного обеспечения с использованием архитектурных шаблонов проектирования, предназначенных для отделения данных от их представления и управляющей логики приложения. Цель работы заключается в создании информационной системы контроля пространственно-временного состояния техногенных объектов с использованием архитектурного шаблона Model-View-Presenter (MVP). Разработка выполнялась на языке программирования C# в интегрированной среде разработки Microsoft Visual Studio на платформе Windows Forms (.NET Framework) с применением встраиваемой СУБД SQLite. В результате выполненной работы была изучена базовая структура и связи классов MVP, сформулированы требования к функциональным возможностям, а также разработан прототип информационной системы контроля пространственно-временного состояния техногенных объектов. На основе полученных результатов дана оценка достоинств и недостатков применения шаблона проектирования MVP при создании программного обеспечения, обладающего подобными функциональными характеристиками.

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Аргинбаев А. Р., Бугаков П. Ю.

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

CREATION OF A SYSTEM FOR MONITORING THE SPATIO-TEMPORAL STATE OF A MAN-MADE OBJECT USING THE MODEL-VIEW-PRESENTER DESIGN PATTERN

The article is devoted to the problem of software development using architectural design patterns designed to separate data from their presentation and control logic of the application. The purpose of the work is to create an information system for monitoring the spatial and temporal state of man-made objects using the architectural template Model-View-Presenter (MVP). The development was carried out in the C# programming language in the Microsoft Visual Studio integrated development environment on the Windows Forms platform (.NET Framework) using the embedded SQLite DBMS. As a result of the work performed, the basic structure and connections of the MVP classes were studied, functional requirements were formulated, and a prototype of an information system for monitoring the spatial and temporal state of man-made objects was developed. Based on the results obtained, an assessment of the advantages and disadvantages of using the MVP design pattern when creating software with similar functional characteristics is given.

Текст научной работы на тему «СОЗДАНИЕ СИСТЕМЫ КОНТРОЛЯ ПРОСТРАНСТВЕННО-ВРЕМЕННОГО СОСТОЯНИЯ ТЕХНОГЕННЫХ ОБЪЕКТОВ С ИСПОЛЬЗОВАНИЕМ ШАБЛОНА ПРОЕКТИРОВАНИЯ MODEL-VIEW-PRESENTER»

УДК 004.42

Создание системы контроля пространственно-временного состояния техногенных объектов с использованием шаблона проектирования Model-View-Presenter

А. Р. Аргинбаев1 *, П. Ю. Бугаков1 1 Сибирский государственный университет геосистем и технологий, г. Новосибирск,

Российская Федерация

* e-mail: arthur.arginbaev@gmail.com

Аннотация. Статья посвящена проблеме разработке программного обеспечения с использованием архитектурных шаблонов проектирования, предназначенных для отделения данных от их представления и управляющей логики приложения. Цель работы заключается в создании информационной системы контроля пространственно-временного состояния техногенных объектов с использованием архитектурного шаблона Model -View-Presenter (MVP). Разработка выполнялась на языке программирования C# в интегрированной среде разработки Microsoft Visual Studio на платформе Windows Forms (.NET Framework) с применением встраиваемой СУБД SQLite. В результате выполненной работы была изучена базовая структура и связи классов MVP, сформулированы требования к функциональным возможностям, а также разработан прототип информационной системы контроля пространственно-временного состояния техногенных объектов. На основе полученных результатов дана оценка достоинств и недостатков применения шаблона проектирования MVP при создании программного обеспечения, обладающего подобными функциональными характеристиками.

Ключевые слова: программное обеспечение, шаблон проектирования, модель, представление, представитель, Model-View-Presenter

Creation of a system for monitoring the spatio-temporal state of a man-made object using the Model-View-Presenter design pattern

A. R. Arginbaev1 *, P. Yu. Bugakov1

1 Siberian State University of Geosystems and Technologies, Novosibirsk, Russian Federation

* e-mail: arthur.arginbaev@gmail.com

Abstract. The article is devoted to the problem of software development using architectural design patterns designed to separate data from their presentation and control logic of the application. The purpose of the work is to create an information system for monitoring the spatial and temporal state of man-made objects using the architectural template Model-View-Presenter (MVP). The development was carried out in the C# programming language in the Microsoft Visual Studio integrated development environment on the Windows Forms platform (.NET Framework) using the embedded SQLite DBMS. As a result of the work performed, the basic structure and connections of the MVP classes were studied, functional requirements were formulated, and a prototype of an information system for monitoring the spatial and temporal state of man-made objects was developed. Based on the results obtained, an assessment of the advantages and disadvantages of using the MVP design pattern when creating software with similar functional characteristics is given.

Keywords: software, design pattern, model, representation, representative, Model-View-Presenter

Введение

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

Согласно учебному плану кафедры прикладной информатики и информационных систем СГУГиТ в 4 семестре обучающиеся по направлению 09.03.02 Информационные системы и технологии выполняют курсовую работу по дисциплине «Моделирование систем». Основной целью курсовой работы является разработка информационной системы анализа пространственно-временного состояния техногенного объекта и выполнение вычислительного эксперимента на примере персонального варианта исходных данных. Поставленная задача помогает обучающимся приобрести базовые навыки создания программного обеспечения, а также формирует представление о проблемно-ориентированном подходе в проектной деятельности.

Как правило, разработка информационной системы выполняется на языке программирования C# в интегрированной среде Microsoft Visual Studio на платформе Windows Forms (.NET Framework) с применением встраиваемой СУБД SQLite [6-10]. При написании программы в рамках курсовой работы обучающиеся используют архитектурный паттерн Model-View-Controller, который заключается в разделении данных приложения и управляющей логики на три отдельных компонента: модель, представление и контроллер. Однако написание программы с применением данного шаблона может вызывать неудобства, связанные со спецификой платформы разработки Windows Forms, из-за чего возникает необходимость выбора иного паттерна проектирования.

Цель данной работы заключается в создании информационной системы контроля пространственно-временного состояния техногенного объекта с использованием архитектурного шаблона Model-View-Presenter.

Для достижения поставленной цели необходимо выполнить следующие задачи:

- определить назначение и функционал разрабатываемой информационной системы;

- изучить базовую структуру и связи классов MVP;

- выполнить разработку прототипа информационной системы с использованием архитектурного шаблона проектирования MPV;

- оценить преимущества и недостатки используемого шаблона проектирования.

Методы и технологии

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

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

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

Нп = {\ъ кп,2,-"> Кш)' (1)

где к - высота марки; п - номер измерения; ш - номер марки.

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

Длина вектора вычисляется по формуле:

Нп

= у1 К,1 + кп,2 + ■■■ + кп,ш (2)

Мп =

Угол между векторами вычисляется по формуле:

ап = агссоБ( Н° Нп) (3)

На основе значений, рассчитаных для каждого измерения, вычисляются прогнозные значения методом экспоненциального сглаживания:

= А' у, + (1 - А)' (4)

где Б1 - прогнозное значение, А - коэффициент экспоненциального сглаживания от 0 до 1, у( - реальное значение для расчета прогнозной величины, _1 -прогнозное значение за предыдущий период времени.

Для контроля и проверки системы на устойчивость используются предельные значения фазовых координат, рассчитываемые по формуле:

H± = H ±8^ц±, а1, (5)

где 8 - точность измерения каждой отметки.

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

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

Архитектурные шаблоны определяют структуру информационной системы, на которую в дальнейшем наращивается актуальный и востребованный функционал. Подходы к ее организации диктуются условиями эксплуатации конкретного программного продукта [16-20].

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

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

На первый взгляд, адекватным решением для подобных условий является самый распространненый шаблон для разработки пользовательского интерфейса «Model - View - Controller» (MVC). Но в оригинальном паттерне именно Контроллер должен реагировать на внешние события, однако в Windows Forms все обработчики уже встроены в Представление.

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

Mожно сделать вывод, что абстракции «Модель», «Представление» и «Контроллер» не подходят для сред типа Windows Forms. Таким образом, требуется модификация паттерна, которая с учетом упомянутых недостатков позволяла бы:

- эффективно отделять модель от ее представлений;

- без ограничений пользоваться дизайнером форм и имеющимися библиотеками;

- тестировать логику Контроллера независимо от Представления и сводила бы логику Представления к минимуму;

- избегать лишних обращений к Модели.

Одним из возможных решений, отвечающим всем вышеприведенным требованиям, является паттерн Model-View-Presenter (MVP).

Model-View-Presenter - шаблон, разработанный для облегчения модульного тестирования и отделения логики от отображения. Для реализации MVP используют три основных класса (рис. 1):

1) Модель (англ. Model) - предоставляет данные и реагирует на команды, изменяя свое состояние. Хранит набор полей и методов для реализации бизнес-логики приложения, а также набор событий, оповещающий Представителя об изменении тех или иных значений;

2) Представление (англ. View) - отображает данные и перенаправляет события от пользователя в Представителя. Хранит экземпляр Представителя, реализует соответствующий интерфейс;

3) Представитель (англ. Presenter) - реализует взаимодействие между Моделью и Представлением, при необходимости запрашивает данные и передает их для отображения. Хранит ссылку на реализацию Представления, хранит экземпляр Модели, реализует соответствующий интерфейс.

Взаимодействуя с элементами управления, пользователь инициирует события (рис. 2), которые обрабатываются Представлением и перенаправляются Представителю. Представитель их обрабатывает, вызывая изменение Модели, обрабатывает события ее изменения и вызывает обновление Представления.

Рис. 1. Структура и связи классов MVP

Событие графического Изменение интерфейса модели

X

Г

View Presenter Model

Обновление Событие изменения представления модели

Рис. 2. Обработка событий

Результаты

Разработанное программное обеспечение позволяет выполнить вычисление длины вектора, угла между текущим и начальным вектором, прогнозные и предельные значения, а также состояние системы для каждого цикла измерений. Пользовательский интерфейс построен в соответствии со спецификацией Multiple-document interface (MDI), что обеспечивает пользователю возможность одновременной работы с несколькими окнами.

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

Возможность загрузки исходных данных реализована через вкладку «База данных», подпункт «Подключить». После успешного подключения к базе данных (рис. 3), пользователь, вызвав соответствующие окна, может изменить настройки и выбранную таблицу марок, а также изучить схему объекта.

^ MDiMVPcw -ах

База данных Настройки Данные Декомпозиция

■В Таблица меток | S3

Эпоха 1 2 3 4 5 6 7 8 Э 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Л

11 42,6798 42.2844 42,9751 42.6092 42,6138 42.6197 42,9788 42.6492 42,9578 42,7432 2,6803 42,7548 42.5784 42,3512 42.4632 42,401 42.4346 42,4072 42.4166 42,4293 42.431 42,4315 42,4286 42,4317 42,432 42.4318 42,4318 42.4318

12 42,6731 42.2846 42,9824 42.6124 42,6114 42.6146 42,9782 42.645 42,9634 42,7448 2,6779 42,757 42.5816 42,3486 42.4632 42,4016 42.4362 42,406 42.4204 42,4278 42.4274 42,4298 42,4306 42,43 42,4318 42.43 42,43 42.43

13 42,6761 42.2832 42,9764 42,6126 42,6134 42.6208 42,9719 42.6498 42,9578 42,7526 2,6764 42,7616 42.5788 42,3559 42.4643 42,398 42.4362 42,41 42,4182 42,423 42.4247 42,4274 42,4282 42,4279 42,4257 42.428 42,428 42.428

14 42.6802 42.2882 42.978 42.6124 42.6064 42.6208 42.9786 42.645 42.956 42.7522 2.6822 42.7588 42.5824 42.3518 42.466 42.4024 42.4348 42.4046 42.4159 42.4274 42.429 42.4311 42.4344 42.4313 42.4345 42.4342 42.4342 42.4342

15 42.6764 42.2908 42.9824 42.6055 42.6123 42.6136 42.9786 42.6512 42.9598 42.749 2.679 42.757 42.578 42.3552 42.469 42.4008 42.441 42.4078 42.4162 42.4253 42.4276 42.4302 42.4316 42.4304 42.4316 42.4314 42.4314 42.4314

16 42.6729 42.2894 42.9822 42.6134 42.6121 42.6133 42.9758 42.6432 42.9606 42.7526 2.677 42.7584 42.5842 42.3504 42.4649 42.3938 42.4374 42.4056 42.4148 42.4294 42.4248 42.4252 42.4348 42.4254 42.4347 42.4346 42.4346 42.4346

17 42,6774 42.2908 42,9786 42.6134 42,6076 42.621 42,9744 42.6418 42,9576 42,747 2,677 42,7624 42.584 42,3527 42.4726 42,3969 42.4382 42,407 42.4172 42,4208 42.4238 42,4326 42,433 42,4328 42,4328 42.4328 42,4328 42.4328

18 42,679 42.2901 42,9751 42.6092 42,6138 42,6197 42,9788 42.6492 42,9578 42,7487 2,6809 42,7548 42.5784 42,3512 42.4632 42,401 42.4346 42,4114 42.4167 42,4293 42.431 42,4315 42,4286 42,4317 42,432 42.4318 42,4318 42.4318 v

Добавить Удалить

-В Схема |1Г) 1 Таб ойш m

; ;_7 S 10 ица меток: Покой v метрТ: 0.0005 метр А: 0,9

,8 У*" А Применить

Б 111

16 15 14 27, ■¿г. 25 24 23 22 21 19 13 12 20

База данных: D:\p1470(i\un¡versrty\KypcoBa»\mwcw.db Таблица меток: Покой Количество блоков: 3 Параметр Т: 0,0005 Параметр А: 0,9

Рис. 3. Загруженные исходные данные

Затем пользователь может приступать к декомпозиции объекта по имеющимся данным (рис. 4).

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

Для проведения расчетов II уровня необходимо выбрать «Второй уровень» во вкладке «Декомпозиция». После этого появится форма №2, для распределения

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

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

Рис. 4. Результат расчета для определения состояния техногенного объекта

Анализируя опыт применения архитектурного шаблона MPV при создании прикладного программного обеспечения, можно выделить его достоинства и недостатки. К преимуществам можно отнести автоматическое обновление Представления при изменении Модели, а также возможность реализации нескольких вариантов Представлений (и Представителей) без изменения Модели. К недостатку шаблона проектирования MVP можно отнести усложненную структуру классов, строгие требования к реализации и возросшие требования к уровню квалификации разработчика.

При разработке информационной системы контроля пространственно-временного состояния техногенных объектов применение архитектурного шаблона MVP позволило эффективно отделить модель данных от ее представления в пользовательском интерфейсе.

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

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

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

1. Бугакова Т. Ю. Моделирование изменения пространственно-временного состояния инженерных сооружений и природных объектов по геодезическим данным: статья в журнале Вестник СГГА. - Вып. 1 (29). - Новосибирск : СГУГиТ, 2015. - С. 34-42.

2. Бугакова Т. Ю., Борисов Д. А. Модель определения пространственно-временного состояния техногенных систем методами по данным геодезических наблюдений: статья в журнале Интерэкспо ГЕ0-Сибирь-2015. - Новосибирск : СГУГиТ, 2015. - С. 56-62.

3. Шеховцов Г. А., Шеховцова Р. П. Современные геодезические методы определения деформаций инженерных сооружений: монография. - Нижний Новгород: Нижегород. гос. архит.-строит. ун-т., 2014. - 256 с.

4. Вовк И. Г. Системно-целевой подход в прикладной геоинформатике: статья в журнале Вестник СГГА. - Вып. 2 (18). - Новосибирск : СГУГиТ, 2012. - с. 115-124.

5. Вовк И. Г. Математическое моделирование в прикладной геоинформатике: статья в журнале Вестник СГГА. - Вып. 1 (17). - Новосибирск : СГУГиТ, 2012. - с. 94-103.

6. Прайс М. C# 9 и .NET 5. Разработка и оптимизация. - СПб : Питер, 2022. - 832 с. - ISBN 978-5-4461-2921-8. - Текст : непосредственный.

7. Гриффитс И. Программируем на C# 8.0. Разработка приложений. - СПб : Прогресс книга, 2021. - 944 с. - ISBN 978-5-4461-1638-6. - Текст : непосредственный.

8. Евдокимов П. В. C#. Практическое руководство. - СПб : Наука и техника, 2022. - 416 с. -ISBN 978-5-94387-300-3. - Текст : непосредственный.

9. Шилдт Г. C# 4.0: полное руководство. - М. : ООО "И.Д. Вильямс", 2011. - 1056 с. -ISBN 978-5-8459-1684-6. - Текст : непосредственный.

10. Петцольд Ч. Программирование для Microsoft Windows на C#. В 2-х томах. Том 1. - М. : Издательско-торговый дом «Русская Редакция», 2002. - 576 с. - ISBN 5-7502-0210-0. - Текст : непосредственный.

11. Бугакова Т. Ю., Вовк И. Г. Математическое моделирование пространственно-временного состояния систем: Материалы V Всероссийской научно-технической конференции «Актуальные вопросы строительства». - Новосибирск: НГАСУ (Сибстрин), 2012. - Т. 2. - с. 100- 105.

12. Бугакова Т. Ю. Математическое моделирование пространственно-временного состояния систем по геометрическим свойствам и оценка техногенного риска методом экспоненциального сглаживания: статья в журнале Вестник СГГА. - Вып. 4 (20). - Новосибирск : СГГА, 2012. -с. 47- 58.

13. Вовк И. Г., Бугакова Т. Ю. Математическое моделирование пространственно-временного состояния систем по геометрическим свойствам: статья в журнале Интерэкспо ГЕО-Сибирь-2012. - Том: 3. - Новосибирск : СГГА, 2012. - с. 26-31.

14. Бугакова Т. Ю. К вопросу оценки риска геотехнических систем по геодезическим данным: статья в журнале Гео-Сибирь. - Том: 1, Номер: 1. - Новосибирск : СГГА, 2011. - с. 151-157.

15. Вовк И. Г., Бугакова Т. Ю. Декомпозиция и агрегирование систем при реализации системно-целевого подхода: статья в журнале Гео-Сибирь. - Том: 1 , Номер: 2. - Новосибирск : СГГА, 2010. - с. 21-24.

16. Фримен Эр., Фримен Эл., Сьерра К., Бейтс Б. Паттерны проектирования. - СПб : Питер, 2011. - 656 с. - ISBN 978-5-459-00435-9. - Текст : непосредственный.

17. Мартин Р., Мартин М. Принципы, паттерны и методики гибкой разработки на языке C#. - СПб : Символ-Плюс, 2011. - 768 с. - ISBN 978-5-93286-197-4. - Текст : непосредственный.

18. Фаулер М. Архитектура корпоративных программных приложений. - М. : «Вильямс», 2007. - 544 с. - ISBN 5-8459-0579-6. - Текст : непосредственный.

19. Ларман К. Применение UML и шаблонов проектирования. 2-е издание. - М.: Издательский дом «Вильямс», 2004. - 624 с. - ISBN 5-8459-0250-9. - Текст : непосредственный.

20. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. - СПб : Питер, 2001. - 368 с. - ISBN 5-272-00355- 1. -Текст : непосредственный.

© А. Р. Аргинбаев, П. Ю. Бугаков, 2022

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