Научная статья на тему 'Кроссплатформенный инструментарий разработки программных продуктов'

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

CC BY
842
99
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КРОССПЛАТФОРМЕННОСТЬ / PLATFORM / ПЕРЕНОСИМОСТЬ / PORTABILITY / ПЛАТФОРМА / КРОСС-КОМПИЛЯТОР / CROSS-COMPILER / ИНСТРУМЕНТАРИЙ РАЗРАБОТКИ / DEVELOPMENT TOOLS / CROSS-PLATFORM

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ошурок Эдуард Эдуардович, Ежова Ксения Викторовна

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Ошурок Эдуард Эдуардович, Ежова Ксения Викторовна

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

CROSS-PLATFORM SOFTWARE DEVELOPMENT TOOLS

The article deals with implementation of cross-platform toolkit, designed for software development on C / C ++ family programming languages ​​ for desktop and mobile platforms of different purposes. The toolkit feature is the ability to move programs between platforms without source code changing. The structure of instruments is considered and a generalized algorithm for implementing of applications portability with high performance maintaining is revealed. The possible directions of further tools application are given.

Текст научной работы на тему «Кроссплатформенный инструментарий разработки программных продуктов»

2. Гатчин Ю.А., Жаринов И.О. Основы проектирования вычислительных систем интегрированной модульной авионики: монография. - М.: Машиностроение, 2010. - 224 с.

3. Гайкович А.И. Основы теории проектирования сложных технических систем. - СПб: НИЦ «МОРИНТЕХ», 2001. - 432 с.

Жаринов Игорь Олегович - СПб ОКБ «Электроавтоматика» имени П. А. Ефимова, доктор технических наук, доцент, igor_rabota@pisem.net

Жаринов Олег Олегович - Санкт-Петербургский государственный университет аэрокосмического приборостроения, кандидат технических наук, доцент, zharinov@hotbox.ru

Шек-Иовсепянц Рубен Ашотович - СПб ОКБ «Электроавтоматика» имени П. А. Ефимова, доктор технических наук, профессор, главный конструктор, postmaster@elavt.spb.ru

Суслов Владимир Дмитриевич - СПб ОКБ «Электроавтоматика» имени П. А. Ефимова, руководитель экспертного совета, postmaster@elavt.spb.ru

УДК 004.428

КРОССПЛАТФОРМЕННЫЙ ИНСТРУМЕНТАРИЙ РАЗРАБОТКИ ПРОГРАММНЫХ ПРОДУКТОВ Э.Э. Ошурок, К.В. Ежова

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

Ключевые слова: кроссплатформенность, переносимость, платформа, кросс-компилятор, инструментарий разработки.

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

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

В настоящее время существуют такие средства разработки программ, как язык Java, с помощью которого возможно создать программный продукт, переносимый между платформами без необходимых дополнительных изменений исходного кода. Однако программы, реализованные на языке Java, требуют довольно много ресурсов для своей работы [2].

С появлением кроссплатформенного инструментария Qt стало возможным создавать переносимые программные продукты на языках семейства C/C++, Java или Python [3]. Основным недостатком использования Qt является размер готового программного продукта, что в ряде случаев неприемлемо. Кроме того, программы, разработанные с использованием перечисленных языков программирования, не всегда могут работать под управлением более ранних версий операционных систем.

Проведя анализ предложенных решений для создания кроссплатформенных приложений, можно предложить два основных варианта:

1. создание программных продуктов на языке Java с уменьшением производительности работы;

2. создание программ с использованием инструментария Qt в связке с языками Java или C/C++.

Второй вариант в настоящее время является более предпочтительным.

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

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

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

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

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

Кроссплатформенный инструментарий

Модуль работы с графикой

Модуль работы со звуком

Модуль работы с устройствами

Модуль обработки событий

Рис. 1. Общая структура инструментария

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

Модуль работы со звуком позволяет, используя возможности звуковой подсистемы, генерировать звук, что может быть использовано в программах синтеза речи. Для передачи данных между устройствами ввода/вывода предусмотрен отдельный модуль. Отдельно реализовано событийное программирование, используя которое программа может реагировать на изменения состояния оборудования.

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

Модуль работы с графикой

X

Модуль реализации графического интерфейса пользователя

Модуль отрисовки оптических объектов

Модуль обработки изображений

Модуль работы с трехмерной графикой

Рис. 2. Структура модуля работы с графикой

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

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

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

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

Результаты работы представлены на международном конкурсе студенческих инновационных проектов 1ТФон и получили высокую оценку жюри в номинации «Лучший проект в области информационно-коммуникационных технологий».

1. Гриффитс А. GCC. Настольная книга пользователей, программистов и системных администраторов. -Киев: «ТИД ДС». - 2004. - 624 с.

2. Ноутон П., Шилдт Г. Java 2. Полный справочник. - Спб: БХВ-Петербург, 2008. - 1102 с.

3. Бланшет Ж., Саммерфилд М. Qt 4. Программирование GUI на С++. - М: - Кудиц-Пресс, 2007. - 641 с.

4. Ахо А., Лам М., Сети Р., Ульман Д. Компиляторы: принципы, технологии и инструментарий. - 2-е изд. - Киев: «ИД-Вильямс», 2011. - 1184 с.

Ошурок Эдуард Эдуардович - Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, студент, creddy@inbox.ru

Ежова Ксения Викторовна - Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, кандидат технических наук, доцент, EzhovaKV@aco.ifmo.ru

УДК 681:378

РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ ПРИБОРА КОНТРОЛЯ МАРОК

ЦИФРОВОГО АВТОКОЛЛИМАТОРА А.А. Литвинович

Рассматривается создание алгоритма автоматизации операций контроля характеристик марок для цифрового автоколлиматора, на основе созданного алгоритма разработано программное обеспечение для прибора контроля. Ключевые слова: цифровой автоколлиматор, контроль марок.

Марки предназначены для новых цифровых автоколлиматоров, разрабатываемых в ОАО «ЛОМО», у которых унифицированы алгоритм обработки изображений, методика измерения углов, электронные составляющие (включая ПЗС-матрицу). Определение позиции марки происходит путем имитации сканирования щелью, размер которой определяется размером пикселя матрицы цифрового коллиматора, т.е. каждая строка (либо столбец) изображения с матрицы суммируется в массиве-накопителе, и определение координат марки производится по данным одномерного массива для каждой координаты. После имитации сканирования изображения поочередно в двух направлениях оба массива-накопителя содержат в себе распределение нормированного коэффициента пропускания (НКП). Для правильной интерпретации данных цифровым коллиматором распределение НКП марки должно иметь форму равнобедренного треугольника, либо равнобокой трапеции с верхним основанием минимального размера, что должно обеспечиваться конфигурацией марки.

Существует три типоразмера марок (100, 250, 1000 мкм) для трех версий цифровых коллиматоров. На марки (и на содержащиеся в них структуры, в частности) заданы определенные требования, которые необходимо контролировать в автоматизированном режиме. Соответственно для контролеров ОТК нужно создать прибор контроля и программное обеспечение (ПО), которое максимально упростит процесс контроля характеристик изготовленных марок. В состав прибора контроля входят микроскоп ПОЛАМ Р-312 со светодиодным осветителем, цифровая камера EVS VAC-135-USB, устройство позиционирования марки и персональный компьютер; из дополнительной оснастки - объект-микрометр, окуляр-микрометр МОВ-1-16. Алгоритм обработки изображения марки, лежащий в основе ПО, должен строиться по модульному принципу и включать в себя набор фильтров, которые могут использоваться при необходимости. В качестве предобработки могут применяться инверсия изображения (при контроле фотошаблонов, так как те имеют обращенные цвета) и учет фона. Изображение марки обрабатывается путем имитации сканирования, в результате чего получаются два массива с распределениями НКП. Затем производится определение коэффициента асимметрии (КА), положения центров тяжести (ЦТ) и медиан по распределениям, а также производится расчет области существования (ОС) и привязка положений ЦТ и медиан к ее центру.

Из требований чертежа оптическая плотность темного фона должна быть не ниже 2,5, что при пересчете на НКП равняется 0,032 и менее, следовательно, это значение не может быть верно измерено с помощью микроскопа и телекамеры, собственные шумы которой находятся на уровне 0,03-0,11 от насыщения матрицы при отсутствии какой-либо засветки. Исходя из этого, для измерения оптической плотности необходимо использовать микрофотометр, а для учета фона воспользоваться операцией сегментации по нижнему порогу [Л]:

10, при x < t, seg (x,t) = <!

[ x, при x > t,

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