ОБОСНОВАНИЕ ВЫБОРА ГРАФИЧЕСКОЙ БИЛИОТЕКИ И СОВРЕМЕННЫХ ТЕХНОЛОГИЙ ПРОГРАММИРОВАНИЯ ПРИ РАЗРАБОТКИ ТЕХНИЧЕСКОГО ПРИЛОЖЕНИЯ - Студенческий научный форум

VIII Международная студенческая научная конференция Студенческий научный форум - 2016

ОБОСНОВАНИЕ ВЫБОРА ГРАФИЧЕСКОЙ БИЛИОТЕКИ И СОВРЕМЕННЫХ ТЕХНОЛОГИЙ ПРОГРАММИРОВАНИЯ ПРИ РАЗРАБОТКИ ТЕХНИЧЕСКОГО ПРИЛОЖЕНИЯ

Васильев М.А. 1, Кияев А.А. 1, Пискаев К.Ю. 1
1ПензГТУ
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

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

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

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

Рассмотрим наиболее популярные из применяемых сегодня библиотек для визуализации данных: QWT, mCtrl, GtkGraph, Qt Charts.

Преимущества и недостатки каждой приведены в сравнительной таблице 1.

Таблица 1 - Сравнительные характеристики библиотек

Библиотека

Платформы

Варианты визуализации

Дополнительные функции

Стоимость

QWT

Windows, Linux, OS X, Android, Symbian

Графики кривых, точечные графики, спектрограммы, гистограммы

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

бесплатная

mCtrl

Windows

Графики кривых, точечные графики, гистограммы, круговые диаграммы.

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

бесплатная

GtkGraph

Windows, Linux, OS X

Графики кривых

Стилизация графиков

бесплатная

QtCharts

Windows, Linux, OS X, Android, Symbian

Графики кривых, точечные графики, гистограммы, круговые диаграммы.

Стилизация графиков, перемещение, масштабирование.

платная

 

Среди перечисленных вариантов самой функциональной и гибкой библиотекой является QWT. Эта графическая библиотека позволяет упростить процесс визуализации данных в программе. При использование данной библиотеки нет необходимости вручную прописывать элементы отображения, такие как оси координат, сетки, кривые данных и другие. Необходимо лишь задавать параметры этих элементов. Так же Qwt позволяет работать с достаточно большими объемами данных. [1].

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

При разработке была поставлена цель получить код соответствующий современным стандартам качества. Это позволило сократить количество строк кода, увеличить стабильность программы. Были использованы новые возможности стандарта С++11, такие как For-цикл по коллекции (рисунок 2.11), Лямбда-выражения, автоматическое определение типа данных (auto), потоки. [3] Так же во время разработки проводился множественный рефакторинг, в результате которого удалось сократить кол-во строк кода и сделать его более понятным для дальнейшей поддержки.

Лямбда-выражение (в программировании) - это специальный синтаксис для объявления анонимных функторов по месту их использования. Используя лямбда-выражения, можно объявлять функции в любом месте кода. [4]

Поток - это независимая задача, которая выполняется внутри процесса и разделяет вместе с ним общее адресное пространство, код и глобальные данные. [5]

Рефакторинг - это процесс изменения внутренней структуры программы, не затрагивающий её внешнего поведения и имеющий целью облегчить понимание её работы.[6]

Для управления версиями программы была использована система Git. Это распределённая система управления версиями файлов. Проект был создан Линусом Торвальдсом для управления разработкой ядра Linux, первая версия выпущена 7 апреля 2005 года. [7]

Чтобы увеличить производительность и воспользоваться многоядерностью современных процессоров, в программе используется многопоточность, т.е. функции генерации точек для графиков АЧХ и временного представления СВФ выполняются параллельно в раздельных потоках. Применение данной технологии позволило добиться увеличения производительности на многоядерных системах при работе с большим объемом данных.

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

 

Библиографический список

1.      Информационный сайт "Хабхабр" [Электронный документ] URL: http://habrahabr.ru/post/211204/ (дата обращения: 20.08.2015).

2.      Информационный сайт "QT" [Электронный документ] URL: http://doc.qt.io/QtCharts/ (дата обращения: 23.08.2015).

3.      Информационный сайт "Open Standards" [Электронный документ] URL: http://www.open-std.org (дата обращения: 23.08.2015).

4.      Г. Шилдт C++. Базовый курс / Пер. с англ. Н. Ручко. Изд.: «Вильямс», 2014. - 624 с.

5.      Роберт Лафоре. Объектно-ориентированное программирование в С++. / Пер. с англ. А. Кузнецов, М. Назаров, Владимир Шрага Изд.: «Питер», 2015. - 928 с.

6.      Информационный сайт "Git" [Электронный документ] URL: http://git-scm.com (дата обращения: 23.08.2015).

7.      Пискаев К.Ю., Никулкин В.А., Васильев М.А. Выбор графической библиотеки для визуализации данных при разработке программных средств синтеза и анализа весовых функций // Современная техника и технологии. 2015. № 9 [Электронный документ]. URL: http://technology.snauka.ru/2015/09/7771 (дата обращения: 21.10.2015).

Просмотров работы: 721