Научная статья на тему 'РАЗРАБОТКА МАСШТАБИРУЕМЫХ КРОССПЛАТФОРМЕННЫХ ПРИЛОЖЕНИЙ QML C ИНТЕГРАЦИЕЙ МОДУЛЯ ГЕОМЕТРИЧЕСКИХ ПОСТРОЕНИЙ OPEN CASCADE'

РАЗРАБОТКА МАСШТАБИРУЕМЫХ КРОССПЛАТФОРМЕННЫХ ПРИЛОЖЕНИЙ QML C ИНТЕГРАЦИЕЙ МОДУЛЯ ГЕОМЕТРИЧЕСКИХ ПОСТРОЕНИЙ OPEN CASCADE Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
38
11
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МАСШТАБИРУЕМОЕ ПРИЛОЖЕНИЕ / ИНТЕГРАЦИЯ МОДУЛЯ / ПЛАТФОРМА / КРОССПЛАТФОРМЕННОСТЬ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ахлестин А.И., Юров А.Н., Чижов М.И.

Рассматривается разработка масштабируемых кроссплатформенных приложений, реализованных при помощи QML с интеграцией модуля геометрических построений Open CASCADE. QML (Qt Meta-Object Language) является декларативным языком программирования, позволяющим создавать пользовательские интерфейсы на различных платформах. Open CASCADE, с другой стороны, предоставляет мощный инструментарий для геометрического моделирования и анализа. Исследование также описывает архитектуру масштабируемых приложений и преимущества кроссплатформенной разработки с использованием QML. Кроме того, в работе предложены пути интеграции модуля геометрических построений Open CASCADE в приложения на QML, обеспечивающие возможности для создания сложных трехмерных моделей и выполнения геометрических операций. В результате представлены примеры применения разработанных приложений, демонстрирующие их масштабируемость и функциональные возможности. Рассмотренный способ разработки приложений может быть использован в различных областях, таких как инженерное моделирование, архитектурное проектирование и медицинская визуализация. Реализация выполнена для операционных систем Windows с 64 разрядной архитектурой

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

DEVELOPMENT OF SCALABLE CROSS-PLATFORM QML APPLICATIONS WITH INTEGRATION OF THE OPEN CASCADE GEOMETRIC CONSTRUCTIONS MODULE

This paper considers the development of scalable cross-platform applications implemented using QML with the integration of the Open CASCADE geometric constructions module. QML (Qt Meta-Object Language) is a declarative programming language that allows you to create user interfaces on various platforms. Open CASCADE, on the other hand, provides powerful tools for geometric modeling and analysis. The study also describes the architecture of scalable applications and the advantages of cross-platform development using QML. In addition, the paper suggests ways to integrate the Open CASCADE geometric constructions module into QML applications, providing opportunities for creating complex three-dimensional models and performing geometric operations. As a result, examples of the application of the developed applications are presented, demonstrating their scalability and functionality. The considered method of application development can be used in various fields, such as engineering modeling, architectural design and medical imaging. The implementation is made for Windows operating systems with 64-bit architecture

Текст научной работы на тему «РАЗРАБОТКА МАСШТАБИРУЕМЫХ КРОССПЛАТФОРМЕННЫХ ПРИЛОЖЕНИЙ QML C ИНТЕГРАЦИЕЙ МОДУЛЯ ГЕОМЕТРИЧЕСКИХ ПОСТРОЕНИЙ OPEN CASCADE»

DOI 10.36622/VSTU.2023.19.3.002 УДК 544.42

РАЗРАБОТКА МАСШТАБИРУЕМЫХ КРОССПЛАТФОРМЕННЫХ ПРИЛОЖЕНИЙ QML C ИНТЕГРАЦИЕЙ МОДУЛЯ ГЕОМЕТРИЧЕСКИХ ПОСТРОЕНИЙ OPEN CASCADE

А.И. Ахлестин, А.Н. Юров, М.И. Чижов

Воронежский государственный технический университет, г. Воронеж, Россия

Аннотация: рассматривается разработка масштабируемых кроссплатформенных приложений, реализованных при помощи QML с интеграцией модуля геометрических построений Open CASCADE. QML (Qt Meta-Object Language) является декларативным языком программирования, позволяющим создавать пользовательские интерфейсы на различных платформах. Open CASCADE, с другой стороны, предоставляет мощный инструментарий для геометрического моделирования и анализа. Исследование также описывает архитектуру масштабируемых приложений и преимущества кроссплатформенной разработки с использованием QML. Кроме того, в работе предложены пути интеграции модуля геометрических построений Open CASCADE в приложения на QML, обеспечивающие возможности для создания сложных трехмерных моделей и выполнения геометрических операций. В результате представлены примеры применения разработанных приложений, демонстрирующие их масштабируемость и функциональные возможности. Рассмотренный способ разработки приложений может быть использован в различных областях, таких как инженерное моделирование, архитектурное проектирование и медицинская визуализация. Реализация выполнена для операционных систем Windows с 64 разрядной архитектурой

Ключевые слова: QML, OpenCASCADE, масштабируемое приложение, MVC, интеграция модуля, платформа, кроссплатформенность

Введение

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

Возникает вопрос: как создать масштабируемое кроссплатформенное приложение, которое будет эффективно работать на различных операционных системах? Существующие традиционные методы разработки приложений часто не способны предложить удовлетворительное решение данной проблемы [1]. Некоторые ¡подходы основаны на низкоуровневом программировании, что требует от разработчиков больших усилий и компетенций в различных технологиях. Другие решения могут ограничиваться только определенными платформами или не обладать достаточной гибкостью и производительностью.

Для устранения этой проблемы может

быть предложено решение, основанное на использовании QML (Qt Meta-Object Language) с интеграцией модуля геометрических построений Open CASCADE. QML является декларативным языком программирования, разработанным компанией Qt, который позволяет разрабатывать интерфейсы приложений с высокой гибкостью и масштабируемостью. Open CASCADE, в свою очередь, предоставляет мощный инструментарий для геометрического моделирования и анализа.

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

© Ахлестин А.И., Юров А.Н., Чижов М.И., 2023

Инструменты масштабируемости и кроссплатформенности

Qt и Open CASCADE предлагают мощные инструменты, которые способствуют масштабируемости и кроссплатформенности приложений.

1. QML является декларативным языком программирования, который позволяет разрабатывать пользовательские интерфейсы с помощью гибких компонентов. QML упрощает создание адаптивных пользовательских интерфейсов, которые могут эффективно работать на различных устройствах и платформах [2].

2. Qt Quick - это фреймворк для создания пользовательских интерфейсов с использованием QML. Он предоставляет широкий спектр компонентов и возможностей для создания интерактивных и анимированных интерфейсов. Qt Quick обеспечивает высокую производительность и гибкость, что является важным аспектом масштабируемости приложений [3].

Open CASCADE, мощная библиотека для геометрического моделирования и анализа, также предлагает инструменты, способствующие масштабируемости приложений:

1. Модуль геометрических построений: Open CASCADE предоставляет набор инструментов для создания и манипулирования трехмерными моделями. Это включает в себя функции для создания геометрических примитивов, операций булевой логики над объектами, анализа структуры модели и многое другое. Интеграция этого модуля с Qt позволяет создавать масштабируемые приложения с расширенными возможностями работы с трехмерными объектами.

2. Кроссплатформенность: OpenCASCA-DE предоставляет поддержку для различных операционных систем, включая Windows, macOS и Linux. Это позволяет создавать кроссплатформенные приложения, которые могут работать на разных платформах без необходимости внесения значительных изменений в код.

Разработка масштабируемого

кроссплатформенного приложения

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

Первым шагом является создание проекта с использованием среды разработки, которая поддерживает кроссплатформенность и интеграцию с QML и Open Cascade.

После создания проекта необходимо определить архитектурный шаблон приложения. Рекомендуется использовать паттерн ModelView-Controller (MVC) [4] или аналогичные архитектурные подходы, которые помогут разделить логику приложения, представление и взаимодействие с модулем геометрических построений Open CASCADE.

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

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

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

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

В дополнение, стоит использовать принципы SOLID (Принцип единственной ответственности, Принцип открытости/закрытости, Принцип подстановки Барбары Лисков, Принцип разделения интерфейса и Принцип инверсии зависимостей) при разработке классов, чтобы обеспечить их гибкость и переиспользуемость. Это позволит легко добавлять новые функции, изменять поведение существующих классов и поддерживать код приложения на

разных платформах без необходимости полной переработки.

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

На рис. 1 приведен пример классов масштабируемого приложения и их взаимодействия друг с другом.

ProdA AbstractFactory Pro dB

+ createProductAO

Л + weateProduclBO

Рис. 1. Взаимодействие компонентов

При разработке кроссплатформенного приложения с использованием Qt и Open Cascade, QML используется для создания пользовательского интерфейса и описания визуальных элементов приложения. В QML-файлах можно использовать компоненты, предоставляемые Qt Quick Controls, для создания пользовательских элементов интерфейса, таких как кнопки, поля ввода и окна.

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

Для разработки самого приложения на C++, можно выбрать паттерн "Abstract Factory".

Паттерн "Abstract Factory" позволяет создавать семейства связанных объектов без привязки к конкретным классам. Это означает, что можно создавать объекты, используя абстрактные интерфейсы и классы, вместо прямого вызова конструкторов конкретных классов [5]. Примерная схема использования классов с этим паттерном представлена на рис. 2.

FactoryA FactoryB

-II- -II-

Рис. 2. Паттерн Abstract Factory

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

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

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

Рис. 3. Архитектура масштабируемого приложения Заключение

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

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

Литература

1. Чурсин А.Н., Мамедова Н.А., Нефедов Ю.В. Разработка кроссплатформенных мобильных приложений -перспективные методы и стандартные практики // При-

кладная информатика. 2021. С. 52-67.

2. Qt QML Class Reference // QT Documentation URL: https://doc.qt.io/qt-6/qtqml-index.html (дата обращения: 15.05.2023).

3. Qt Quick Class Reference // QT Documentation URL: https://doc.qt.io/qt-6/qtquick-index.html (дата обращения: 15.05.2023).

4. Jon G., Brad W., David M. ASP.NET MVC 5. 1 изд. -Indianapolis: John Wiley & Sons, Inc., 2014. 620 р.

5. Vijay K. Abstract factory and singleton design patterns to create decorator pattern objects in web application // IJAIT. 2011. № 5. Рр. 3-4.

Поступила 19.05.2023; принята к публикации 21.06.2023

Информация об авторе

Ахлестин Андрей Игоревич - студент, Воронежский государственный технический университет (394006, Россия, г. Воронеж, ул. 20-летия Октября, 84), e-mail: ahlestin.and@yandex.ru, тел. +7(953)611-57-79

Юров Алексей Николаевич - канд. техн. наук, доцент, Воронежский государственный технический университет (394006, Россия, г. Воронеж, ул. 20-летия Октября, 84), e-mail: kitp@vorstu.ru, тел. +7(951)548-63-12

Чижов Михаил Иванович - д-р техн. наук, профессор, Воронежский государственный технический университет (394006, Россия, г. Воронеж, ул. 20-летия Октября, 84), e-mail: kitp@vorstu.ru, тел. +7(910)240-87-65

DEVELOPMENT OF SCALABLE CROSS-PLATFORM QML APPLICATIONS WITH INTEGRATION OF THE OPEN CASCADE GEOMETRIC CONSTRUCTIONS MODULE

A.I. Akhlestin, A.N. Yurov, M.I. Chizhov

Voronezh State Technical University, Voronezh, Russia

Abstract: this paper considers the development of scalable cross-platform applications implemented using QML with the integration of the Open CASCADE geometric constructions module. QML (Qt Meta-Object Language) is a declarative programming language that allows you to create user interfaces on various platforms. Open CASCADE, on the other hand, provides powerful tools for geometric modeling and analysis. The study also describes the architecture of scalable applications and the advantages of cross-platform development using QML. In addition, the paper suggests ways to integrate the Open CASCADE geometric constructions module into QML applications, providing opportunities for creating complex three-dimensional models and performing geometric operations. As a result, examples of the application of the developed applications are presented, demonstrating their scalability and functionality. The considered method of application development can be used in various fields, such as engineering modeling, architectural design and medical imaging. The implementation is made for Windows operating systems with 64-bit architecture

Key words: QML, OpenCascade, scalable application, MVC, module integration, platform, cross-platform

References

1. Chursin A.N., Mammadova N.A., Nefedov Yu.V. "Development of cross-platform mobile applications - promising methods and standard practices", Applied Informatics (Prikladnaya informatika), 2021, pp. 52-67.

2. "Qt QML Class Reference, QT Documentation", available at: https://doc.qt.io/qt-6/qtqml-index.html (accessed: 05.15.2023).

3. "Qt Quick Class Reference, QT Documentation", available at: https://doc.qt.io/qt-6/qtquick-index.html (accessed: 05.15.2023).

4. Jon G., Brad W., David M. "ASP.NET MVC 5", 1st edition, Indianapolis: John Wiley & Sons, Inc., 2014, 620 p.

5. Vijay K. "Abstract factory and singleton design patterns to create decorator pattern objects in web application", IJAIT, 2011, no. 5, pp. 3-4.

Submitted 19.05.2023; revised 21.06.2023 Information about the authors

Andrey I. Akhlestin - Student, Voronezh State Technical University (84 20-letiya Oktyabrya str., Voronezh 394006, Russia), e-mail: ahlestin.and@yandex.ru, tel.: +7(953)611-57-79

Alexey N. Yurov - Cand. Sc. (Technical), Associate Professor, Voronezh State Technical University (84 20-letiya Oktyabrya str., Voronezh 394006, Russia), e-mail: kitp@vorstu.ru, tel.: +7(951)548-63-12

Mikhail I. Chizhov - Doctor of Sc. (Technical), Professor, Voronezh State Technical University (84 20-letiya Oktyabrya str., Voronezh 394006, Russia), e-mail: kitp@vorstu.ru, tel.: +7(910)240-87-65

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